Die Contrarian Donchian Channel Touch Entry Strategy ist eine quantitative Handelsstrategie, die auf dem Donchian Channel-Indikator basiert.
Die Strategie tritt in Long/Short-Positionen ein, wenn der Preis das obere/untere Band des Donchian Channel berührt. Stop-Loss- und Take-Profit-Level werden für jeden Trade festgelegt. Nach einem Stop-Loss-Hit gibt es eine Pause für eine Reihe von Bars, bevor ein neuer Trade in die gleiche Richtung aufgenommen wird. Während eines Trades wird Trailing Stop-Loss verwendet, um Gewinne zu erzielen.
Die Strategie verwendet den Donchian-Kanal mit 20 Perioden, bestehend aus Oberband, Unterband und Mittellinie.
Gehen Sie lang, wenn der Preis das untere Band berührt; gehen Sie kurz, wenn der Preis das obere Band berührt.
Eine Pause (z. B. 3 Balken) ist nach einem vorherigen Stop-Loss in derselben Richtung erforderlich, um zu vermeiden, dass Trends verfolgt werden.
Für jeden Handel einen festen Stop-Loss-Prozentsatz (z. B. 22%) und einen dynamischen Take-Profit festlegen, der auf der Grundlage der Risiko-Rendite-Ratio berechnet wird (z. B. 2)
Verwenden Sie einen Trailing-Stop-Loss während des Handels:
Bei Long-Trades, wenn der Preis über die Mittellinie geht, wird der Stop-Loss auf den mittleren Punkt des Einstiegspreises und der Mittellinie angepasst.
Umgekehrt bei Shortpositionen, die unterhalb der Mittellinie kreuzen.
Fangen Sie Trendbewegungen mit Donchian Channel Breakouts.
Der Kontrarian Touch-Eintrag passt zum Trading gegen die Trendidee.
Effektives Risikomanagement mit Stop-Loss-Pause und Trailing-Stop.
Klare und leicht umsetzbare Regeln.
Whipsaws auf seitlichen Märkten für ein Trend-Folgende System.
Ein fester Stop-Loss könnte dazu neigen, vorzeitig gestoppt zu werden.
Eine übermäßig aggressive Einstellung des Trailing Stop könnte profitable Trades zu früh ausschalten.
Parameteroptimierung ist entscheidend.
Optimieren Sie die Donchian Channel Lookback Periode für die besten Parameter.
Einbeziehung von Positionsgrößenregeln, z. B. regelmäßige Neustellung der Pausenzählung.
Fügen Sie Filter mit anderen Indikatoren hinzu, um falsche Ausbrüche zu vermeiden.
Experiment mit dynamischem Stop-Loss.
Die Contrarian Donchian Channel Touch Entry Strategy integriert Trendidentifikation, Risikomanagement und mehr.
/*backtest start: 2023-01-17 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Contrarian Donchian Channel Strategy - Touch Entry with Post-SL Pause and Trailing Stop", overlay=true, default_qty_value=0.01, default_qty_type=strategy.percent_of_equity) // Inputs length = input(20, minval=1, title="Donchian Channel Length") riskRewardRatio = input(2, title="Risk/Reward Ratio") stopLossPercent = input(0.22, title="Stop Loss (%)") / 100 pauseCandles = input(3, minval=1, title="Pause After SL (Candles)") // Donchian Channel Calculation upper = highest(high, length) lower = lowest(low, length) centerline = (upper + lower) / 2 // Calculating the Centerline // Plotting Donchian Channel and Centerline plot(upper, color=color.red, title="Upper Band") plot(lower, color=color.green, title="Lower Band") plot(centerline, color=color.blue, title="Centerline") // Tracking Stop Loss Hits and Pause var longSLHitBar = 0 var shortSLHitBar = 0 var int lastTradeDirection = 0 // 1 for long, -1 for short, 0 for none // Update SL Hit Bars if (strategy.position_size[1] > 0 and strategy.position_size == 0) if (close[1] < strategy.position_avg_price[1]) longSLHitBar := bar_index lastTradeDirection := 1 if (strategy.position_size[1] < 0 and strategy.position_size == 0) if (close[1] > strategy.position_avg_price[1]) shortSLHitBar := bar_index lastTradeDirection := -1 // Entry Conditions - Trigger on touch longCondition = (low <= lower) and (bar_index - longSLHitBar > pauseCandles or lastTradeDirection != 1) shortCondition = (high >= upper) and (bar_index - shortSLHitBar > pauseCandles or lastTradeDirection != -1) // Trade Execution if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Initial Stop Loss and Take Profit Calculation stopLoss = strategy.position_avg_price * (1 - stopLossPercent) takeProfit = strategy.position_avg_price * (1 + stopLossPercent * riskRewardRatio) // Trailing Stop Loss Logic var float trailingStopLong = na var float trailingStopShort = na // Update Trailing Stop for Long Position if (strategy.position_size > 0) if (close > centerline) trailingStopLong := (strategy.position_avg_price + centerline) / 2 stopLoss := na(trailingStopLong) ? stopLoss : max(trailingStopLong, stopLoss) // Update Trailing Stop for Short Position if (strategy.position_size < 0) if (close < centerline) trailingStopShort := (strategy.position_avg_price + centerline) / 2 stopLoss := na(trailingStopShort) ? stopLoss : min(trailingStopShort, stopLoss) // Setting Stop Loss and Take Profit for each trade strategy.exit("SL_TP_Long", "Long", stop=stopLoss, limit=takeProfit) strategy.exit("SL_TP_Short", "Short", stop=stopLoss, limit=takeProfit)