
La estrategia es un sistema de seguimiento de tendencias basado en múltiples indicadores técnicos, que combina la media móvil (EMA), el índice de movimiento direccional (DMI), el oscilador de precios desestacionalizado (DPO), el índice de fuerza relativa (RSI) y el rango verdadero promedio (ATR). ) y otros indicadores técnicos para identificar tendencias fuertes y operar a través de múltiples confirmaciones de señales. La idea central del diseño de la estrategia es operar solo después de confirmar múltiples características del mercado, como la dirección de la tendencia, el impulso y la volatilidad, a fin de aumentar la tasa de éxito de las transacciones.
La estrategia utiliza la media móvil exponencial triple (EMA) como sistema central de juicio de tendencia, combinado con otros indicadores técnicos para la confirmación de múltiples señales:
Condiciones de activación de la señal comercial:
Medidas de control de riesgos:
Esta estrategia construye un sistema comercial completo de seguimiento de tendencias a través de la aplicación combinada de múltiples indicadores técnicos. Las características principales de la estrategia son la estricta confirmación de señales y un control de riesgos razonable, y es adecuada para rastrear tendencias a mediano y largo plazo a nivel diario. Si bien existe un cierto retraso, el rendimiento general de la estrategia es estable gracias a un estricto control de riesgos y la confirmación de múltiples señales. Se recomienda prestar atención a la elección del entorno de mercado al aplicar en el comercio real y optimizar los parámetros de acuerdo con las características de las variedades específicas.
/*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)