La estrategia de cruce de medias móviles multi-periódicas de Hull es una estrategia de negociación cuantitativa basada en medias móviles de Hull (HMA). La estrategia utiliza indicadores de HMA de diferentes períodos de tiempo para identificar tendencias en el mercado y generar señales de negociación. El núcleo de la estrategia es determinar los momentos de entrada y salida observando los cruces de HMA a corto y medio plazo, mientras que el HMA a largo plazo se utiliza como referencia para la tendencia general.
El principio central de esta estrategia es aprovechar las características de respuesta rápida de la media móvil de Hull (HMA) y las ventajas del análisis de múltiples períodos. Se realiza de la siguiente manera:
Calcula el HMA de tres períodos diferentes:
Se generan señales de transacción:
HMA 3 es un indicador de tendencia a largo plazo, que puede usarse para determinar la tendencia general del mercado, aunque no participa directamente en la generación de señales.
La estrategia utiliza una proporción fija de cuentas de interés (<10%) como el monto de cada transacción.
La función PlotShape marca las señales de compra y venta en el gráfico para mejorar la visualización.
El sistema de alertas para posiciones largas y cortas permite monitorear las oportunidades de mercado en tiempo real.
Reducción de la latencia: La media móvil de Hull tiene una menor latencia en sí misma y responde a los cambios de precios más rápidamente que la media móvil tradicional.
Análisis multi-periódico: Al combinar HMA de diferentes períodos de tiempo, la estrategia puede capturar tendencias a corto, medio y largo plazo al mismo tiempo, mejorando la precisión y la estabilidad de las operaciones.
Filtración de ruido: El uso de HMA con períodos más largos (75 y 125 minutos) puede filtrar eficazmente el ruido del mercado a corto plazo y reducir las falsas señales.
Flexibilidad: La estrategia permite a los usuarios personalizar la longitud y la fuente de datos de cada HMA para adaptarse a diferentes entornos de mercado y estilos de negociación.
Gestión de riesgos: El uso de un porcentaje fijo de los derechos de interés de la cuenta para operar ayuda a controlar el riesgo.
Visualización: ayuda a los traders a entender mejor y validar la lógica de la estrategia mediante la visualización de las señales de compra y venta en el gráfico.
Alertas en tiempo real: Se ha configurado una alerta de señales de comercio para que los comerciantes puedan aprovechar las oportunidades de mercado a tiempo.
Riesgo de cambio de tendencia: en mercados con una fuerte tendencia, las estrategias pueden generar señales con frecuencia, lo que lleva a una sobrecomercialización y costos innecesarios.
Riesgo de mercado horizontal: en mercados sin una tendencia evidente, los cruces HMA pueden generar una gran cantidad de falsas señales que afectan el rendimiento de la estrategia.
Sensibilidad de parámetros: el rendimiento de la estrategia depende en gran medida de la duración y el período de tiempo de la HMA elegida, y diferentes combinaciones de parámetros pueden dar lugar a resultados muy diferentes.
Puntos de deslizamiento y costos de transacción: Las transacciones frecuentes pueden generar puntos de deslizamiento y costos de transacción más altos, especialmente en mercados con poca liquidez.
Dependencia de la tecnología: La estrategia depende completamente de los indicadores técnicos, ignorando los factores fundamentales, que pueden funcionar mal cuando ocurren noticias o eventos importantes.
Riesgo de exceso de ajuste: Si se optimizan excesivamente los parámetros en los datos históricos, puede ocasionar que la estrategia no funcione bien en las operaciones en vivo.
Introducción de filtros de tendencia: se puede considerar el uso de HMA 3 como filtro de tendencia y abrir posiciones solo en la dirección de la tendencia a largo plazo para reducir el comercio en contra.
Parámetros de ajuste dinámico: Implementa un mecanismo de adaptación que ajusta la duración y el ciclo de tiempo de la HMA según la dinámica de la volatilidad del mercado para adaptarse a diferentes entornos de mercado.
Aumentar los mecanismos de stop-loss y stop-loss: introducir reglas de stop-loss y stop-loss basadas en ATR o porcentajes fijos para controlar mejor el riesgo y bloquear las ganancias.
Optimización de la gestión de posiciones: Implementar estrategias de gestión de posiciones más complejas, como el ajuste dinámico del tamaño de las posiciones basado en la volatilidad o en la pérdida de la cuenta.
Integración con otros indicadores técnicos: Combinación con otros indicadores técnicos como el RSI, MACD y otros para construir condiciones de entrada y salida más completas.
Retroalimentación y optimización: Realizar una amplia retroalimentación en diferentes condiciones de mercado y marcos de tiempo para encontrar la combinación óptima de parámetros.
Considerar los factores fundamentales: Introducir la consideración de la publicación de datos económicos importantes o eventos corporativos para ajustar la acción estratégica en un período determinado.
Realizar operaciones de posiciones parciales: Permite que la estrategia ejecute operaciones de posiciones parciales según la intensidad de la señal, en lugar de entrar y salir de la posición completa cada vez.
La estrategia de cruce de medias móviles de Hull de varios períodos es una estrategia de negociación cuantitativa que combina las características de respuesta rápida de las medias móviles de Hull y las ventajas del análisis de varios períodos. Observando la relación cruzada entre los HMA de diferentes períodos de tiempo, la estrategia es capaz de identificar de manera efectiva las tendencias del mercado y generar señales de negociación. Su ventaja reside en reducir el atraso de las medias móviles tradicionales y aumentar la fiabilidad de la señal a través del análisis de varios períodos.
Para mejorar aún más la solidez y la rentabilidad de la estrategia, se puede considerar la introducción de filtros de tendencia, el ajuste de los parámetros dinámicos, la optimización de la gestión de posiciones, etc. Al mismo tiempo, en combinación con otros indicadores técnicos y factores fundamentales, se puede construir un sistema de negociación más completo y más adaptado a los diferentes entornos del mercado.
En general, esta estrategia ofrece a los comerciantes un marco con potencial para convertirse en una poderosa herramienta de trading cuantitativa, mediante la optimización y perfección continuas. Sin embargo, en la aplicación real, los comerciantes aún deben evaluar cuidadosamente el riesgo del mercado y hacer los ajustes correspondientes en función de la tolerancia al riesgo personal y los objetivos comerciales.
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='Hull v2 Strategy', shorttitle='V2 HMA', overlay=true)
// Hull MA 1
length_1 = input.int(20, minval=1, title="Length 1")
src_1 = input(close, title='Source 1')
timeframe_1 = input.timeframe('25')
hullma_1 = request.security(syminfo.tickerid, timeframe_1, ta.wma(2 * ta.wma(src_1, length_1 / 2) - ta.wma(src_1, length_1), math.round(math.sqrt(length_1))))
plot(hullma_1, title='Hull MA 1', color=color.blue, linewidth=2)
// Hull MA 2
length_2 = input.int(20, minval=1, title="Length 2")
src_2 = input(close, title='Source 2')
timeframe_2 = input.timeframe('75')
hullma_2 = request.security(syminfo.tickerid, timeframe_2, ta.wma(2 * ta.wma(src_2, length_2 / 2) - ta.wma(src_2, length_2), math.round(math.sqrt(length_2))))
plot(hullma_2, title='Hull MA 2', color=color.red, linewidth=2)
// Hull MA 3
length_3 = input.int(20, minval=1, title="Length 3")
src_3 = input(close, title='Source 3')
timeframe_3 = input.timeframe('125')
hullma_3 = request.security(syminfo.tickerid, timeframe_3, ta.wma(2 * ta.wma(src_3, length_3 / 2) - ta.wma(src_3, length_3), math.round(math.sqrt(length_3))))
plot(hullma_3, title='Hull MA 3', color=color.green, linewidth=2)
// Cross Strategy
longCondition = ta.crossover(hullma_1, hullma_2)
shortCondition = ta.crossunder(hullma_1, hullma_2)
// Entry and Exit
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Plot Buy/Sell Signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title='Buy Signal', text='BUY')
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title='Sell Signal', text='SELL')
// Alerts
alertcondition(longCondition, title='Long Alert', message='Long Condition Met')
alertcondition(shortCondition, title='Short Alert', message='Short Condition Met')