
Die Donchian-Kanal-Break-Strategie ist eine auf dem Preiskanal basierende Trend-Tracking-Strategie. Die Strategie nutzt die oberen, unteren und mittleren Moving Averages in den Donchian-Kanälen, um die Preisentwicklung und den Durchbruch zu ermitteln, um ein Kauf- und Verkaufssignal zu senden.
Die Strategie berechnet zunächst die Höchst-, Tief- und Mittelpreise innerhalb eines bestimmten Zeitraums. Zwischen den Höchst- und Tiefpreisen bildet sich ein Preiskanal, wobei der Mittelwert in der Mitte des Kanals liegt. Wenn der Preis von unten nach oben die Mittellinie durchbricht, gilt dies als bullish Signal und macht einen Überschuss; wenn der Preis von oben nach unten die Mittellinie durchbricht, gilt dies als bearish Signal und macht einen Ausfall.
Insbesondere funktioniert die Strategie in folgenden Schritten:
Das sind die grundlegenden Handelsprinzipien der Strategie. Durch die Erfassung von Preisen, die den Trend durchbrechen, und die Beurteilung der Entwicklung, die Richtung an den wichtigen Punkten zu wechseln.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Gegenmaßnahmen:
Die Strategie kann auch in folgenden Bereichen optimiert werden:
Eine Breakout-Strategie ist insgesamt eine effektive Trend-Tracking-Strategie. Sie ist theoretisch begründet, logisch einfach, richtet sich nach dem Trend und verfolgt den Trend, um Gewinne zu erzielen. Die Breakout-basierte Strategie birgt jedoch auch Risiken und erfordert die Optimierung von Parametern und Filterbedingungen, um die Strategie stabiler und praktischer zu machen.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "dc", overlay = true)
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testPeriod() =>
true
//time >= testPeriodStart ? true : false
dcPeriod = input(20, "Period")
dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2
plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)
plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")
strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)