
La estrategia es un sistema de seguimiento de tendencias basado en un cuádruple índice de medias móviles (EMA) que identifica tendencias en el mercado a través de cruces y alineamientos de EMAs de 9, 21, 50 y 200 períodos, y combina el porcentaje de paradas para controlar el riesgo. La estrategia determina la dirección de la tendencia del mercado al juzgar el orden de las cuatro líneas de paridad.
La estrategia utiliza cuatro promedios móviles indexados de diferentes períodos (9, 21, 50, 200) para determinar la tendencia del mercado observando la relación entre estas medias. Cuando el EMA del 9 está por encima del EMA del 21, el EMA del 21 está por encima del EMA del 50, el EMA del 50 está por encima del EMA del 200, el sistema considera que el mercado está en una fuerte tendencia alcista y emite más.
Se trata de un sistema de comercio de seguimiento de tendencias completamente estructurado, que ofrece un mecanismo de identificación de tendencias más fiable mediante el uso combinado de múltiples líneas medias, al tiempo que se utiliza un porcentaje fijo de stop loss para controlar el riesgo. Aunque el sistema tiene cierto atraso, la estabilidad y la rentabilidad de la estrategia se pueden mejorar aún más mediante la optimización razonable de los parámetros y la adición de indicadores adicionales. Esta estrategia es especialmente adecuada para mercados con gran volatilidad y para el seguimiento de tendencias a medio y largo plazo.
/*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))