Esta estrategia emplea un sistema dual de promedios móviles para la determinación de tendencias y las decisiones comerciales, utilizando la posición relativa de promedios móviles exponenciales rápidos y lentos (EMA) en puntos de tiempo específicos para identificar el inicio, la continuación o la terminación de la tendencia.
El núcleo de la estrategia se basa en dos EMA con períodos diferentes para la determinación de la tendencia. La EMA rápida (período 10 por defecto) es más sensible a los cambios de precios, capaz de capturar rápidamente los movimientos del mercado; la EMA lenta (período 50 por defecto) refleja las tendencias a largo plazo. La estrategia verifica la relación de posición entre estas dos líneas en un momento especificado cada día de negociación (por defecto 9:00), utilizando señales de cruce de la EMA para determinar la dirección de la tendencia del mercado y ejecutar operaciones. Se ingresa una posición larga cuando la EMA rápida cruza por encima de la EMA lenta, lo que indica un fortalecimiento del impulso ascendente, mientras que se ingresa una posición corta cuando la EMA rápida cruza por debajo de la EMA lenta, lo que indica un fortalecimiento del impulso descendente.
La estrategia logra un sistema de negociación de seguimiento de tendencias simple pero efectivo mediante la combinación de un sistema dual EMA con mecanismos de verificación de tiempo fijo. Sus fortalezas se encuentran en una lógica clara y una alta automatización, aunque se enfrenta a limitaciones de retraso de la media móvil y tiempos de entrada fijos. Todavía hay un margen significativo de mejora a través de la introducción de indicadores técnicos adicionales, optimización de mecanismos de selección de parámetros y medidas de control de riesgos mejoradas.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Daily EMA Comparison Strategy", shorttitle="Daily EMA cros Comparison", overlay=true) //------------------------------------------------------------------------------ // Inputs //------------------------------------------------------------------------------ fastEmaLength = input.int(10, title="Fast EMA Length", minval=1) // Fast EMA period slowEmaLength = input.int(50, title="Slow EMA Length", minval=1) // Slow EMA period checkHour = input.int(9, title="Check Hour (24h format)", minval=0, maxval=23) // Hour to check checkMinute = input.int(0, title="Check Minute", minval=0, maxval=59) // Minute to check //------------------------------------------------------------------------------ // EMA Calculation //------------------------------------------------------------------------------ fastEMA = ta.ema(close, fastEmaLength) slowEMA = ta.ema(close, slowEmaLength) //------------------------------------------------------------------------------ // Time Check //------------------------------------------------------------------------------ // Get the current bar's time in the exchange's timezone currentTime = timestamp("GMT-0", year, month, dayofmonth, checkHour, checkMinute) // Check if the bar's time equals or passes the daily check time isCheckTime = (time >= currentTime and time < currentTime + 60 * 1000) // 1-minute tolerance //------------------------------------------------------------------------------ // Entry Conditions //------------------------------------------------------------------------------ // Buy if Fast EMA is above Slow EMA at the specified time buyCondition = isCheckTime and fastEMA > slowEMA // Sell if Fast EMA is below Slow EMA at the specified time sellCondition = isCheckTime and fastEMA < slowEMA //------------------------------------------------------------------------------ // Strategy Execution //------------------------------------------------------------------------------ // Enter Long if buyCondition strategy.entry("Long", strategy.long) // Enter Short if sellCondition strategy.entry("Short", strategy.short) //------------------------------------------------------------------------------ // Plot EMAs //------------------------------------------------------------------------------ plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.orange, title="Slow EMA")