Esta estrategia combina el promedio móvil de Hull y el filtro de Kalman para identificar y rastrear las tendencias de precios, pertenecientes a las estrategias de seguimiento de tendencias.
La estrategia utiliza un promedio móvil Hull de 24 períodos (hma) y un promedio móvil Triple Hull de 24 períodos (hma3) para construir señales comerciales.
Cuando HMA cruza HMA3, se genera una señal de compra. Cuando HMA cruza HMA3, se genera una señal de venta.
El filtro Kalman está desactivado por defecto. Cuando está habilitado, suaviza hma y hma3 para filtrar el ruido excesivo y mejorar la calidad de la señal.
El filtro Kalman elimina el ruido aleatorio de las señales a través de pasos de predicción y corrección. La diferencia entre cada medición y la última predicción se trata como el elemento de corrección para predecir la próxima medición con más precisión. Al repetir la predicción y la corrección, el impacto del ruido se puede reducir gradualmente para suavizar la señal.
Esta estrategia aprovecha el filtro de Kalman para mejorar la estabilidad de las estrategias de promedios móviles filtrando fluctuaciones aleatorias y rastreando tendencias persistentes.
El sistema de medias móviles dobles puede identificar mejor las tendencias duraderas en comparación con la media móvil única.
El promedio móvil de Hull da más peso a los precios recientes a través del cálculo ponderado, lo que lo hace más sensible para capturar los cambios de precios.
El filtro Kalman puede filtrar eficazmente el ruido aleatorio de las señales, reduciendo las falsas señales y mejorando la calidad de la señal.
Los parámetros ajustables como el período y la ganancia del filtro de Kalman permiten que la estrategia se adapte a las diferentes condiciones del mercado.
La adopción de técnicas de período cruzado genera señales más persistentes, evitando ser engañados por las fluctuaciones aleatorias excesivas.
La interfaz visual muestra de forma intuitiva las señales y el estado de la tendencia para facilitar el funcionamiento.
Los promedios móviles dobles son propensos a generar señales erróneas alrededor de los puntos de inflexión de la tendencia, incapaces de capturar las reversiones oportunas.
El retraso de las medias móviles puede hacer que se pierda la oportunidad de inversiones rápidas de precios.
No es adecuado para mercados con fuertes fluctuaciones, debe evitarse su uso durante fases turbulentas.
Los parámetros del filtro de Kalman podrían afectar el rendimiento de la estrategia.
Los períodos más largos tienen una respuesta lenta, mientras que los períodos más cortos son vulnerables al ruido.
Los períodos de retención no fijos, largos o cortos, conducen a un tiempo de inactividad sin posiciones, lo que reduce la eficiencia de la utilización del capital.
Pruebe promedios móviles adaptativos que optimizan dinámicamente los parámetros basados en la volatilidad.
Incorporar métricas de volatilidad para evitar negociar durante los mercados agitados y solo negociar en tendencias obvias.
Configurar un stop loss para limitar las pérdidas y mejorar el control de riesgos.
Optimizar los parámetros del filtro Kalman para equilibrar la sensibilidad de seguimiento y el nivel de filtración de ruido.
Confirme la validez de la señal con otros indicadores como el volumen, las bandas de Bollinger para la persistencia de la tendencia.
Utilice el aprendizaje automático para entrenar parámetros y mejorar la robustez y adaptabilidad de la estrategia.
Esta estrategia identifica eficazmente tendencias duraderas y mejora la calidad de la señal mediante dos Hull MAs y un filtro Kalman. Observe la optimización de parámetros, la adaptabilidad del mercado y el control de riesgos para obtener ganancias constantes. Se pueden lograr mejoras adicionales a través del aprendizaje automático y el análisis cuantitativo. Las mejoras continuas darán forma a un sistema de seguimiento de tendencias robusto y eficiente.
/*backtest start: 2022-10-25 00:00:00 end: 2023-10-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Hull Trend with Kahlman Strategy Backtest", shorttitle="HMA-Kahlman Trend Strat", overlay=true) src = input(hl2, "Price Data") length = input(24, "Lookback") showcross = input(true, "Show cross over/under") gain = input(10000, "Gain") k = input(true, "Use Kahlman") hma(_src, _length) => wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length))) hma3(_src, _length) => p = length/2 wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p) kahlman(x, g) => kf = 0.0 dk = x - nz(kf[1], x) smooth = nz(kf[1],x)+dk*sqrt((g/10000)*2) velo = 0.0 velo := nz(velo[1],0) + ((g/10000)*dk) kf := smooth+velo a = k ? kahlman(hma(src, length), gain) : hma(src, length) b = k ? kahlman(hma3(src, length), gain) : hma3(src, length) c = b > a ? color.lime : color.red crossdn = a > b and a[1] < b[1] crossup = b > a and b[1] < a[1] p1 = plot(a,color=c,linewidth=1,transp=75) p2 = plot(b,color=c,linewidth=1,transp=75) fill(p1,p2,color=c,transp=55) plotshape(showcross and crossdn ? a : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="S", textcolor=color.white, transp=0, offset=-1) plotshape(showcross and crossup ? a : na, location=location.absolute, style=shape.labelup, color=color.green, size=size.tiny, text="B", textcolor=color.white, transp=0, offset=-1) longCondition = crossup if (longCondition) strategy.entry("LE", strategy.long) shortCondition = crossdn if (shortCondition) strategy.entry("SE", strategy.short)