
La stratégie est un système de suivi des tendances basé sur les signaux croisés des moyennes mobiles multifonctionnelles (EMA). Elle construit un cadre complet de reconnaissance des tendances et d’exécution des transactions en combinant les EMA de 20, 50 et 150 cycles. La stratégie utilise la relation croisée entre les EMA de différentes périodes pour déterminer les changements de tendances du marché et les moments de négociation spécifiques.
La stratégie utilise trois moyennes mobiles indicielles de différentes périodes: EMA20 pour les tendances à court terme, EMA50 pour les tendances à moyen terme et EMA150 pour les tendances à long terme. Une croix dorée est formée lorsque l’EMA50 traverse l’EMA150, indiquant une tendance à la hausse à long terme; une croix morte est formée lorsque l’EMA50 traverse l’EMA150, indiquant une tendance à la baisse à long terme.
La stratégie utilise des moyennes mobiles à indices multiples pour construire un système complet de suivi des tendances. La logique de la stratégie est claire, la mise en œuvre est simple et la bonne extensibilité est bonne. La stabilité et l’adaptabilité de la stratégie peuvent être encore améliorées par l’orientation optimisée proposée. La stratégie est adaptée pour suivre les tendances à moyen et à long terme, mais doit être utilisée en tenant compte des choix et du contrôle des risques du marché.
/*backtest
start: 2024-02-20 00:00:00
end: 2025-01-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("EMA2050150 Crossover Strategy#ganges", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)
// EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)
// Cross conditions
longCondition = ta.crossover(ema20, ema50)
flatCondition = ta.crossunder(ema20, ema50)
deathCross = ta.crossunder(ema50, ema150)
goldenCross = ta.crossover(ema50, ema150)
// // Trade execution
// if longCondition and time >= startDate and time <= endDate and strategy.position_size == 0
// strategy.entry("Long", strategy.long)
// if flatCondition and time >= startDate and time <= endDate and strategy.position_size > 0
// strategy.close("Long")
// Plot EMAs
plot(ema20, title="EMA 20", color=color.blue)
plot(ema50, title="EMA 50", color=color.orange)
plot(ema150, title="EMA 150", color=color.red)
// Plot cross signals
plotshape(series=goldenCross, location=location.belowbar, color=color.green, style=shape.labelup, title="Golden Cross", size=size.small, text="Golden Cross")
plotshape(series=deathCross, location=location.abovebar, color=color.red, style=shape.labeldown, title="Death Cross", size=size.small, text="Death Cross")
// Plot buy and sell signals
plotshape(series=longCondition, location=location.belowbar, color=color.blue, style=shape.triangleup, title="Buy Signal", size=size.small, text="Buy")
plotshape(series=flatCondition, location=location.abovebar, color=color.orange, style=shape.triangledown, title="Sell Signal", size=size.small, text="Sell")
// Trade execution
if longCondition and strategy.position_size == 0
strategy.entry("Long", strategy.long)
if flatCondition and strategy.position_size > 0
strategy.close("Long")