Cette stratégie construit un canal SuperTrend basé sur l'indicateur Average True Range (ATR) pour générer des signaux d'achat et de vente lorsque le prix traverse le canal.
Les bandes supérieure et inférieure du canal SuperTrend sont calculées comme suit:
La bande supérieure = (Prix le plus élevé + Prix le plus bas) / 2 + ATR (n) * Facteur La bande inférieure = (Prix le plus élevé + Prix le plus bas) / 2 - ATR (n) * Facteur
où ATR ((n) est la plage moyenne vraie de n périodes et Facteur est un paramètre réglable, par défaut à 3.
Un signal haussier est généré lorsque le prix de clôture dépasse la bande supérieure. Un signal baissier est généré lorsque le prix de clôture dépasse la bande inférieure. La stratégie détermine les entrées et les sorties en fonction de ces signaux.
Méthodes de résolution des risques:
Cette stratégie utilise le canal SuperTrend pour le suivi des tendances et la gestion des stop-loss. La correspondance entre la période ATR et les paramètres des facteurs est cruciale.
/*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)