
La stratégie est un système de trading de régression des moyennes basé sur les bandes de Bollinger, qui optimise l’efficacité des transactions en combinant un filtre de tendance et un stop-loss dynamique. La stratégie utilise des principes statistiques pour effectuer des transactions lorsque les prix s’écartent de la moyenne, tout en améliorant le taux de victoire et en gérant les risques grâce à des indicateurs techniques.
Le cœur de la stratégie repose sur les éléments clés suivants:
Il s’agit d’une stratégie qui combine l’analyse technique classique avec des méthodes modernes de quantification. La stratégie a une bonne utilité grâce à la confirmation de multiples indicateurs et à un contrôle strict des risques. Il est recommandé d’effectuer un retour d’expérience historique adéquat et de vérifier les transactions simulées avant la mise en bourse.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Optimized Bollinger Mean Reversion", overlay=true)
// Bollinger Band Settings
length = input.int(20, title="BB Length")
src = input(close, title="Source")
mult = input.float(2.0, title="BB Multiplier")
// Bollinger Bands Calculation
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plot the Bollinger Bands
plot(basis, color=color.blue)
p1 = plot(upper, color=color.red)
p2 = plot(lower, color=color.red)
fill(p1, p2, color=color.rgb(41, 98, 255, 90))
// Trend Filter - 50 EMA
ema_filter = ta.ema(close, 50)
// ATR for Dynamic Stop Loss/Take Profit
atr_value = ta.atr(14)
// Buy condition - price touches lower band and above 50 EMA
buy_condition = ta.crossover(close, lower) and close > ema_filter
// Sell condition - price touches upper band and below 50 EMA
sell_condition = ta.crossunder(close, upper) and close < ema_filter
// Strategy Execution
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)
// Exit with dynamic ATR-based stop loss and take profit
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=2*atr_value, stop=1*atr_value)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=2*atr_value, stop=1*atr_value)