Una estrategia de trading con dos indicadores que combina el seguimiento de tendencias y el impulso

SMA ATR MACD NNFX
Fecha de creación: 2024-09-26 16:14:22 Última modificación: 2024-09-26 16:14:22
Copiar: 1 Número de Visitas: 592
1
Seguir
1617
Seguidores

Una estrategia de trading con dos indicadores que combina el seguimiento de tendencias y el impulso

Descripción general

Esta estrategia combina dos métodos de seguimiento de tendencias y análisis de la dinámica, utilizando el promedio móvil simple (SMA) y el indicador de dispersión de convergencia de las medias móviles (MACD) para identificar oportunidades potenciales de negociación. La estrategia determina la tendencia general del mercado a través del indicador de Trendilo (un indicador de tendencia basado en SMA), mientras que utiliza el cruce de la línea de cero del MACD para capturar cambios en la dinámica a corto plazo.

Principio de estrategia

La lógica central de la estrategia se basa en los siguientes elementos clave:

  1. Indicador Trendilo: utiliza una media móvil simple de 50 ciclos para determinar la dirección de la tendencia a medio y largo plazo.
  2. El cruce de la línea cero del MACD: se utiliza para capturar cambios en la dinámica a corto plazo, como señal de entrada.
  3. La configuración ATR Stop Loss/Profit: utiliza el ATR de 14 ciclos para ajustar dinámicamente los parámetros de gestión de riesgo.

Concretamente, cuando la línea MACD cruza la línea cero desde abajo (corrida hacia arriba) y el precio de cierre está por encima de la línea Trendilo, se activa una señal de más. Por el contrario, cuando la línea MACD cruza la línea cero desde arriba (corrida hacia abajo) y el precio de cierre está por debajo de la línea Trendilo, se activa una señal de vacío.

Ventajas estratégicas

  1. Confirmación de tendencias: mediante la combinación de Trendilo y MACD, la estrategia es capaz de capturar cambios en la dinámica a corto plazo al mismo tiempo que confirma la tendencia general, reduciendo de manera efectiva las falsas señales.
  2. Gestión de riesgos dinámica: utiliza ATR para establecer niveles de stop loss y gain, permitiendo que la estrategia se ajuste automáticamente a la volatilidad del mercado, lo que mejora la adaptabilidad de la estrategia.
  3. Análisis multicíclico: combina los indicadores de Trendilo a mediano y largo plazo y el MACD a corto plazo para ofrecer una perspectiva más completa del mercado.
  4. Soporte visual: la estrategia marca las señales de compra y venta y las líneas de tendencia en los gráficos, lo que ayuda a los comerciantes a comprender intuitivamente la situación del mercado.

Riesgo estratégico

  1. Riesgo de reversión de la tendencia: Performar bien en un mercado en fuerte tendencia, pero puede generar pérdidas en un mercado en contraposición o en una reversión rápida.
  2. Sensibilidad a los parámetros: el rendimiento de la estrategia puede ser altamente sensible a la selección de los parámetros de entrada (como el ciclo de Trendilo, el multiplicador ATR, etc.).
  3. Exceso de transacciones: en un mercado con gran volatilidad, se pueden generar señales de transacciones frecuentes, lo que aumenta los costos de las transacciones.
  4. Retraso: La estrategia puede perder algunas oportunidades al comienzo de la tendencia debido al uso de medias móviles.

Dirección de optimización de la estrategia

  1. Introducción de filtros: Se pueden agregar indicadores técnicos adicionales o indicadores de sentimiento del mercado para filtrar señales de comercio de baja calidad.
  2. Optimizar la selección de parámetros: Buscar la combinación óptima de períodos de Trendilo y ATR multiplicado por los datos históricos.
  3. Adición de ajuste de la volatilidad: ajuste dinámico de los parámetros de la estrategia en función de la volatilidad del mercado actual, para mejorar la adaptabilidad de la estrategia.
  4. Realizar administración de posiciones parcial: considerar el tamaño de las posiciones de cada transacción según la intensidad de la señal o las condiciones del mercado.
  5. Aumentar el filtro de tiempo: agregar restricciones a las ventanas de tiempo de negociación para evitar períodos de mayor volatilidad o menor liquidez.

Resumir

La estrategia combina hábilmente el seguimiento de tendencias y el análisis de la dinámica, ofreciendo a los operadores un marco de análisis de mercado relativamente completo a través de la sinergia de Trendilo y MACD. El método dinámico de gestión de riesgos aumenta la adaptabilidad de la estrategia, lo que le permite mantener la estabilidad en diferentes entornos de mercado. Sin embargo, los operadores aún deben ser cautelosos al usar esta estrategia, especialmente en la optimización de parámetros y el control de riesgos.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("NNFX Trendilo + Zero MACD Strategy", overlay=true)

// --- Inputs ---
atrPeriod = input.int(14, title="ATR Period")
stopLossMultiplier = input.float(1.5, minval=0.0, maxval = 20.0, step = 0.1 ,title="Stop Loss Multiplier")
takeProfitMultiplier = input.float(2.0, minval=0.0 , maxval = 20.0, step = 0.1,title="Take Profit Multiplier")

// --- Trendilo ---
trendiloPeriod = input.int(50, title="Trendilo Period")
trendilo = ta.sma(close, trendiloPeriod)

// --- MACD ---
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdZeroCrossUp = ta.crossover(macdLine, 0)
macdZeroCrossDown = ta.crossunder(macdLine, 0)

// --- ATR for Stop Loss and Take Profit ---
atr = ta.atr(atrPeriod)
stopLoss = atr * stopLossMultiplier
takeProfit = atr * takeProfitMultiplier

// --- Trading Logic ---
longCondition = macdZeroCrossUp and close > trendilo
shortCondition = macdZeroCrossDown and close < trendilo

// --- Execute Long Trades ---
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + takeProfit, stop=close - stopLoss)

// --- Execute Short Trades ---
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - takeProfit, stop=close + stopLoss)

// --- Plot Signals ---
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

// --- Plot Trendilo ---
plot(trendilo, color=color.blue, linewidth=2)