Cette stratégie est une approche quantitative du trading qui combine les bandes de Bollinger et l'indice de force relative (RSI). Elle capture les points tournants du marché en coordonnant les écarts de prix des bandes de Bollinger avec les zones de surachat/survente du RSI.
La logique de base est basée sur la synergie de deux indicateurs techniques. Les bandes de Bollinger se composent d'une bande moyenne (SMA à 20 périodes) et de bandes supérieures/inférieures (déviations standard moyennes ± 2), reflétant la volatilité et les tendances des prix. Le RSI calcule la force relative des mouvements de prix pour identifier les conditions de surachat/survente. Lorsque le prix touche la bande inférieure et que le RSI est inférieur à 30, il suggère des conditions de survente potentielles et des opportunités de rebond. Lorsque le prix touche la bande supérieure et que le RSI est supérieur à 70, il indique des conditions de surachat potentielles et des risques de correction.
Il s'agit d'une stratégie quantitative qui combine de manière innovante les indicateurs techniques classiques Bollinger Bands et RSI. Grâce aux effets complémentaires de ces indicateurs, elle assure la fiabilité du signal tout en capturant efficacement les points tournants du marché. La stratégie présente une logique claire et des calculs simples avec une forte praticité. Bien qu'il existe des risques inhérents, les directions d'optimisation suggérées peuvent encore améliorer la stabilité et la rentabilité de la stratégie.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands + RSI Strategy", overlay=true) // Bollinger Bands length = 20 src = close mult = 2.0 basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // RSI rsiLength = 14 rsiOverbought = 70 rsiOversold = 30 rsiValue = ta.rsi(src, rsiLength) // Plot Bollinger Bands plot(basis, color=color.blue, linewidth=1) plot(upper, color=color.red, linewidth=1) plot(lower, color=color.green, linewidth=1) // Plot Buy/Sell signals buySignal = ta.crossover(close, lower) and rsiValue < rsiOversold sellSignal = ta.crossunder(close, upper) and rsiValue > rsiOverbought plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Entry/Exit if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy") // RSI Plot (not on overlay, for reference) rsiPlot = plot(rsiValue, title="RSI", color=color.purple, linewidth=1, offset=-1) hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green)