Diese Strategie basiert auf dem Indikator Average True Range (ATR), um eine SuperTrend-Linie zu erstellen, um die Markttrendrichtung zu beurteilen und Handelssignale zu generieren.
Die Strategie berechnet den ATR über einen bestimmten Zeitraum und vergleicht ihn mit dem Preis, um festzustellen, ob sich der Preis innerhalb eines Aufwärtstrendkanals befindet. Insbesondere berechnet sie zuerst den ATR, verwendet dann den ATR-Wert multipliziert mit einem Faktor, um die oberen und unteren Bande zu zeichnen. Wenn der Preis höher als das obere Band ist, wird ein Aufwärtstrend identifiziert. Wenn der Preis unter dem unteren Band ist, wird ein Abwärtstrend identifiziert. In einem Aufwärtstrend wird ein Kaufsignal erzeugt, wenn sich der Preis von einem Abwärtstrend in einen Aufwärtstrend ändert. In einem Abwärtstrend wird ein Verkaufssignal ausgelöst, wenn sich der Preis von einem Aufwärtstrend in einen Abwärtstrend ändert.
Der Schlüssel liegt in der Konstruktion der Trendbeurteilung Benchmark - SuperTrend-Linie. Die SuperTrend-Linie basiert auf der sich dynamisch verändernden ATR, die effektiv Filter aus Marktlärm und bestimmen die Haupttrend-Richtung. In der Zwischenzeit hat die SuperTrend-Linie einen gewissen Verzögerungseffekt, der dazu beiträgt, Trendumkehrpunkte zu bestätigen und fehlerhafte Handelssignale zu vermeiden.
Der größte Vorteil dieser Strategie ist die Kombination von Trendenerkennung und Nachverfolgungsfähigkeiten:
Zu den wichtigsten Risiken dieser Strategie gehören:
Mögliche Lösungen sind die Optimierung von Parametern wie ATR-Periode und SuperTrend-Faktor, die Kombination mit anderen Indikatoren zur Verifizierung und die Verringerung der falschen Signalwahrscheinlichkeiten.
Weitere Optimierungsmöglichkeiten bestehen in Bereichen wie:
Eine gründliche Optimierung verspricht, die Stabilität, Anpassungsfähigkeit und Rentabilität der Strategie weiter zu steigern.
Die Strategie zeigt insgesamt große Stabilität, Zuverlässigkeit und Rentabilität. Der Aufbau der SuperTrend-Linie für wichtige Trendbeurteilungen und Handelssignale ist ihr größtes Highlight. Es gibt jedoch ein gewisses Maß an Verzögerungseffekt und Fehleinschätzungsrisiken. Parameter- und Modelloptimierung verspricht eine bessere Strategieleistung. Zusammenfassend ist es als typische trendbasierte Strategie lohnend, sie im Live-Handel zu überprüfen und zu nutzen.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Supertrend Strategy", overlay = true) Periods = input(10, title="ATR Period") src = input(hl2, title="Source") Multiplier = input(3.0, title="ATR Multiplier", step=0.1) changeATR = input(true, title="Change ATR Calculation Method?") showsignals = input(true, title="Show Buy/Sell Signals?") highlighting = input(true, title="Highlighter On/Off?") atr2 = sma(tr, Periods) atr = changeATR ? atr(Periods) : atr2 up = src - (Multiplier * atr) up1 = nz(up[1], up) up := close[1] > up1 ? max(up, up1) : up dn = src + (Multiplier * atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green) buySignal = trend == 1 and trend[1] == -1 plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0) plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0) dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red) sellSignal = trend == -1 and trend[1] == 1 plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0) plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0) mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0) longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor) fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor) strategy.entry("Buy", strategy.long, when=buySignal) strategy.entry("Sell", strategy.short, when=sellSignal) alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!") alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!") changeCond = trend != trend[1] alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")