Cette stratégie est un système de suivi des tendances basé sur quatre moyennes mobiles exponentielles (MEI), utilisant les croisements et l'alignement des moyennes mobiles à 9, 21, 50 et 200 périodes pour identifier les tendances du marché, combiné à un stop-loss basé sur le pourcentage pour le contrôle des risques.
La stratégie utilise quatre EMA avec des périodes différentes (9, 21, 50, 200) pour évaluer les tendances du marché. Un signal d'achat est généré lorsque l'EMA de 9 jours est au-dessus de l'EMA de 21 jours, qui est au-dessus de l'EMA de 50 jours, qui à son tour est au-dessus de l'EMA de 200 jours, indiquant une forte tendance haussière. À l'inverse, l'alignement inverse génère des signaux de vente. Un stop-loss de 2% est mis en œuvre pour contrôler la perte maximale par transaction.
Il s'agit d'un système de trading global de suivi des tendances qui fournit une identification fiable des tendances à travers plusieurs EMA tout en mettant en œuvre un pourcentage fixe de stop-loss pour le contrôle des risques.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-23 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("4 EMA Strategy with Stop Loss", overlay=true) // Define the EMA lengths ema1_length = input(9, title="EMA 1 Length") ema2_length = input(21, title="EMA 2 Length") ema3_length = input(50, title="EMA 3 Length") ema4_length = input(200, title="EMA 4 Length") // Calculate the EMAs ema1 = ta.ema(close, ema1_length) ema2 = ta.ema(close, ema2_length) ema3 = ta.ema(close, ema3_length) ema4 = ta.ema(close, ema4_length) // Plot EMAs on the chart plot(ema1, color=color.blue, title="EMA 9") plot(ema2, color=color.orange, title="EMA 21") plot(ema3, color=color.green, title="EMA 50") plot(ema4, color=color.red, title="EMA 200") // Define conditions for Buy and Sell signals buy_condition = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4) sell_condition = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4) // Input stop loss percentage stop_loss_perc = input(2.0, title="Stop Loss %") // Execute buy signal if (buy_condition) strategy.entry("Buy", strategy.long) // Set stop loss at a percentage below the entry price strategy.exit("Sell", "Buy", stop=strategy.position_avg_price * (1 - stop_loss_perc / 100)) // Execute sell signal if (sell_condition) strategy.entry("Sell", strategy.short) // Set stop loss at a percentage above the entry price strategy.exit("Cover", "Sell", stop=strategy.position_avg_price * (1 + stop_loss_perc / 100))