Diese Strategie ist ein quantitatives Handelssystem, das auf der technischen Analyse von Kerzen basiert und in erster Linie potenzielle Handelschancen durch die Analyse der Gesamtlänge der oberen und unteren Kerzen des Kerzen analysiert. Der Kernmechanismus vergleicht die in Echtzeit berechnete Gesamtlänge des Kerzen mit einem versetzungsbereinigten gleitenden Durchschnitt und erzeugt lange Signale, wenn die Länge des Kerzen durch den gleitenden Durchschnitt bricht. Die Strategie integriert mehrere Arten von gleitenden Durchschnitten, darunter einfachen gleitenden Durchschnitt (SMA), exponentiellen gleitenden Durchschnitt (EMA), gewichteten gleitenden Durchschnitt (WMA) und Volumen gewichteten gleitenden Durchschnitt (VWMA), was den Händlern flexible Parameterwahloptionen bietet.
Die Kernlogik umfasst folgende Schlüsselschritte:
Diese Strategie kombiniert klassische technische Indikatoren der Candlestick-Wick-Analyse mit modernen quantitativen Handelsmethoden und schafft ein Handelssystem mit klarer Logik und starker Praktikabilität. Die Hauptvorteile liegen in der Parameterflexibilität und umfassender Risikokontrolle, obwohl Einschränkungen eine starke Abhängigkeit von Marktumgebung und Parameterempfindlichkeit umfassen. Durch mehrdimensionale Indikatorenintegration und Positionsmanagementoptimierung besteht ein erhebliches Verbesserungspotenzial. Insgesamt stellt sie eine grundsätzlich solide und logisch kohärente quantitative Handelsstrategie dar, die für die weitere Entwicklung und Optimierung geeignet ist.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Daytrading ES Wick Length Strategy", overlay=true) // Input parameters ma_length = input.int(20, title="Moving Average Length", minval=1) ma_type = input.string("VWMA", title="Type of Moving Average", options=["SMA", "EMA", "WMA", "VWMA"]) ma_offset = input.float(10, title="MA Offset (Points)", step=1) hold_periods = input.int(18, title="Holding Period (Bars)", minval=1) // Calculating upper and lower wick lengths upper_wick_length = high - math.max(close, open) lower_wick_length = math.min(close, open) - low // Total wick length (upper + lower) total_wick_length = upper_wick_length + lower_wick_length // Calculate the moving average based on the selected method ma = switch ma_type "SMA" => ta.sma(total_wick_length, ma_length) "EMA" => ta.ema(total_wick_length, ma_length) "WMA" => ta.wma(total_wick_length, ma_length) "VWMA" => ta.vwma(total_wick_length, ma_length) // Add the offset to the moving average ma_with_offset = ma + ma_offset // Entry condition: wick length exceeds MA with offset long_entry_condition = total_wick_length > ma_with_offset // Long entry if (long_entry_condition) strategy.entry("Long", strategy.long) // Automatic exit after holding period if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) >= hold_periods strategy.close("Long") // Plot the total wick length as a histogram plot(total_wick_length, color=color.blue, style=plot.style_histogram, linewidth=2, title="Total Wick Length") // Plot the moving average with offset plot(ma_with_offset, color=color.yellow, linewidth=2, title="MA of Wick Length (Offset)")