
Il s’agit d’une stratégie de suivi de tendance basée sur plusieurs croisements de moyennes mobiles exponentielles (EMA). Cette stratégie utilise la relation croisée de l’EMA à court terme sur 10 périodes, de l’EMA à moyen terme sur 50 périodes et de l’EMA à long terme sur 200 périodes pour capturer les tendances du marché et entrer dans des transactions longues et courtes lorsque les conditions sont remplies. L’idée principale de la stratégie est de filtrer le bruit du marché à travers des moyennes mobiles de plusieurs périodes, d’identifier la direction principale de la tendance et de réaliser des bénéfices lorsque la tendance se poursuit.
La stratégie utilise un système de croisement triple EMA comme mécanisme de génération de signaux de trading. Spécifiquement:
Cette stratégie est un système de suivi de tendance classique. Grâce à l’utilisation coordonnée de plusieurs EMA, elle garantit non seulement la compréhension de la tendance principale, mais permet également un stop-loss des profits et des pertes en temps opportun. Bien qu’il existe un certain décalage, grâce à des paramètres raisonnables et à une gestion des risques, des rendements stables peuvent toujours être obtenus sur le marché en tendance. Il existe une grande marge d’optimisation de la stratégie, et les performances peuvent être améliorées en introduisant d’autres indicateurs techniques et en améliorant les règles de trading.
/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-09 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("EMA Crossover Strategy (Enhanced Debug)", overlay=true)
// Inputs for EMA periods
shortEMA = input.int(10, title="Short EMA Period")
mediumEMA = input.int(50, title="Medium EMA Period")
longEMA = input.int(200, title="Long EMA Period")
// Calculating EMAs
emaShort = ta.ema(close, shortEMA)
emaMedium = ta.ema(close, mediumEMA)
emaLong = ta.ema(close, longEMA)
// Plot EMAs
plot(emaShort, color=color.green, title="Short EMA")
plot(emaMedium, color=color.blue, title="Medium EMA")
plot(emaLong, color=color.red, title="Long EMA")
// Conditions for entry and exit
longCondition = close > emaLong and ta.crossover(emaShort, emaMedium) and emaMedium > emaLong
shortCondition = close < emaLong and ta.crossunder(emaShort, emaMedium) and emaMedium < emaLong
closeLongCondition = ta.crossunder(emaShort, emaMedium)
closeShortCondition = ta.crossover(emaShort, emaMedium)
// Debugging labels for unexpected behavior
if (ta.crossover(emaShort, emaLong) and not ta.crossover(emaShort, emaMedium))
label.new(bar_index, high, "Short > Long", style=label.style_circle, color=color.red, textcolor=color.white)
// Debugging EMA relationships
if (emaMedium <= emaLong)
label.new(bar_index, high, "Medium < Long", style=label.style_cross, color=color.orange, textcolor=color.white)
// Entry logic
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit logic
if (closeLongCondition)
strategy.close("Long")
if (closeShortCondition)
strategy.close("Short")
// Display labels for signals
plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Buy Signal")
plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Sell Signal")