
La stratégie est un système de trading de suivi de tendance qui combine l’indice de force relative (RSI), la moyenne mobile pondérée (WMA) et la moyenne mobile exponentielle (EMA). La stratégie identifie les changements de tendance du marché en surveillant la position de la valeur RSI et le croisement du WMA et de l’EMA, générant ainsi des signaux d’achat et de vente. Cette méthode de combinaison prend non seulement en compte les conditions de surachat et de survente du marché, mais combine également le jugement de tendance des moyennes mobiles de différentes périodes, ce qui peut capturer les points de retournement du marché avec plus de précision.
La logique fondamentale de la stratégie repose sur les éléments clés suivants :
Cette stratégie construit un système de suivi de tendance relativement complet en combinant trois indicateurs techniques : RSI, WMA et EMA. L’avantage principal de la stratégie réside dans la fiabilité de ses signaux et ses capacités de contrôle des risques, mais en même temps, nous devons également prêter attention au risque de faux signaux sur des marchés volatils. En ajoutant des mesures d’optimisation telles que le filtrage de la volatilité et la confirmation de la force des tendances, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées. Dans l’ensemble, il s’agit d’une stratégie de trading avec une valeur pratique, particulièrement adaptée aux traders de tendance à moyen et long terme.
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy(title="RSI + WMA + EMA Strategy", shorttitle="RSI Strategy", overlay=true)
// RSI Settings
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
// WMA and EMA Settings
wmaLengthInput = input.int(45, minval=1, title="WMA Length", group="WMA Settings")
wmaColorInput = input.color(color.blue, title="WMA Color", group="WMA Settings")
emaLengthInput = input.int(89, minval=1, title="EMA Length", group="EMA Settings")
emaColorInput = input.color(color.purple, title="EMA Color", group="EMA Settings")
// RSI Calculation
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// WMA and EMA Calculation
wma = ta.wma(rsi, wmaLengthInput)
ema = ta.ema(rsi, emaLengthInput)
// Plot RSI, WMA, and EMA
plot(rsi, "RSI", color=#7E57C2)
plot(wma, title="WMA", color=wmaColorInput, linewidth=2)
plot(ema, title="EMA", color=emaColorInput, linewidth=2)
// Entry and Exit Conditions
longCondition = ta.crossover(wma, ema) and rsi < 50
shortCondition = ta.crossunder(wma, ema) and rsi > 50
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Optional: Plot Buy/Sell Signals on Chart
plotshape(series=longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")