Die Double Channel Breakthrough Turtle Strategie ist eine Breakout-Strategie, die Handelssignale mithilfe des Donchian Channel-Indikators generiert. Die Strategie stellt sowohl schnelle als auch langsame Kanäle gleichzeitig her. Der schnelle Kanal wird verwendet, um Stop-Loss-Preise festzulegen, während der langsame Kanal zur Erzeugung von Eröffnungs- und Schlusssignalen verwendet wird. Wenn der Preis durch die obere Schiene des langsamen Kanals bricht, gehen Sie lang; wenn der Preis durch die untere Schiene bricht, gehen Sie kurz. Diese Strategie hat die Eigenschaften eines starken Trend-Tracking und einer guten Drawdown-Kontrolle.
Die Kernlogik der Double Channel Breakthrough Turtle Strategy basiert auf dem Donchian Channel-Indikator. Der Donchian Channel besteht aus oberer Schiene, unterer Schiene und mittlerer Schiene, berechnet aus höchsten hohen und niedrigsten niedrigen Preisen. Diese Strategie erzeugt sowohl schnelle als auch langsame Kanäle gleichzeitig, mit Parametern, die vom Benutzer festgelegt werden, und Standardperioden von 50 Bar für den langsamen Kanal und 20 Bar für den schnellen Kanal.
Die oberen und unteren Schienen (blaue Linien) des langsamen Kanals werden zur Erzeugung von Handelssignalen verwendet. Wenn der Preis durch die obere Schiene bricht, gehen Sie lang; wenn der Preis unter die untere Schiene bricht, gehen Sie kurz. Die mittlere Schiene (rote Linie) des schnellen Kanals wird für Stop-Loss verwendet. Der Stop-Loss-Preis für lange Positionen ist die mittlere Schiene des schnellen Kanals; der Stop-Loss-Preis für kurze Positionen ist auch die mittlere Schiene des schnellen Kanals.
Der langsame Kanal erzeugt also Signale, während der schnelle Kanal Risiken kontrolliert.
Darüber hinaus legt die Strategie auch Risikoprozentsatz und Positionsgröße fest. Der Risikoprozentsatz wird auf 2% eingestellt, und die Positionsgrößen werden auf der Grundlage des Risikoprozentsatzes und der Kanalvolatilität berechnet. Dies kontrolliert effektiv das Risiko pro Handel und die allmähliche Positionssteigerung.
Die Doppelkanal-Schildkrötenstrategie hat folgende Vorteile:
Eine starke Trendverfolgungsfähigkeit. Die Verwendung des Donchian-Kanals zur Bestimmung von Trends kann mittelfristige bis langfristige Trends effektiv erfassen. Das Doppelkanaldesign stellt sicher, dass die Strategie nur starke Trendmärkte verfolgt.
Die Mittelbahn des schnellen Kanals fungiert als Stop-Loss, so dass von oberen bis mittleren Schienen und von unteren bis mittleren Schienen Risikogegenden sind. Dies gewährleistet einen kontrollierbaren Verlust pro Handel. Die Strategie legt auch den Risikoprozentsatz fest, um den maximalen Kontoverlust direkt zu begrenzen.
Stabile Handelssignale. Die großen langsamen Kanalparameter erfordern eine relativ lange Zeit, um Kanäle zu bilden, um übermäßigen Handel zu vermeiden. Während der schnelle Kanal Verluste stoppt und kurzfristige Korrekturen erfasst. Die beiden ergänzen sich, um stabile Handelssignale zu bilden.
Ausgezeichnete Position und Risikomanagement. Die Strategie verwendet die Volatilität des Donchian-Kanals zur Berechnung der Positionsgröße zur Risikokontrolle.
Intuitive Visualisierung. Doppelkanäle, Stop-Loss-Linien, Positionshintergrund sind alle für ein einfaches Verständnis der Strategie-Logik klar gezeichnet. Mittlerweile werden auch maximaler Rückzug, maximaler Verlust und andere wichtige Kennzahlen angezeigt.
Die Doppelkanal-Schildkrötenstrategie birgt ebenfalls einige Risiken:
Turtle eröffnet nur Positionen bei Kanal-Breakouts, kann keine genauere Situation verwenden, um Positionen zu erhöhen.
Schildkröten können in aktiven Märkten leicht einen festen Mittelschienen-Stoppverlust erleiden.
Bei Doppelkanal-Parametern ist eine Feinabstimmung notwendig. Richtige Parameter-Einstellungen sind entscheidend für eine angemessene Stabilität der Signale.
Nicht in der Lage, Informationen über Nacht und vor dem Markt zu verwenden. Derzeit beurteilt die Strategie nur Trends auf der Grundlage von Live-Marktdaten und kann keine Handelsentscheidungen mit Preisaktionen über Nacht und vor dem Markt treffen. Dies kann durch Datenanpassung behoben werden.
Die wichtigsten Optimierungsrichtungen für die Doppelkanal-Schildkrötenstrategie sind:
Bei der Anpassung von Positionen können die Positionen anhand der Entfernung des Preises vom Kanal anstelle von einfachen Long/Short angepasst werden.
Intelligente Stop-Loss-Strategien: Wechseln Sie feste Mittelschienenstopp auf dynamische Berechnungen, um eine feste Stop-Loss-Jagd zu vermeiden.
Adaptive Optimierung der Kanalparameter. Ermöglichen Sie die automatische Anpassung der Kanalparameter an die Marktbedingungen anstelle von manuellen Festwerten.
Bei der Beurteilung von Trends müssen nicht nur die aktuellen Preise, sondern auch die Preise der Übernachtungs- und der Vormarktkurse berücksichtigt werden, um umfassendere Marktbedingungen zu erhalten.
Kombinieren Sie mehrere Aktien und Indizes. Wenden Sie die Strategie auf mehrere Aktien an, mit Inter-Aktien- und Index-Arbitrage-Möglichkeiten für verbessertes Alpha.
Zusammenfassend ist die Double Channel Breakthrough Turtle Strategy ein allgemeiner stabiler, effizienter Trend, der einer Strategie mit eingebetteter Risikokontrolle folgt. Die doppelte Verwendung von schnellen und langsamen Kanälen gewährleistet sowohl Signalstabilität als auch Risikomanagement. Darüber hinaus macht der Positionshintergrund, der maximale Drawdown und die Positionsgröße diese Strategie auch leicht zu verwalten und zu optimieren. Im Allgemeinen ist dies eine qualitativ hochwertige quantitative Strategie, die eine gründliche Forschung und Anwendung wert ist.
/*backtest start: 2023-12-05 00:00:00 end: 2024-01-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2020 //@version=4 strategy("Noro's RiskTurtle Strategy", shorttitle = "RiskTurtle 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") risk = input(2, minval = 0.1, maxval = 99, title = "Risk size, %") fast = input(20, minval = 1, title = "Fast channel (for stop-loss)") slow = input(50, minval = 1, title = "Slow channel (for entries)") showof = input(true, defval = true, title = "Show offset") showll = input(true, defval = true, title = "Show lines") showdd = input(true, 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, title = "Slow channel high") plot(ls, offset = offset, color = colorpc, title = "Slow channel low") plot(center, offset = offset, color = colorsl, title = "Fast channel stop-loss") //Background size = strategy.position_size colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na bgcolor(colorbg, transp = 70) //Var loss = 0.0 maxloss = 0.0 equity = 0.0 truetime = true //Lot size risksize = -1 * risk risklong = ((center / hs) - 1) * 100 coeflong = abs(risksize / risklong) lotlong = (strategy.equity / close) * coeflong riskshort = ((center / ls) - 1) * 100 coefshort = abs(risksize / riskshort) lotshort = (strategy.equity / close) * coefshort //Orders strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and hs > 0 and truetime) strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and ls > 0 and truetime) strategy.exit("LongExit", "Long", stop = center, when = needlong and strategy.position_size > 0) strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all() strategy.cancel("Long") strategy.cancel("Short") 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])) //Max loss size equity := strategy.position_size == 0 ? strategy.equity : equity[1] loss := equity < equity[1] ? ((equity / equity[1]) - 1) * 100 : 0 maxloss := min(nz(maxloss[1]), loss) //Label min := round(min * 100) / 100 maxloss := round(maxloss * 100) / 100 labeltext = "Drawdown: " + tostring(min) + "%" + "\nMax.loss " + tostring(maxloss) + "%" 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)