Eine trendfolgende dynamische Channel-Breakout-Strategie


Erstellungsdatum: 2024-01-17 15:29:55 zuletzt geändert: 2024-01-17 15:29:55
Kopie: 1 Klicks: 671
1
konzentrieren Sie sich auf
1617
Anhänger

Eine trendfolgende dynamische Channel-Breakout-Strategie

Überblick

Eine dynamische Channel-Breakout-Strategie ist eine Trend-Tracking-Strategie. Die Strategie verwendet die Donchian-Channel-Indikatoren, um dynamisch die Breakout-Kauf- und Verkaufspreise zu bestimmen, in Kombination mit der Volatilität des ATR-Indikators, um den Stop-Loss-Punkt zu setzen, um die Generierung von Handelssignalen und die vollständige Automatisierung der Stop-Loss-Ausgänge zu ermöglichen.

Strategieprinzip

Die Donchian-Straße

Ein Donchian-Kanal ist ein dynamischer Kanal-Indikator, der durch die Berechnung von Höchst- und Tiefstpreisen in den vergangenen Zeitabschnitten eine Oberbahn und eine Unterbahn bildet. Die Oberbahn ist der Höchstpreis in den vergangenen n Zeitabschnitten und die Unterbahn ist der Tiefstpreis in den vergangenen n Zeitabschnitten. Der Donchian-Kanal spiegelt die Schwankungsbreite und die potenziellen Trends des Marktes wider.

Die Strategie setzt die Donchian-Kanal-Periode auf 20 Tage. Bei einem Kursbruch entsteht ein Kaufsignal, das einen Aufwärtstrend signalisiert, und ein Verkaufssignal, das einen Abwärtstrend signalisiert, wenn der Preis einen Abwärtstrend signalisiert.

ATR-Indikatoren

Der ATR-Indikator ist die Abkürzung für “Average True Range” und zeigt die durchschnittliche Schwankungsbreite eines Vermögenswerts in der jüngsten Zeit an. Der ATR kann sich automatisch an die Veränderungen der Marktfrequenz anpassen und so die tatsächliche Schwankungsbreite in der jüngsten Zeit des Marktes genauer abbilden.

Die Strategie verwendet den 20-Tage-ATR-Indikator, um den Stop-Loss zu berechnen. Je größer der ATR-Wert ist, desto größer ist die Marktfluktuation und desto weiter entfernt ist der gesetzte Stop-Loss. Dies verhindert, dass der Stop-Loss zu nahe kommt und von kleinen Marktschwankungen getroffen wird.

Strategische Signale

Wenn der Preis die Mitte des Donchian-Kanals überschreitet, wird ein Kaufsignal erzeugt. Wenn der Preis die Mitte des Donchian-Kanals unterschreitet, wird ein Verkaufsignal erzeugt. Dies zeigt an, dass der Preis beginnt, den Kanal zu durchbrechen und in eine neue Runde zu gehen.

In Kombination mit der Stop-Loss-Punkt-Berechnung des ATR-Indikators wird der Stop-Loss-Position-Ausstieg aktiviert, wenn der Stop-Loss-Punkt erreicht ist, um das Risiko zu kontrollieren.

Analyse der Stärken

Automatische Trendverfolgung

Donchian-Kanal ist ein Trend-Tracking-Indikator. Die Strategie ist in der Lage, die Veränderungen der Markttrends automatisch zu verfolgen, indem sie den Kanalbereich dynamisch anpasst, was zu einem Kauf- und Verkaufssignal führt. Dies vermeidet die Subjektivität von künstlichen Urteilen und macht die Erzeugung von Handelssignalen objektiver und zuverlässiger.

Bilaterale Transaktionen

Die Strategie beinhaltet sowohl Über- als auch Unterziehungsregeln und ermöglicht einen bilateralen Handel. Dies erweitert das Marktumfeld, in dem die Strategie angewendet wird, und ermöglicht den Gewinn bei steigenden und fallenden Kursen.

Risikokontrolle

Der Stop-Loss-Mechanismus in Verbindung mit dem ATR-Indikator kann die Verluste eines einzelnen Handels effektiv kontrollieren. Dies ist besonders wichtig für den Quantitative Handel, um zu gewährleisten, dass die Strategie bei einem hochprobablen Ereignis einen stabilen positiven Ertrag erzielt.

Risikoanalyse

Das Risiko eingehen

Die Donchian-Kanal-Strategie birgt ein gewisses Deckungsrisiko. Wenn der Preis umkehrt und wieder in den Kanal eintritt, entstehen erhebliche Verluste, wenn nicht aufgehört wird. Diese Strategie verringert dieses Risiko durch die Stop-Loss-Mechanismen des ATR-Indikators.

Trendumkehrrisiko

Der Donchian-Channel-Indikator erzeugt falsche Signale, wenn sich der Trend umkehrt. Benutzer müssen auf die Marktlage achten, um zu vermeiden, dass sie blind folgen, wenn eine deutliche Trendwende eintritt.

Risiken der Parameteroptimierung

Donchian-Kanal- und ATR-Stillstands-Periodenparameter müssen optimiert werden, da sonst zu viele Fehlsignale erzeugt werden. In dieser Strategie werden empirische Parameter verwendet, die in der Realität anhand historischer Daten optimiert werden müssen.

Optimierungsrichtung

Zusammenfassung von Trends

Trend-Kennzeichen wie beispielsweise bewegliche Durchschnitte können hinzugefügt werden, um falsche Signale an bedeutenden Trendwendepunkten zu vermeiden.

Parameteroptimierung

Optimierung der Donchian-Kanal- und ATR-Parameter, um die optimale Kombination von Parametern zu finden. Eine angemessene Verkürzung der Kanal-Zyklen kann eine Trendwende schneller erfassen.

Kombination mit Preisform

In Kombination mit anderen Hilfsindikatoren wie K-Line-Form, Veränderung des Handelsvolumens usw. kann die Genauigkeit der Signale verbessert und unnötige Umkehrungen verringert werden.

Zusammenfassen

Die Dynamische Kanal-Breakout-Strategie orientiert sich an der Richtung des Trends über die Auf- und Abwärtsbahnen des Donchian-Kanals und erzeugt Handelssignale. Die Strategie ist hoch automatisiert und eignet sich für den Quantifizierungshandel. Der Optimierungsraum liegt in der Optimierung der Parameterwahl und der Verbesserung der Signalgenauigkeit in Kombination mit anderen Hilfsindikatoren.

Strategiequellcode
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "dc",  overlay = true)
atrLength = input(title="ATR Length:", defval=20, minval=1)

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
atrValue=atr(atrLength)


useTakeProfit   = na
useStopLoss     = na
useTrailStop    = na
useTrailOffset  = na

Buy_stop = lowest(low[1],3) - atr(20)[1] / 3
plot(Buy_stop, color=red, title="buy_stoploss")
Sell_stop = highest(high[1],3) + atr(20)[1] / 3
plot(Sell_stop, color=green, title="sell_stoploss")

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=yellow, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage))
strategy.close("simpleBuy",when=((close < dcAverage) and  cross(close,dcAverage)) or ( close< Buy_stop))
    
strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) )
strategy.close("simpleSell",when=((close > dcAverage) and cross(close,dcAverage)) or ( close > Sell_stop))
    
//strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
//strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)