
La estrategia es un sistema de seguimiento de tendencias basado en señales de cruce de múltiples medias móviles de índices (EMA). Construye un marco completo para la identificación de tendencias y la ejecución de operaciones mediante la combinación de EMA de 20, 50 y 150 períodos. La estrategia utiliza la relación de cruce entre EMA de diferentes períodos para determinar los cambios en las tendencias del mercado y el momento específico de la operación.
La estrategia utiliza tres medias móviles de índices de diferentes períodos: EMA20 para tendencias a corto plazo, EMA50 para tendencias a medio plazo y EMA150 para tendencias a largo plazo. Cuando EMA50 cruza EMA150 se forma una cruz dorada, lo que indica la formación de una tendencia ascendente a largo plazo; cuando EMA50 cruza EMA150 se forma una cruz muerta, lo que indica la formación de una tendencia descendente a largo plazo. La señal de negociación específica se produce a partir de la cruz de EMA20 y EMA50: una señal de compra se produce cuando se cruza EMA50 en EMA20 y una señal de venta se produce cuando se cruza EMA50 en EMA20
La estrategia, mediante el uso combinado de múltiples medias móviles de índices, construye un sistema de comercio de seguimiento de tendencias completo. La lógica de la estrategia es clara, la implementación es simple y tiene una buena escalabilidad. La estabilidad y adaptabilidad de la estrategia se puede mejorar aún más mediante la dirección de optimización sugerida. La estrategia es adecuada para seguir las tendencias a medio y largo plazo, pero se debe tener en cuenta las opciones y el control del riesgo del entorno del mercado.
/*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")