Esta estrategia es un sistema de seguimiento de tendencias basado en cuatro promedios móviles exponenciales (EMA), utilizando los cruces y alineaciones de 9, 21, 50 y 200 EMA de período para identificar las tendencias del mercado, combinado con un stop-loss basado en porcentajes para el control del riesgo.
La estrategia emplea cuatro EMA con diferentes períodos (9, 21, 50, 200) para evaluar las tendencias del mercado. Se genera una señal de compra cuando la EMA de 9 días está por encima de la EMA de 21 días, que está por encima de la EMA de 50 días, que a su vez está por encima de la EMA de 200 días, lo que indica una fuerte tendencia alcista. Por el contrario, la alineación opuesta genera señales de venta. Se implementa un stop-loss del 2% para controlar la pérdida máxima por operación.
Este es un sistema de negociación integral de seguimiento de tendencias que proporciona una identificación de tendencias confiable a través de múltiples EMA, al tiempo que implementa un porcentaje fijo de stop-loss para controlar el riesgo.
/*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))