Cette stratégie est un système de trading qui combine l'indice de force relative (RSI), la moyenne mobile pondérée (WMA) et la moyenne mobile exponentielle (EMA). En utilisant plusieurs indicateurs techniques, la stratégie capture les changements de momentum du marché aux points d'inversion de tendance pour générer des signaux de trading.
La logique de base de la stratégie repose sur les éléments clés suivants: 1. Le calcul de l'ISR utilise un réglage de 14 périodes pour mesurer les conditions de surachat/survente du marché 2. Les croisements de la WMA à 45 périodes et de la EMA à 89 périodes confirment les transitions de tendance 3. Conditions d'entrée: - Signal long: la WMA dépasse la EMA et le RSI<50 - Signal court: la WMA dépasse la EMA et le RSI>50 4. Le système visualise les conditions du marché à travers les changements de couleur du RSI, en vert lorsque le RSI est supérieur à 70 et en rouge lorsque le RSI est inférieur à 30. 5. Le fond bleu est placé dans la plage RSI 30-70 pour aider à identifier les zones neutres
Il s'agit d'une stratégie de suivi de tendance basée sur de multiples indicateurs techniques, combinant RSI, WMA et EMA pour capturer les points d'inversion de tendance du marché tout en maintenant la stabilité des transactions.
/*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) // RSI Color Logic rsiColor = rsi > 70 ? color.new(color.green, 100 - math.round(rsi)) : rsi < 30 ? color.new(color.red, math.round(rsi)) : color.new(color.blue, 50) // Plot RSI, WMA, and EMA plot(rsi, "RSI", color=rsiColor) plot(wma, title="WMA", color=wmaColorInput, linewidth=2) plot(ema, title="EMA", color=emaColorInput, linewidth=2) // Highlight RSI Area between 30 and 70 bgcolor(rsi >= 30 and rsi <= 70 ? color.new(color.blue, 90) : na) // 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) alert("Buy Signal: WMA crossed above EMA, RSI < 50", alert.freq_once_per_bar) if (shortCondition) strategy.entry("Short", strategy.short) alert("Sell Signal: WMA crossed below EMA, RSI > 50", alert.freq_once_per_bar) // 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")