
Die Dongxian-Kanal-Trend-Tracking-Strategie ist eine Trend-Tracking-Strategie, die auf dem Dongxian-Kanal-Indikator basiert. Die Strategie erstellt einen Auflauf, einen Abfall und einen Mittellauf, um die Richtung des Markttrends zu bestimmen und Trend-Tracking-Transaktionen durch die Berechnung von Höchst- und Tiefstpreisen für verschiedene Perioden zu ermöglichen.
Die Strategie setzt zunächst den Rücklaufzeitbereich und definiert dann die Regel für die Eröffnung von Mehr- und Leerpositionen.
Bei Mehrköpfen wird ein Mehrköpfen-Einlass eingelegt, wenn der Preis den Tangxian-Kanal aufwärts überquert; ein Mehrköpfen-Begrenzung, wenn der Preis unterhalb des Kurses liegt.
Bei einem Leerlauf wird ein Leerlauf geöffnet, wenn der Preis unterhalb des Tangxian-Kanals untergeht. Ein Leerlauf wird geöffnet, wenn der Preis über dem Kurs liegt.
Die Strategie führt auch die ATR-Anzeige ein, um die Stop-Out-Mechanismen einzurichten. Der ATR-Wert wird mit einem Faktor als Stop-Loss multipliziert.
Konkret bedeutet ein Mehrkopfstop, dass der Eröffnungspreis abzüglich des ATR-Stoppwerts; ein Leerkopfstop, dass der Eröffnungspreis abzüglich des ATR-Stoppwerts.
Die Strategie zeichnet sowohl die Auf- und Abwärtsbahnen des Dongqian-Kanals als auch die ATR-Stopp-Linien für ein vollständiges Handelssystem aus.
Die Verwendung von Dongxian-Kanälen, um die Richtung der Trends zu bestimmen, hat eine gewisse Trendverfolgungsfähigkeit.
Die Smoother-Parameter des Dongjian-Kanals sind einstellbar und können durch Parameteroptimierung nach der optimalen Parameterkombination gesucht werden.
In Kombination mit dem Stop-Loss-System der ATR-Indikatoren kann das Risiko effektiv kontrolliert werden.
Die Regeln für den Handel mit mehreren Leerköpfen sind klar und verständlich und eignen sich für Einsteiger.
Der Code ist klar strukturiert, leicht zu verstehen und zweitzuentwickeln.
Bei den Preisschwankungen im Rahmen der Bilanzierung besteht ein gewisses Risiko für Fehltransaktionen.
Das ATR-Stillstandsbereich ist falsch eingestellt, was zu einem zu breiten oder zu empfindlichen Stillstand führen kann.
Es kann zu viel Konzentration auf offene Positionen kommen, so dass es notwendig ist, Regeln für die Positionsverwaltung einzurichten.
Die Anwendbarkeit von Handelssorten muss verifiziert werden und die Parameter für verschiedene Sorten müssen unabhängig optimiert werden.
Es ist auch notwendig, die Transaktionsgebühren zu berücksichtigen, die in einem hohen Kostenumfeld angepasst werden müssen.
Optimierung der Parameter für die Durchlaufzeit des Dongjian-Kanals, um die optimale Kombination von Parametern zu finden.
Versuchen Sie, verschiedene ATR-Faktor-Einstellungen zu finden, um die optimale Schadensspanne zu finden.
Versuchen Sie, auf der Grundlage von ATR-Stopps, mobile Stop-Losses einzuführen, um Gewinne zu sperren.
Der Prozentsatz der leeren Positionen wird entsprechend der Marktlage angepasst.
Verschiedene Sorten werden mit verschiedenen Parameterstärken getestet, um eine allgemeine Parameterkombination zu finden.
Es wurde auch geprüft, ob Filter, wie z.B. die “Signal Forks”, die Strategie stabilisieren können.
Anpassung an die verschiedenen Parameter des Tests für die Transaktionskosten-Umgebung.
Insgesamt ist die Strategie insgesamt eine relativ einfache Trendverfolgungsstrategie, deren Kern in der Anwendung des Dongxian-Kanals liegt. Die Strategie hat den Vorteil, dass sie einfach zu verstehen ist und für das Lernen geeignet ist, aber immer noch für Parameter und Risiken optimiert werden muss. Durch eine Vielzahl von Optimierungsmethoden wird die Stabilität und Profitabilität der Strategie verbessert.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © kriswaters
//@version=4
strategy("Donchian Channels Strategy by KrisWaters", overlay=true )
// Date filter
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2017, title = "From Year", minval = 1900)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// Strategy Settings
canEnterLong = input(true, title="Can Enter Long Position")
canEnterShort = input(false, title="Can Enter Short Position")
showLongChannel = input(true, title="Show Donchian Long Channels")
showShortChannel = input(false , title="Show Donchian Short Channels")
useAtrAsStopRule = input(false, title="Enable ATR Stop Rule")
// DonCcian Channel Lengths
longUpperLength = input(20, minval=1)
longLowerLength = input(10, minval=1)
shortUpperLength = input(10, minval=1)
shortLowerLength = input(20, minval=1)
// Donchian indicator calculations
longUpperValue = highest(high,longUpperLength)
longLowerValue = lowest(low,longLowerLength)
shortUpperValue = highest(high,shortUpperLength)
shortLowerValue = lowest(low,shortLowerLength)
// Plot Donchian Channels
uLong = plot(showLongChannel ? longUpperValue : na, color=color.green, offset=1)
lLong = plot(showLongChannel ? longLowerValue : na, color=color.green, offset=1)
uShort = plot(showShortChannel ? shortUpperValue : na, color=color.red, offset=1)
lShort = plot(showShortChannel ? shortLowerValue : na, color=color.red, offset=1)
// Styling
fill(uLong,lLong, color=color.green, transp=95, title="Long Arkaplan")
fill(uShort,lShort, color=color.red, transp=95, title="Short Arkaplan")
// Stop-loss value calculations
atrMultiplier = 2.0
atrValue = atr(20)
longStopValue = open - (atrMultiplier*atrValue)
shortStopValue = open + (atrMultiplier*atrValue)
// Plot stop-loss line
plot(useAtrAsStopRule ? longStopValue : na, color=color.red, linewidth=2, offset=1)
plot(useAtrAsStopRule ? shortStopValue : na, color=color.red, linewidth=2, offset=1)
// Long and Short Position Rules
if canEnterLong and na(longUpperValue) != true and na(longLowerValue) != true and window()
strategy.entry("Long", true, stop=longUpperValue)
strategy.exit("Long Exit", "Long", stop=useAtrAsStopRule ? max(longLowerValue,longStopValue) : longLowerValue)
if canEnterShort and na(shortUpperValue) != true and na(shortLowerValue) != true and window()
strategy.entry("Short", false, stop=shortLowerValue)
strategy.exit("Short Exit", "Short", stop=useAtrAsStopRule ? min(shortUpperValue,shortStopValue) : shortUpperValue)