
Die Strategie basiert auf der Durchschnittlichen wahren Bandbreite (Average True Range, ATR) Indikator zu bauen übertrend (SuperTrend) Kanal, nach dem Preis brechen übertrend Kanal zu erzeugen, kaufen und verkaufen Signale. Die Strategie kombiniert die Vorteile der Trend-Tracking und Stop-Loss-Management, kann effektiv zu verfolgen, die Richtung der Tendenz.
Die oberen und unteren Bahnen des Übertrendkanals werden durch folgende Formel berechnet:
Aufwärts = (Höchstpreis + Mindestpreis) / 2 + ATR (n) * Faktor Unterstraße = (höchster Preis + niedriger Preis) / 2 - ATR (n) * Faktor
Dabei ist ATR (n) die durchschnittliche tatsächliche Breite für n Tage, wobei der Faktor ein einstellbarer Parameter ist und die Default-Wertung 3。 ist.
Wenn der Schlusskurs über der Oberfläche liegt, ist dies ein bullish Signal. Wenn der Schlusskurs unter der Unterfläche liegt, ist dies ein bullish Signal. Die Strategie bestimmt den Eintritt und den Ausstieg auf der Grundlage von bullish und bullish Signalen.
Die Risiken können auf folgende Weise gelöst werden:
Die Strategie nutzt den Hypertrend-Kanal, um Trend-Tracking und Stop-Loss-Management zu realisieren. Die Übereinstimmung der ATR-Zyklen und der Faktorparameter ist entscheidend für die Wirksamkeit der Strategie. Der nächste Schritt besteht darin, die Strategie weiter zu optimieren, um sie an kompliziertere 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)