Turtle-Handelsstrategie basierend auf dem Donchian-Kanal


Erstellungsdatum: 2023-12-25 10:57:52 zuletzt geändert: 2023-12-25 10:57:52
Kopie: 3 Klicks: 888
1
konzentrieren Sie sich auf
1621
Anhänger

Turtle-Handelsstrategie basierend auf dem Donchian-Kanal

Überblick

Die Strategie nennt sich “Donchian Channel-basierte Seagull-Handelsstrategie”. Die Strategie basiert auf den Hauptgedanken der berühmten Seagull-Handelsphilosophie und nutzt die Donchian-Kanäle, um Markttrends zu beurteilen und in Kombination mit Moving Averages zu filtern, um eine relativ einfache Trendverfolgungsstrategie zu erreichen.

Strategieprinzip

Die Donchian-Kanal besteht aus einer N-Tage-Range von Höchst- und Tiefstpreisen, die als langes Signal verwendet werden, wenn der Preis den Kanal überschreitet, und als kurzes Signal, wenn der Preis den Kanal überschreitet. Die Strategie verwendet den schnellen Donchian-Kanal (10 Tage) als Signal und den langsamen Donchian-Kanal (20 Tage) als Stopp.

Zusätzlich werden zwei Moving Averages eingeführt, die die 50- und 125-Tage-Linien filtern. Mehrköpfige Transaktionen werden nur durchgeführt, wenn der schnelle Moving Average über den schnellen Moving Average fährt, und leere Transaktionen werden durchgeführt, wenn der schnelle Moving Average unter dem schnellen Moving Average fährt.

Die Bedingungen für die Eröffnung einer Position in dieser Strategie sind: der Preis überquert den Donchian-Kanal und der schnelle gleitende Durchschnitt überquert den langsamen gleitenden Durchschnitt, um die beiden Bedingungen zu erfüllen. Es werden mehrere Aufträge eröffnet; der Preis unterquert den Donchian-Kanal und der langsame gleitende Durchschnitt unterhalb des schnellen gleitenden Durchschnitts und eröffnet eine leere Position. Die Pläne sind für den Preis, der die Grenze des langsamen Donchian-Kanals in der entgegengesetzten Richtung berührt.

Strategische Stärkenanalyse

Diese Strategie hat folgende Vorteile:

  1. Die Donchian-Kanäle werden verwendet, um die Richtung der Trends zu bestimmen, die Rückmessung zu verbessern und die großen Trends zu erfassen.

  2. Ein zusätzlicher Filter für die Moving Averages, der einige falsche Signale filtern kann, um Verluste zu vermeiden.

  3. Eine Kombination aus schnellen Donchian-Kanälen und schnellen Moving Averages, um die Handelsfrequenz und die Stop-Loss-Genauigkeit auszugleichen.

  4. Es gibt Risikokontrollen und Stop-Loss-Mechanismen, um einzelne Verluste zu kontrollieren.

Strategische Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. In der Folge der Erschütterung kann es zu kleineren Verlusten kommen.

  2. Die Filterung von Moving Averages erhöht die Kosten für den Bau von Lagerhallen, wenn sich der Trend umkehrt.

  3. Im Falle von Zinsverlusten kann ein Verlustverlust verfolgt werden.

Gegenmaßnahmen und Lösungen:

  1. Die Parameter können entsprechend angepasst werden, um die Donchian-Zyklen zu verkürzen und die Moving-Average-Zyklen zu reduzieren, um sie an unterschiedliche Märkte anzupassen.

  2. Es ist wichtig, dass man sich über die großen Trends informiert, um nicht auf die Gegentrends zu setzen.

Richtung der Strategieoptimierung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Erhöhung der Beurteilung der Durchbruchstärke. Zum Beispiel die Einführung von Transaktionsmengen, die nur dann eröffnet werden, wenn die Transaktionsmengen größer sind;

  2. Erhöhung der Beurteilung von Hotspot-Bereichen. Beurteilung von Preis-Hotspot-Bereichen in Verbindung mit Unterstützungs-Druck-Bereichen, -Bereichen und -Mustern, um die Lagerung in Hotspot-Bereichen zu vermeiden.

  3. Optimierung der Stop-Loss-Strategie. Sie können Tracking-Stop, Amplitude-Stop, Zeit-Stop usw. einführen, um den Stop-Loss intelligenter zu machen.

Zusammenfassen

Diese Strategie ist insgesamt eine sehr typische und einfache Trendverfolgungsstrategie. Durch die Donchian-Kanal-Bestimmung der Richtung, die Filterung von Moving-Average-Signalen, wird eine bessere Rückmesswirkung erzielt. Die Strategie ist für Investoren geeignet, die große Trends verfolgen, die Risiken kontrollieren und die reale Handhabung erleichtern. Durch einige Parameter und Regeln kann die Strategie weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Coded by Vladkos
strategy("Donchian strategy with filter", overlay=true,default_qty_type = strategy.percent_of_equity, default_qty_value = 4,pyramiding=5)

fromyear = input(2017, defval = 2018, minval = 1800, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(21, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))
ATR=input(20,minval=1)
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
needstoploss= input(true,defval=true,title="Stop LOSS")
///////////ATR
tra=atr(ATR)


////////////Переменные
Donchian_slow=input(20,minval=1)
Donchian_fast=input(10,minval=1)
Slow_EMA=input(125,minval=1)
Fast_EMA=input(50,minval=1)

/////////// Медленный Дончан
lower = lowest(Donchian_slow)
upper = highest(Donchian_slow)
basis = avg(upper, lower)
plot(lower,color=blue)
plot(upper,color=blue)

/////////// быстрый Дончан
lowerF = lowest(Donchian_fast)
upperF = highest(Donchian_fast)
basisF = avg(upperF, lowerF)
plot(lowerF,color=red)
plot(upperF,color=red)

////////// Скользящие средние
ema_S=ema(close,Slow_EMA)
ema_F=ema(close,Fast_EMA)
plot(ema_S,color=red)
plot(ema_F,color=green)

///////// Условия сделок
long_condition= close>=upper[1] and ema_F>ema_S  
long_exit= close<lowerF[1]

short_condition=close<=lower[1] and ema_F<ema_S
short_exit=close>upperF[1]

////////// Отправка ордеров
strategy.entry("Long",strategy.long,when=long_condition and term and needlong==true)
strategy.exit("stop loss","Long",stop=strategy.position_avg_price-(tra*2),when= (needstoploss==true))
strategy.close("Long",when=long_exit and (time < timestamp(toyear, tomonth, today, 23, 59)))
    
strategy.entry("Short",strategy.short,when=short_condition and term and (needshort==true))
strategy.exit("stoploss","Short",stop=strategy.position_avg_price+(tra*2),when= (needstoploss==true))
strategy.close("Short",when=short_exit and (time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()