Strategie der Schildkröte für den Durchbruch durch den Doppelkanal

Schriftsteller:ChaoZhang, Datum: 2024-01-05 16:16:44
Tags:

img

Übersicht

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.

Grundsätze

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.

Vorteile

Die Doppelkanal-Schildkrötenstrategie hat folgende Vorteile:

  1. 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.

  2. 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.

  3. 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.

  4. Ausgezeichnete Position und Risikomanagement. Die Strategie verwendet die Volatilität des Donchian-Kanals zur Berechnung der Positionsgröße zur Risikokontrolle.

  5. 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.

Risiken

Die Doppelkanal-Schildkrötenstrategie birgt ebenfalls einige Risiken:

  1. Turtle eröffnet nur Positionen bei Kanal-Breakouts, kann keine genauere Situation verwenden, um Positionen zu erhöhen.

  2. Schildkröten können in aktiven Märkten leicht einen festen Mittelschienen-Stoppverlust erleiden.

  3. Bei Doppelkanal-Parametern ist eine Feinabstimmung notwendig. Richtige Parameter-Einstellungen sind entscheidend für eine angemessene Stabilität der Signale.

  4. 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.

Optimierungsrichtlinien

Die wichtigsten Optimierungsrichtungen für die Doppelkanal-Schildkrötenstrategie sind:

  1. Bei der Anpassung von Positionen können die Positionen anhand der Entfernung des Preises vom Kanal anstelle von einfachen Long/Short angepasst werden.

  2. Intelligente Stop-Loss-Strategien: Wechseln Sie feste Mittelschienenstopp auf dynamische Berechnungen, um eine feste Stop-Loss-Jagd zu vermeiden.

  3. Adaptive Optimierung der Kanalparameter. Ermöglichen Sie die automatische Anpassung der Kanalparameter an die Marktbedingungen anstelle von manuellen Festwerten.

  4. 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.

  5. 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.

Schlussfolgerung

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)

Mehr