
La stratégie est basée sur le double croisement des moyennes mobiles indicielles (EMA) et est conçue en combinaison avec un mécanisme de stop-loss dynamique. La stratégie utilise l’EMA du 10e jour et l’EMA du 20e jour comme signaux de négociation principaux, et le 50e jour comme filtre de tendance, tout en utilisant l’EMA du 10e jour comme ligne de stop-loss dynamique.
Cette stratégie, combinant double croisement EMA et stop loss dynamique, réalise un équilibre entre le suivi de la tendance et la maîtrise du risque. Son avantage central réside dans la structure logique claire et la conception visuelle intuitive, adaptée aux scénarios de négociation à faible ou moyenne fréquence. La stabilité peut être encore améliorée à l’avenir en introduisant des données de marché plus dimensionnelles (comme la volatilité, le volume de transactions).
/*backtest
start: 2024-04-24 00:00:00
end: 2025-04-23 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=5
//@description Ovtlyer EMA Crossover price over 50 Indicator
//@author YourName
strategy("EMA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Input EMA lengths
length10 = input.int(10, minval=1, title="10 EMA Length")
length20 = input.int(20, minval=1, title="20 EMA Length")
length50 = input.int(50, minval=1, title="50 EMA Length")
// Calculate EMAs
ema10 = ta.ema(close, length10)
ema20 = ta.ema(close, length20)
ema50 = ta.ema(close, length50)
// Bullish Condition: 10 EMA crosses above 20 EMA AND price is above 50 EMA
bullishCondition = ta.crossover(ema10, ema20) and close > ema50
// Bearish Condition: 10 EMA crosses below 20 EMA AND price is below 50 EMA
bearishCondition = ta.crossunder(ema10, ema20) and close < ema50
// Track the current market state
var isBullish = false
var isBearish = false
if (bullishCondition)
isBullish := true
isBearish := false
if (bearishCondition)
isBearish := true
isBullish := false
// Exit conditions
bullishExit = isBullish and close < ema10
bearishExit = isBearish and close > ema10
// Plot EMAs
plot(ema10, title="10 EMA", color=color.rgb(0, 255, 0), linewidth=3) // Thick green line for 10 EMA
plot(ema20, title="20 EMA", color=color.rgb(0, 150, 255), linewidth=2) // Medium blue line for 20 EMA
plot(ema50, title="50 EMA", color=color.rgb(255, 165, 0), linewidth=1) // Thin orange line for 50 EMA
// Strategy Entry and Exit
if (bullishCondition)
strategy.entry("Long", strategy.long)
if (bearishCondition)
strategy.entry("Short", strategy.short)
if (bullishExit)
strategy.close("Long")
if (bearishExit)
strategy.close("Short")
// Plot Entry Signals (for visualization)
plotshape(bullishCondition, title="Bullish Signal",
location=location.belowbar, style=shape.triangleup,
size=size.small, color=color.green)
plotshape(bearishCondition, title="Bearish Signal",
location=location.abovebar, style=shape.triangledown,
size=size.small, color=color.red)
// Plot Exit Signals (for visualization)
plotshape(bullishExit, title="Bullish Exit",
location=location.abovebar, style=shape.xcross,
size=size.small, color=color.orange)
plotshape(bearishExit, title="Bearish Exit",
location=location.belowbar, style=shape.xcross,
size=size.small, color=color.purple)