Esta es una estrategia de negociación cuantitativa basada en el doble cruce EMA y el seguimiento de tendencias. La estrategia utiliza principalmente promedios móviles exponenciales (EMA) de 47 períodos y 95 períodos para capturar las tendencias del mercado, ejecutando operaciones basadas en señales de cruce EMA. Operando en un marco de tiempo de 15 minutos, combina el análisis técnico y los principios de negociación de impulso para lograr rendimientos comerciales consistentes.
El mecanismo básico se basa en la identificación de cambios de tendencia a través de cruces entre la EMA a corto plazo (47-período) y la EMA a largo plazo (95-período). Las señales de compra se generan cuando la EMA a corto plazo cruza por encima de la EMA a largo plazo, mientras que las posiciones se cierran cuando la EMA a corto plazo cruza por debajo.
Esta es una estrategia de seguimiento de tendencias bien estructurada y lógicamente rigurosa. Captura las tendencias del mercado a través de cruces duales de EMA, ofreciendo una buena operabilidad y escalabilidad. Aunque existen ciertas limitaciones, la optimización y mejora continua pueden convertirlo en un sistema de negociación estable y confiable. La clave es ajustar flexiblemente los parámetros basados en diferentes características del mercado y establecer mecanismos integrales de control de riesgos.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy", overlay=true) // Define the EMA periods shortEmaPeriod = 47 longEmaPeriod = 95 // Calculate EMAs ema11 = ta.ema(close, shortEmaPeriod) ema21 = ta.ema(close, longEmaPeriod) // Plot EMAs on the chart plot(ema11, title="11 EMA", color=color.blue, linewidth=2) plot(ema21, title="21 EMA", color=color.red, linewidth=2) // Generate trading signals longSignal = ta.crossover(ema11, ema21) shortSignal = ta.crossunder(ema11, ema21) // Execute trades based on signals if (longSignal) strategy.entry("Buy", strategy.long) if (shortSignal) strategy.close("Buy") // Optional: Plot buy and sell signals on the chart plotshape(series=longSignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=shortSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell") // Plot buy/sell signals on the main chart plotshape(series=longSignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=shortSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")