Diese Strategie baut einen SuperTrend-Kanal auf der Grundlage des Indikators Average True Range (ATR) auf, um Kauf- und Verkaufssignale zu generieren, wenn der Preis durch den Kanal bricht.
Die oberen und unteren Bands des SuperTrend-Kanals werden wie folgt berechnet:
Obergrenze = (höchster Preis + niedrigster Preis) / 2 + ATR(n) * Faktor Unterer Band = (Höchster Preis + niedrigster Preis) / 2 - ATR (n) * Faktor
Hierbei ist ATR ((n) der n-Perioden-Durchschnittliche Wahre Reichweite und Faktor ein einstellbarer Parameter, Standardwert 3.
Ein Bullish-Signal wird erzeugt, wenn der Schlusskurs über das obere Band überschreitet. Ein Bearish-Signal wird erzeugt, wenn der Schlusskurs unter das untere Band überschreitet. Die Strategie bestimmt Ein- und Ausstiege auf der Grundlage dieser Signale.
Methoden zur Risikomanagement:
Diese Strategie verwendet den SuperTrend-Kanal für die Trendverfolgung und das Stop-Loss-Management. Die Übereinstimmung zwischen ATR-Periode und Faktorparametern ist entscheidend. Der nächste Schritt besteht darin, die Strategie durch Parameter-Tuning, Signalfilterung usw. weiter zu optimieren, um sie an komplexere Marktumgebungen anzupassen.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend Backtest", shorttitle="STBT", overlay=true) // Input for ATR Length atrLength = input.int(10, title="ATR Length", minval=1) atrFactor = input.float(3.0, title="Factor", minval=0.01, step=0.01) // Calculate SuperTrend [supertrend, direction] = ta.supertrend(atrFactor, atrLength) supertrend := barstate.isfirst ? na : supertrend // Define entry and exit conditions longCondition = ta.crossover(close, supertrend) shortCondition = ta.crossunder(close, supertrend) // Plot the SuperTrend plot(supertrend, color=color.new(color.blue, 0), title="SuperTrend") // Plot Buy and Sell signals plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal") // Strategy Entry and Exit strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition)