Doppel Donchian Channel Breakout Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-04 09:42:14
Tags:

img

Übersicht

Die Double Donchian Channel Breakout Strategie ist eine quantitative Handelsstrategie, die auf dem Donchian Channel basiert. Diese Strategie verwendet eine Kombination aus schnellen und langsamen Donchian Channels, um einen niedrigen Risiko-Hochrendite-Breakout-Handel zu erreichen.

Strategie Logik

Diese Strategie verwendet hauptsächlich zwei Donchian-Kanäle, darunter einen langsameren Kanal mit längerer Periode und einen schnelleren Kanal mit kürzerer Periode.

Der langsame Donchian-Kanal hat eine längere Periode, die Marktlärm effektiv filtern kann und seine Ausbruchssignale zuverlässiger macht.

Der schnelle Donchian-Kanal hat eine kürzere Periode, die schnell auf kurzfristige Kursschwankungen reagieren kann.

Darüber hinaus wird eine Volatilitätsbedingung als Filter für Eintrittssignale festgelegt. Die Strategie wird nur dann ausgelöst, wenn die Kursbewegung eine vorgegebene prozentuale Schwelle überschreitet. Dies vermeidet häufige Whipsaws während von Bandbreitenkonsolidierungen.

Analyse der Vorteile

  • Der Doppelkanalmechanismus stellt zwei Verteidigungslinien her und kontrolliert das Risiko wirksam
  • Kombination von schnellen und langsamen Kanälen erfasst Trends effizient
  • Volatilitätsfilter verringern ineffektive Trades
  • Gleichzeitig verfolgt Trends und verhindert Überanpassung
  • Einfache und klare Logik, leicht zu verstehen und zu meistern

Risikoanalyse

  • Gewaltsame Kursschwankungen können den Stop-Loss durchdringen und starke Verluste verursachen
  • Falsche Einstellungen von Parametern (z. B. Kanalzeiten) können die Effizienz der Strategie beeinträchtigen
  • Auch die Handelskosten beeinträchtigen die Gewinne in gewissem Maße
  • Die Risiken von Lücken bei bedeutenden Ereignissen müssen berücksichtigt werden

Diese Risiken können durch Parameteroptimierung, angemessene Stop-Loss-Platzierung, Ereignisbewusstsein usw. verringert werden.

Optimierungsrichtlinien

  • Versuche verschiedene Kombinationen von Donchian-Kanalperioden
  • Optimierung des Volatilitätsparameters für den besten Einstiegszeitpunkt
  • Hinzufügen eines Trend-Checking-Indikators zur Vermeidung von Gegentrendgeschäften
  • Fundamentalspezifische Bestandswahl
  • Anpassung des Stop-Loss-Mechanismus zur Begrenzung der Verluste

Schlussfolgerung

Die Double Donchian Channel Breakout-Strategie ist insgesamt eine relativ stabile und zuverlässige Trend-Folge-Strategie. Sie kombiniert die Stärken sowohl der Trend-Erfassung als auch der Risikokontrolle und eignet sich daher als Basismodul für verschiedene Aktienhandelsstrategien.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
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)


slowLen = input.int(50, title="Slow Donchian")
fastLen = input.int(30, title="Fast Donchian")
volatility = input.int(3, title="Volatility (%)")
longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01
shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)")

ubSlow = ta.highest(close, slowLen)[1]
lbSlow = ta.lowest(close, slowLen)[1]

ubFast = ta.highest(close, fastLen)[1]
lbFast = ta.lowest(close, fastLen)[1]

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")

fark = (ubSlow - lbSlow) / lbSlow * 100

longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

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

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

if strategy.position_size > 0 and ta.crossunder(close, lbFast) 
    strategy.close("Long", "Close All")

if strategy.position_size < 0 and ta.crossover(close, ubFast)
    strategy.close("Short", "Close All")

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

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

Mehr