Cette stratégie est un système de suivi des tendances basé sur les signaux croisés MACD et RSI, combiné avec les bandes de Bollinger pour l'analyse de la volatilité du marché.
La stratégie utilise un triple mécanisme de filtrage des indicateurs techniques:
Les conditions d'entrée exigent que le MACD soit en croix dorée et que le RSI soit dans la zone inférieure (<50), ce qui indique une reprise potentielle du marché à partir des zones de survente. Les conditions de sortie exigent que le MACD soit en croisement mortel et que le RSI se situe dans une zone supérieure (> 50), ce qui suggère un affaiblissement de l'élan à la hausse et une éventuelle correction.
La stratégie construit un système de trading de suivi de tendance relativement complet grâce à l'application combinée de MACD, RSI et Bollinger Bands. Elle a une base théorique solide et une faisabilité pratique, mais nécessite toujours une optimisation des paramètres et des améliorations du contrôle des risques en fonction des caractéristiques spécifiques du marché.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MACD, RSI, Bollinger Bands Strategy", overlay=true) // Input parameters for MACD fastLength = input.int(12, title="MACD Fast Length") slowLength = input.int(26, title="MACD Slow Length") signalLength = input.int(9, title="MACD Signal Length") // Input parameters for RSI rsiLength = input.int(14, title="RSI Length") // Input parameters for Bollinger Bands bbLength = input.int(20, title="Bollinger Band Length") bbMult = input.float(2.0, title="Bollinger Band Multiplier") // MACD calculation [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength) macdCrossUp = ta.crossover(macdLine, signalLine) macdCrossDown = ta.crossunder(macdLine, signalLine) // RSI calculation rsi = ta.rsi(close, rsiLength) // Bollinger Bands calculation bbBasis = ta.sma(close, bbLength) bbUpper = bbBasis + bbMult * ta.stdev(close, bbLength) bbLower = bbBasis - bbMult * ta.stdev(close, bbLength) // Plot Bollinger Bands plot(bbBasis, color=color.blue, title="Bollinger Band Basis") plot(bbUpper, color=color.green, title="Upper Bollinger Band") plot(bbLower, color=color.red, title="Lower Bollinger Band") // Entry condition: MACD crosses signal line from below and RSI < 50 enterLong = macdCrossUp and rsi < 50 // Exit condition: MACD crosses signal line from above and close touches the Bollinger Band middle line exitLong = macdCrossDown and rsi> 50 // Strategy logic if (enterLong and strategy.position_size == 0) strategy.entry("Buy", strategy.long) if (exitLong and strategy.position_size > 0) strategy.close("Buy")