En la carga de los recursos... Cargando...

Estrategia cuantitativa de doble casco de media móvil cruzada

El autor:¿ Qué pasa?, fecha: 2024-11-29 16:53:05
Las etiquetas:HMA- ¿Qué es?La WMA

img

Resumen general

Esta estrategia se basa en las señales de cruce de Hull Moving Average (HMA). Genera señales de negociación cuando dos líneas HMA con períodos diferentes se cruzan entre sí. HMA es un indicador avanzado de promedio móvil que reduce el retraso a través de una combinación especial de promedios móviles ponderados (WMA), proporcionando señales de tendencia de mercado más rápidas y más suaves.

Principio de la estrategia

El núcleo de la estrategia radica en capturar los puntos de inversión de tendencia del mercado utilizando cruces de HMA de diferentes períodos. El cálculo de HMA implica tres pasos: primero calcular un WMA de medio período, luego calcular un WMA de período completo y, finalmente, calcular otro WMA con un período igual a la raíz cuadrada del período original utilizando una combinación especial de los dos primeros WMA. Las señales de compra se generan cuando el HMA rápido (períodos predeterminados 9) cruza por encima del HMA lento (períodos predeterminados 16) y las señales de venta cuando el HMA rápido cruza por debajo del HMA lento.

Ventajas estratégicas

  1. Respuesta rápida a la señal: HMA reduce significativamente el retraso de las medias móviles tradicionales a través de su método especial de cálculo, capturando los cambios de tendencia del mercado más rápidamente.
  2. Filtración del ruido: la confirmación del cruce entre dos medias móviles filtra efectivamente el ruido del mercado, reduciendo las señales falsas.
  3. Parámetros flexibles: la estrategia permite ajustar los períodos de línea rápida y lenta para adaptarse a los diferentes entornos del mercado.
  4. Visualización clara: La estrategia muestra claramente tanto las medias móviles como las señales comerciales en el gráfico para un fácil análisis y optimización.

Riesgos estratégicos

  1. Riesgo de mercado alterado: los cruces frecuentes en los mercados laterales pueden dar lugar a una sobreventa y a pérdidas consecutivas.
  2. Riesgo de retraso: aunque el HMA tiene un retraso menor que los promedios móviles tradicionales, todavía existe algún retraso, que potencialmente carece de puntos de entrada óptimos.
  3. Sensibilidad de parámetros: las diferentes combinaciones de parámetros pueden dar lugar a resultados comerciales significativamente diferentes, lo que requiere una optimización cuidadosa.
  4. Riesgo de ruptura falsa: el mercado puede presentar rupturas falsas, lo que conduce a señales comerciales incorrectas.

Direcciones para la optimización de la estrategia

  1. Introducir filtros de tendencia: añadir indicadores ADX o de fuerza de tendencia para operar solo en tendencias claras.
  2. Optimizar el mecanismo de detención de pérdidas: diseñar pérdidas de detención dinámicas basadas en ATR o volatilidad.
  3. Añadir condiciones de confirmación de comercio: Incorporar indicadores de volumen e impulso como señales de confirmación auxiliares.
  4. Adaptación de parámetros: Desarrollar mecanismos dinámicos de ajuste de parámetros basados en la volatilidad del mercado.
  5. Optimización de la gestión de riesgos: añadir módulos de tamaño de posición y gestión de dinero.

Resumen de las actividades

Esta es una estrategia de negociación cuantitativa basada en cruces HMA, que proporciona señales de negociación más oportunas al reducir el retraso de las medias móviles tradicionales.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Hull Moving Average Crossover", overlay=true)


fastLength = input.int(9, "Fast HMA Length", minval=1)
slowLength = input.int(16, "Slow HMA Length", minval=1)


hma(src, length) =>
    wma1 = ta.wma(src, length / 2)
    wma2 = ta.wma(src, length)
    ta.wma(2 * wma1 - wma2, math.floor(math.sqrt(length)))


fastHMA = hma(close, fastLength)
slowHMA = hma(close, slowLength)


plot(fastHMA, color=color.blue, title="Fast HMA")
plot(slowHMA, color=color.red, title="Slow HMA")


longCondition = ta.crossover(fastHMA, slowHMA)
shortCondition = ta.crossunder(fastHMA, slowHMA)


if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)


plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

Relacionados

Más.