Die Tang Anqi Turtle Trading Strategie ist eine sehr vereinfachte Version der ursprünglichen Turtle Trading Strategie. Sie unterscheidet sich stark von der ursprünglichen Turtle Strategie. Die Strategie verwendet zwei Donchian-Kanäle, einen schnellen Kanal und einen langsamen Kanal. Die Kanalperioden werden vom Benutzer festgelegt, mit Standardwerten von 20 Bars für den schnellen Kanal und 50 Bars für den langsamen Kanal. Die Strategie nutzt die oberen und unteren Bands des langsamen Kanals zum Eintritt in Trades und das mittlere Band des schnellen Kanals zum Setzen von Stop Loss.
Die Kernlogik dieser Strategie lautet:
Berechnen Sie den schnellen Donchian-Kanal: Das obere Band ist das höchste Hoch über die vergangenen schnellen Balken, das untere Band ist das niedrigste Tief und das mittlere Band ist der Durchschnitt der oberen und unteren Bande.
Berechnen Sie den langsamen Donchian Channel: Das obere Band ist das höchste Hoch über die letzten langsamen Balken, das untere Band ist das niedrigste Tief.
Wenn es keine Position gibt, wird ein langes Signal ausgelöst, wenn der Preis das obere Band des langsamen Kanals berührt, und ein kurzes Signal wird ausgelöst, wenn der Preis das untere Band des langsamen Kanals berührt.
Nach Eröffnung einer Position wird das mittlere Band des schnellen Kanals als Stop-Loss verwendet.
Schließen Sie die Position, wenn während des Haltezeitraums ein entgegengesetztes Signal als das Eröffnungssignal vorliegt.
Die Vorteile dieser Strategie sind:
Donchian-Kanäle und bewegliche Stop-Loss sind leicht zu verstehen, geeignet für Anfänger.
Anpassbare Parameter: Benutzer können die Parameter anhand von Handelsprodukten und Zeitrahmen anpassen, um sich an verschiedene Marktumgebungen anzupassen.
Wenige widersprüchliche Handelssignale. stützt sich ausschließlich auf Preisbrechungen der Kanalbänder, vermeidet falsche Signale von gängigen Indikatoren.
Automatisches Stop-Loss-Management. Der bewegliche Stop-Loss basierend auf dem schnellen Kanal-Mitteband kann Verluste bei einzelnen Trades begrenzen.
Zu den Risiken dieser Strategie gehören:
Mehr Stop-Loss, wenn der Trend unklar ist.
Wenn sich der Trend umkehrt, werden sich schwebende Gewinne in der vorherigen Trendrichtung in Verluste verwandeln.
Die falsche Einstellung der Parameter führt zu einer übermäßigen Aggressivität oder zu einer übermäßigen Konservativität.
Hohe Abhängigkeit vom automatisierten Handel. Die Stabilität des Servers ist wichtig, um Ausnahmen zu vermeiden, die zum Scheitern beim automatisierten Handel führen.
Zur Verringerung der oben genannten Risiken können Parameter optimiert, die Positionsgröße angemessen eingeschränkt und Risikomanagementmodule hinzugefügt werden.
Die Strategien können in folgenden Bereichen verbessert werden:
Fügen Sie Filter für Eintrittssignale hinzu, um zu vermeiden, dass Sie Trendumkehrsignale feststellen.
Optimierung von Parametern wie Kanalzeiten und Positionsgrößen, um unterschiedliche Handelsinstrumente besser zu integrieren.
Zusätzliche Risikomanagement-Module wie maximale Zugriffsgrenzen und tägliche Verlustgrenzen, um bei extremen Ereignissen übermäßige Verluste zu vermeiden.
Verbessern Sie Stop-Loss-Strategien, z. B. setzen Sie Trailing-Stop-Loss ein, um Stops an Markttrends anpassungsfähiger zu machen.
Zusammenfassend ist die Tang Anqi Turtle Trading Strategy ein einfaches Trendfolgensystem. Ihre Vorteile liegen in ihrer Einfachheit des Verständnisses und der Automatisierung. Aber sie birgt auch bestimmte Risiken, und weitere Optimierungen an Parametern und Risikomanagement sind erforderlich, um sie praktischer zu machen. Mit Maßnahmen wie Parameter-Tuning, Hinzufügen von Filtern und Risikokontrollmodulen kann die Strategie im Live-Handel bessere Ergebnisse erzielen.
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-15 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2020 //@version=4 strategy("Noro's SimpleTurtle Strategy", shorttitle = "SimpleTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") sizelong = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot long, %") sizeshort = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot short, %") fast = input(20, minval=1) slow = input(50, minval=1) showof = input(true, defval = true, title = "Show offset") showll = input(true, defval = true, title = "Show lines") showdd = input(false, defval = true, title = "Show label (drawdown)") showbg = input(true, defval = true, title = "Show background") fromyear = input(1900, defval = 1900, minval = 1900, 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(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Donchian price channel fast hf = highest(high, fast) lf = lowest(low, fast) center = (hf + lf) / 2 //Donchian price chennal slow hs = highest(high, slow) ls = lowest(low, slow) //Lines colorpc = showll ? color.blue : na colorsl = showll ? color.red : na offset = showof ? 1 : 0 plot(hs, offset = offset, color = colorpc) plot(ls, offset = offset, color = colorpc) plot(center, offset = offset, color = colorsl) //Background size = strategy.position_size colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na bgcolor(colorbg, transp = 70) //Orders truetime = true lotlong = 0.0 lotshort = 0.0 lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1] lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1] //Orders strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and truetime) strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and truetime) strategy.exit("Long", stop = center, when = needlong and strategy.position_size > 0) strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0) if true strategy.close_all() strategy.cancel("fast L") strategy.cancel("fast S") strategy.cancel("slow L") strategy.cancel("slow S") if showdd //Drawdown max = 0.0 max := max(strategy.equity, nz(max[1])) dd = (strategy.equity / max - 1) * 100 min = 100.0 min := min(dd, nz(min[1])) //Label min := round(min * 100) / 100 labeltext = "Drawdown: " + tostring(min) + "%" var label la = na label.delete(la) tc = min > -100 ? color.white : color.red osx = timenow + round(change(time)*10) osy = highest(100) la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)