Doppel Donchian Channel Breakout Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-21 11:38:48
Tags:

img

Übersicht

Die Dual Donchian Channel Breakout Strategie ist eine Breakout-Handelsstrategie, die auf Donchian-Kanälen basiert. Sie verwendet schnelle und langsame Donchian-Kanäle, um lange und kurze Handelssignale zu konstruieren. Wenn der Preis durch den langsamen Kanal bricht, öffnen Sie lange oder kurze Positionen. Wenn der Preis durch den schnellen Kanal bricht, schließen Sie Positionen. Die Strategie legt auch Gewinn- und Stop-Loss-Bedingungen fest.

Strategieprinzip

Die Strategie für einen doppelten Donchian-Kanal-Ausbruch basiert auf zwei Parametern:Langsamer Donchian-KanalzeitraumundSchnelle Donchian-KanalzeitDie Strategie berechnet zunächst die oberen und unteren Bands der beiden Donchian-Kanäle.

  • Die Standardzeit für den langsamen Donchian-Kanal beträgt 50 Bar, was längerfristige Trends widerspiegelt.
  • Die Standardzeit für den schnellen Donchian-Kanal beträgt 30 Bar, was kurzfristige Trendänderungen widerspiegelt.

Das lange Eingangssignal ist einAusbruch über dem oberen BandmitVolatilität über dem SchwellenwertDas kurze Eingangssignal ist einAufschlüsselung unterhalb des unteren BandesmitVolatilität über dem Schwellenwert.

Das lange Stop-Loss-Ausgangssignal ist einAufschlüsselung unterhalb des unteren BandesDas kurze Stop-Loss-Ausgangssignal ist einAusbruch über dem oberen Band.

Die Strategie legt außerdemGewinn machenDie Standard-Gewinnquote beträgt 2%, d. h. die halbe Position, wenn die Kursbewegung 2% erreicht.

Analyse der Vorteile

Die Strategie des doppelten Donchian-Kanal-Ausbruchs weist folgende Vorteile auf:

  1. Das Dual-Channel-Design kann Trendsignale sowohl aus längeren als auch aus kürzeren Zeitrahmen erfassen und so genauere Einträge ermöglichen.

  2. Die Volatilitätsbedingung verhindert den häufigen Handel auf den Märkten mit Bandbreite.

  3. Umfassende Gewinn- und Stop-Loss-Einstellungen verriegeln teilweise Gewinne und verringern Verluste.

  4. Einfache und klare Strategie-Logik, leicht zu verstehen und umzusetzen.

  5. Anpassungsfähige Parameter passen zu unterschiedlichen Produkten und Handelspräferenzen.

Risikoanalyse

Die Dual Donchian Channel Breakout Strategie birgt auch einige Risiken:

  1. Das Dual-Channel-Design ist empfindlich und kann falsche Signale erzeugen.

  2. In volatilen Märkten kann ein Stop Loss zu häufig ausgelöst werden.

  3. Ein festes Prozentsatz Gewinnspanne maximiert den Gewinn nicht.

  4. Die tatsächliche Handelsleistung kann von den Erwartungen des Backtest abweichen, erfordert jedoch eine gründliche Validierung und erforderlichenfalls Anpassungen der Parameter.

Optimierungsrichtlinien

Die Dual Donchian Channel Breakout Strategie kann in mehreren Aspekten optimiert werden:

  1. Testen Sie mehr Periodenkombinationen, um optimale Parameter zu finden.

  2. Versuchen Sie verschiedene Volatilitätsmaße wie ATR, um die stabilste Metrik zu finden.

  3. Setzen Sie eine Begrenzung für die Anzahl der Einträge, um Verluste am Ende des Trends zu vermeiden.

  4. Probieren Sie dynamischen Gewinn für einen höheren Einzelhandelsgewinn.

  5. Einbeziehung anderer Indikatoren zur Filterung von Einträgen und zur Verbesserung der Genauigkeit, z. B. Volumen.

  6. Optimieren Sie Geldmanagementmodelle wie die Festfractional Position Größe für eine bessere Risikokontrolle.

Schlussfolgerung

Zusammenfassend ist die Dual Donchian Channel Breakout Strategy eine ausgezeichnete Trendfolgestrategie. Sie kombiniert sowohl Trendidentifizierung als auch Umkehrschutzfunktionen. Mit Parameteroptimierung und Regelverfeinerung kann sie in den meisten Produkten und Marktbedingungen profitabel sein. Die Strategie ist einfach und praktisch, lohnt sich zu lernen und für quantitative Trader anzuwenden.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)

// Donchian Channels
slowLen = input.int(50, title="Slow Donchian", group = "Conditions")
fastLen = input.int(30, title="Fast Donchian", group = "Conditions")

// Volatility Calculated as a percentage
volatility = input.int(3, title="Volatility (%)", group = "Conditions")

// Long positions
long = input.bool(true, "Long Position On/Off", group = "Strategy")
longProfitPerc = input.float(2, title="Long TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// Short positions
short = input.bool(true, "Short Position On/Off", group = "Strategy")
shortProfitPerc = input.float(2, title="Short TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// First take profit point for positions
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)", group = "Strategy")

// Slow Donchian Calculated
ubSlow = ta.highest(high, slowLen)[1]
lbSlow = ta.lowest(low, slowLen)[1]

// Fast Donchian Calculated
ubFast = ta.highest(high, fastLen)[1]
lbFast = ta.lowest(low, fastLen)[1]

// Plot Donchian Channel for entries
plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband")
plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband")
plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband")
plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband")

// This calculation, the strategy does not open position in the horizontal market.
fark = (ubSlow - lbSlow) / lbSlow * 100

// Take profit levels
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Code long trading conditions
longCondition = ta.crossover(close, ubSlow) and fark > volatility
if longCondition and long == true
    strategy.entry("Long", strategy.long)

// Code short trading conditions
shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if shortCondition and short == true
    strategy.entry("Short", strategy.short)

// Determine long trading conditions
if strategy.position_size > 0 and ta.crossunder(close, lbFast) 
    strategy.close_all("Close All")

// Determine short trading conditions
if strategy.position_size < 0 and ta.crossover(close, ubFast)
    strategy.close_all("Close All")

// Take Profit Long
if strategy.position_size > 0
    strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)

// Take Profit Short
if strategy.position_size < 0
    strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)

Mehr