
Diese Strategie ist eine Trend-Tracking-Strategie, die die Richtung der Markttrends ermittelt und Handelssignale gibt. Die Strategie hat die Doppelfunktion von Trend-Ermittlung und Trend-Tracking und kann in Bereichen wie Aktienindex-Futures, Devisen und digitalen Währungen verwendet werden.
Die Strategie berechnet den ATR-Wert innerhalb eines bestimmten Zeitraums und vergleicht ihn mit dem Preis, um zu beurteilen, ob der Preis im Aufwärtstrend ist. Insbesondere berechnet die Strategie zuerst den ATR-Wert und baut dann den Auf- und Abwärtstrend auf Basis des ATR-Wertes. Wenn der Preis über dem Aufwärtstrend liegt, wird er als Aufwärtstrend beurteilt; wenn der Preis unter dem Abwärtstrend liegt, wird er als Abwärtstrend beurteilt.
Der Schlüssel zu dieser Strategie besteht darin, eine Trend-Bestimmungsnorm zu erstellen, die eine Übertrendlinie überschreitet. Die Übertrendlinie basiert auf den dynamischen Veränderungen der ATR-Indikatoren und kann effektiv Marktlärm filtern und die Hauptrendrichtung bestimmen. Die Übertrendlinie hat jedoch eine gewisse Verzögerung, die dazu beiträgt, die Trendwende zu bestätigen und falsche Handelssignale zu vermeiden.
Der größte Vorteil dieser Strategie liegt in der Kombination von Trendbeurteilung und Trendverfolgung. Insbesondere sind die Hauptvorteile:
Diese Strategie birgt folgende Risiken:
Die Strategie kann optimiert werden, indem Parameter wie ATR-Perioden, Übertrend-Linien-Faktoren angepasst werden, oder in Kombination mit anderen Indikatoren überprüft werden, um die Wahrscheinlichkeit eines falschen Signals zu verringern. Darüber hinaus kann ein Stop-Loss-Punkt gesetzt werden, um einzelne Verluste zu kontrollieren.
Die Strategie kann noch weiter optimiert werden:
Durch die Optimierung in der Tiefe soll die Stabilität, Anpassungsfähigkeit und die Gewinnspanne der Strategie weiter verbessert werden.
Die Strategie zeichnet sich insgesamt durch eine stabile, zuverlässige und ertragsstarke Strategie aus. Die Erstellung von Übertrendlinien, die die wichtigsten Trends beurteilen, und die Bereitstellung von Handelssignalen sind die größten Vorzüge der Strategie. Es besteht jedoch ein gewisses Risiko für Verzögerungen und Fehlentscheidungen.
/*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!")