
Cette stratégie combine la plage de fluctuation moyenne réelle (ATR) et la ligne de rétraction de Fibonacci pour concevoir une stratégie de suivi de la tendance avec une protection contre les pertes. La tendance est suivie lorsque le prix franchit la ligne de rétraction de l’ATR et la ligne de rétraction de Fibonacci pour définir des objectifs de prix, ce qui permet une combinaison organique de suivi de la tendance et d’arrêt des pertes.
Cette stratégie intègre les deux principales méthodes d’analyse technique, l’arrêt ATR et l’objectif Fibonacci. Elle permet d’optimiser les bénéfices dans la tendance et de contrôler les risques en utilisant le stop loss. C’est une stratégie de suivi de tendance très pratique.
/*backtest
start: 2023-02-21 00:00:00
end: 2024-02-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ATR TrailStop with Fib Targets", overlay=true)
// Input parameters
atrPeriod = input(5, title="ATR Period")
ATRFactor = input(3.5, title="ATR Factor")
Fib1Level = input(61.8, title="Fib1 Level")
Fib2Level = input(78.6, title="Fib2 Level")
Fib3Level = input(88.6, title="Fib3 Level")
// ATR Calculation
atrValue = ta.atr(atrPeriod)
// ATR TrailStop Calculation
loss = ATRFactor * atrValue
trendUp = close[1] > close[2] ? (close - loss > close[1] ? close - loss : close[1]) : close - loss
trendDown = close[1] < close[2] ? (close + loss < close[1] ? close + loss : close[1]) : close + loss
trend = close > close[2] ? 1 : close < close[2] ? -1 : 0
trailStop = trend == 1 ? trendUp : trendDown
// Fibonacci Levels Calculation
ex = trend > trend[1] ? high : trend < trend[1] ? low : na
fib1 = ex + (trailStop - ex) * Fib1Level / 100
fib2 = ex + (trailStop - ex) * Fib2Level / 100
fib3 = ex + (trailStop - ex) * Fib3Level / 100
// Plotting
plot(trailStop, title="TrailStop", color=color.red)
plot(fib1, title="Fib1", color=color.white)
plot(fib2, title="Fib2", color=color.white)
plot(fib3, title="Fib3", color=color.white)
// Buy and Sell Signals
longCondition = close > trailStop and close[1] <= trailStop
shortCondition = close < trailStop and close[1] >= trailStop
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)