Esta estrategia es un sistema de seguimiento de tendencias basado en múltiples indicadores técnicos, que combina promedios móviles (EMA), índice de movimiento direccional (DMI), oscilador de precios deteriorado (DPO), índice de fuerza relativa (RSI) y rango verdadero promedio (ATR).
La estrategia emplea un sistema de media móvil exponencial triple (EMA) como mecanismo central de identificación de tendencias, combinado con otros indicadores técnicos para la confirmación de múltiples señales: 1. La EMA rápida (10 días) capta el impulso de los precios a corto plazo 2. La EMA media (25-días) sirve como filtro de tendencia a medio plazo 3. La EMA lenta (50 días) define la dirección general de la tendencia 4. DMI (14 días) confirma la fuerza direccional de la tendencia 5. El DPO confirma la desviación de los precios de la tendencia 6. El RSI (14-day) mide el impulso y las condiciones de sobrecompra/sobreventa 7. ATR (14 días) establece objetivos de stop-loss y ganancia
Condiciones de las señales comerciales: - Largo: el EMA rápido cruza el EMA medio con ambos por encima del EMA lento, ADX>25, RSI>50, DPO>0 - Corto: la EMA rápida se cruza por debajo de la EMA media con ambas por debajo de la EMA lenta, ADX>25, RSI<50, DPO<0
Medidas de control de riesgos: - Las paradas dinámicas basadas en ATR se adaptan a la volatilidad del mercado - Gestión del riesgo en proporción fija - La confirmación cruzada de múltiples indicadores reduce las señales falsas
Esta estrategia construye un sistema comercial completo de seguimiento de tendencias a través de la combinación de múltiples indicadores técnicos. Sus características principales son la confirmación estricta de señales y el control razonable de riesgos, adecuados para el seguimiento de tendencias a mediano y largo plazo en plazos diarios. Si bien hay algún retraso en las señales, la estrategia demuestra un rendimiento general robusto a través del control estricto de riesgos y la confirmación de múltiples señales. Al aplicar al comercio en vivo, se debe tener en cuenta cuidadosamente la selección del entorno de mercado y la optimización de parámetros para instrumentos específicos.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Daily Strategy with Triple EMA, DMI, DPO, RSI, and ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters fastEmaLength = input.int(10, title="Fast EMA Length") mediumEmaLength = input.int(25, title="Medium EMA Length") slowEmaLength = input.int(50, title="Slow EMA Length") dmiLength = input.int(14, title="DMI Length") adxSmoothing = input.int(14, title="ADX Smoothing") dpoLength = input.int(14, title="DPO Length") rsiLength = input.int(14, title="RSI Length") atrLength = input.int(14, title="ATR Length") riskPercentage = input.float(2.0, title="Risk Percentage", step=0.1) atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss", step=0.1) tpMultiplier = input.float(2.0, title="ATR Multiplier for Take Profit", step=0.1) // Calculate EMAs fastEma = ta.ema(close, fastEmaLength) mediumEma = ta.ema(close, mediumEmaLength) slowEma = ta.ema(close, slowEmaLength) // Calculate other indicators [adx, diPlus, diMinus] = ta.dmi(dmiLength, adxSmoothing) dpo = close - ta.sma(close, dpoLength) rsi = ta.rsi(close, rsiLength) atr = ta.atr(atrLength) // Trading logic longCondition = ta.crossover(fastEma, mediumEma) and fastEma > slowEma and mediumEma > slowEma and adx > 25 and rsi > 50 and dpo > 0 shortCondition = ta.crossunder(fastEma, mediumEma) and fastEma < slowEma and mediumEma < slowEma and adx > 25 and rsi < 50 and dpo < 0 // Risk management riskAmount = (strategy.equity * riskPercentage) / 100 stopLoss = atr * atrMultiplier takeProfit = atr * tpMultiplier // Entry and exit logic if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Exit Long", "Buy", stop=close - stopLoss, limit=close + takeProfit) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Exit Short", "Sell", stop=close + stopLoss, limit=close - takeProfit) // Plot indicators plot(fastEma, color=color.green, title="Fast EMA") plot(mediumEma, color=color.orange, title="Medium EMA") plot(slowEma, color=color.red, title="Slow EMA") hline(25, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)