
Il s’agit d’une stratégie de suivi de tendance qui combine une moyenne mobile sur deux périodes (21 et 55), l’indicateur de momentum RSI et le volume. Cette stratégie analyse les informations du marché en trois dimensions : le prix, le momentum et le volume. Tout en confirmant la direction de la tendance, elle filtre les signaux de trading via des indicateurs RSI et de volume pour améliorer la précision du trading. La stratégie exige que lorsque le prix franchit la moyenne mobile à court terme et que le RSI franchit la moyenne mobile, le volume des transactions augmente pour confirmer la validité de la tendance.
La stratégie utilise un mécanisme de filtrage triple :
Les conditions d’achat doivent être remplies à la fois :
Les conditions de vente peuvent être l’une des suivantes :
Il s’agit d’une stratégie de suivi de tendance qui utilise les trois principaux éléments de l’analyse technique (prix, volume et momentum). Grâce à de multiples mécanismes de filtrage, la stratégie garantit non seulement la fiabilité du signal, mais dispose également d’une certaine capacité de contrôle des risques. Bien qu’il existe certaines limites inhérentes, grâce à une optimisation et une amélioration continues, cette stratégie devrait permettre d’obtenir des rendements stables dans les transactions réelles. Surtout sur les marchés présentant des tendances claires et une liquidité suffisante, la stratégie peut être plus performante.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("21/55 MA with RSI Crossover", overlay=true)
// Inputs for moving averages
ma21_length = input.int(21, title="21-day Moving Average Length", minval=1)
ma55_length = input.int(55, title="55-day Moving Average Length", minval=1)
// RSI settings
rsi_length = input.int(13, title="RSI Length", minval=1)
rsi_avg_length = input.int(13, title="RSI Average Length", minval=1)
// Moving averages
ma21 = ta.sma(close, ma21_length)
ma55 = ta.sma(close, ma55_length)
// Volume settings
vol_ma_length = input.int(21, title="Volume MA Length", minval=1)
// Volume moving average
vol_ma = ta.sma(volume, vol_ma_length)
// RSI calculation
rsi = ta.rsi(close, rsi_length)
rsi_avg = ta.sma(rsi, rsi_avg_length)
// Buy condition
// buy_condition = close > ma21 and ta.crossover(rsi, rsi_avg) and volume > vol_ma
buy_condition = close > ma21 and rsi > rsi_avg and volume > vol_ma
// Sell condition
// sell_condition = close < ma55 or ta.crossunder(rsi, rsi_avg)
sell_condition = ta.crossunder(close, ma55) or ta.crossunder(rsi, rsi_avg)
// Execute trades
if (buy_condition)
strategy.entry("Buy", strategy.long, comment="Buy Signal")
if (sell_condition)
strategy.close("Buy", comment="Sell Signal")
// Plot moving averages for reference
plot(ma21, color=color.blue, title="21-day MA")
plot(ma55, color=color.red, title="55-day MA")
// Plot RSI and RSI average for reference
rsi_plot = input.bool(true, title="Show RSI?", inline="rsi")
plot(rsi_plot ? rsi : na, color=color.green, title="RSI")
plot(rsi_plot ? rsi_avg : na, color=color.orange, title="RSI Average")