
Cette stratégie est un système de trading qui combine un système bi-médian ((EMA à 50 et 100 cycles) et un indicateur de dynamique RSI. La stratégie permet de déterminer les tendances du marché et les moments d’entrée en jeu en identifiant les zones de croisement de la ligne moyenne et de surachat du RSI, tout en utilisant des arrêts dynamiques pour contrôler les risques.
La logique centrale de la stratégie comprend les éléments clés suivants:
Il s’agit d’une stratégie de suivi de tendance basée sur la théorie classique de l’analyse technique, qui équilibre efficacement les opportunités de profit et le contrôle des risques grâce à l’utilisation combinée d’un système de courbe uniforme et d’un indicateur RSI. Les principaux avantages de la stratégie résident dans la clarté logique et la maîtrise des risques, mais nécessitent également une optimisation des paramètres et des améliorations de la stratégie appropriées en fonction des conditions du marché dans les applications réelles.
/*backtest
start: 2024-02-10 00:00:00
end: 2025-02-09 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("IME-Bands with RSI Strategy", overlay=true)
// === INPUTS ===
src = close
emaS_value = input.int(50, minval=1, title="EMA Small - Value") // 50 EMA
emaB_value = input.int(100, minval=1, title="EMA Big - Value") // 100 EMA
rsi_length = input.int(14, title="RSI Length")
rsi_source = input.source(close, title="RSI Source")
rsi_overbought = input.int(70, title="RSI Overbought Level")
rsi_oversold = input.int(30, title="RSI Oversold Level")
// === CALCULATIONS ===
// EMAs
emaS = ta.ema(close, emaS_value)
emaB = ta.ema(close, emaB_value)
// RSI
rsi = ta.rsi(rsi_source, rsi_length)
// IME-Band Cross Conditions
isGreenCrossover = emaS > emaB // Green band
isRedCrossover = emaS < emaB // Red band
// Track Green Cross Confirmation
var bool isGreenConfirmed = false
if (isGreenCrossover and not isGreenCrossover[1]) // First green crossover
isGreenConfirmed := true
if (not isGreenCrossover)
isGreenConfirmed := false
// Entry Condition: RSI above 70 on second green candle
entryCondition = isGreenConfirmed and rsi > rsi_overbought and isGreenCrossover
// Exit Condition: Red band confirmed
exitCondition = isRedCrossover
// === STRATEGY RULES ===
// Stop Loss: Lowest point of crossover
var float stopLoss = na
if (isGreenCrossover and not isGreenCrossover[1])
stopLoss := emaB // Set stop loss to EMA Big (crossover point)
// Entry and Exit Trades
if (entryCondition)
strategy.entry("Buy", strategy.long)
stopLoss := na // Reset stop loss after entry
if (exitCondition)
strategy.close("Buy")
// Stop Loss logic
if (strategy.position_size > 0 and not na(stopLoss))
strategy.exit("Stop Loss", from_entry="Buy", stop=stopLoss)
// Plotting
plot(emaS, color=color.green, title="EMA Small (50)", linewidth=1)
plot(emaB, color=color.red, title="EMA Big (100)", linewidth=1)
hline(rsi_overbought, "RSI Overbought", color=color.new(color.red, 70), linestyle=hline.style_dotted)
plot(rsi, color=color.blue, title="RSI")