La estrategia de tendencia de cruce de media móvil HullMA es una estrategia de seguimiento de tendencias basada en el cruce de medias móviles duales. Construye un sistema de media móvil dual utilizando líneas de media móvil ponderada (WMA) y genera señales comerciales cuando se cruzan.
La estrategia de tendencia de cruce de media móvil HullMA emplea tres líneas WMA con diferentes períodos, incluyendo wma1, wma2 y wma3.
Además, la estrategia utiliza el promedio móvil de Hull para fortalecer la validación de la señal. Específicamente, calcula la diferencia entre el doble de WMA de 2 períodos (n2ma) y el doble de WMA de n períodos (nma). Solo cuando la diferencia aumente, las señales alcistas se confirmarán válidas. Solo cuando la diferencia baje, las señales bajistas se confirmarán válidas.
La estrategia también incorpora la validación de precios. Sólo cuando el precio es más alto que el día anterior, las señales alcistas se confirmarán válidas para órdenes largas. Solo cuando el precio sea más bajo que el día anterior, las señales bajistas se confirmarán válidas para órdenes cortas.
La estrategia de tendencia de cruce de media móvil HullMA combina cruce de media móvil doble y validación de precios, lo que le permite filtrar eficazmente las señales falsas. Esta es su mayor fortaleza. Además, con tres líneas de media móvil de varios períodos, la estrategia puede capturar tendencias de diferentes niveles desde el principio. Su mecanismo de stop loss también es bastante estable y confiable.
Como estrategia de seguimiento de tendencias, la estrategia de tendencia de cruce de media móvil HullMA puede generar relativamente más operaciones y costos de deslizamiento durante los mercados de rango. Además, los sistemas de cruce de media móvil dual tienden a ser demasiado sensibles y pueden emitir señales incorrectas durante las tendencias laterales. Es aconsejable ajustar los parámetros de media móvil o imponer filtros adicionales en consecuencia.
La estrategia de tendencia de doble media móvil HullMA Crossover se puede mejorar en los siguientes aspectos:
Optimizar los parámetros de la media móvil para encontrar la mejor combinación de parámetros
Añadir filtros como volumen o volatilidad para eliminar las fallas
Incorporar otros indicadores como validación complementaria para mejorar la calidad de la señal
Optimización dinámica de los parámetros de la media móvil
En resumen, la estrategia de tendencia de cruce de media móvil HullMA es una estrategia estable y confiable de seguimiento de tendencias. Produce señales de alta calidad mediante la combinación de doble cruce de media móvil y validación de precios. A través de la puesta a punto de parámetros y la adición de filtros, puede reducir aún más las señales incorrectas y lograr un mejor rendimiento. Es adecuado para detectar tendencias a medio y largo plazo y una opción sólida para el comercio cuantitativo.
/*backtest start: 2023-02-25 00:00:00 end: 2024-02-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("ZendicatoR", overlay=true) dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001) keh=input(title="Double HullMA Cross",defval=7, minval=1) che1=input(title="MA 1",defval=34,minval=1) che2=input(title="MA 2",defval=144,minval=1) che3=input(title="MA 3",defval=377,minval=1) amnt=input(title="TP ($)",defval=4200,minval=1) wma1=wma(close,che1) wma2=wma(close,che2) wma3=wma(close,che3) tms=10000000000000 A=request.security(syminfo.tickerid, 'D', close)*tms B=request.security(syminfo.tickerid, 'D', close[1])*tms C=A>B?green:red D=wma2>wma3?green:red plot(wma1,style=line,color=C,linewidth=4) p1=plot(wma2,style=line,color=D) p2=plot(wma3,style=line,color=D) fill(p1, p2, color=D, transp=75) n2ma=2*wma(close,round(keh/2)) nma=wma(close,keh) diff=n2ma-nma,sqn=round(sqrt(keh)) n2ma1=2*wma(close[2],round(keh/2)) nma1=wma(close[2],keh) diff1=n2ma1-nma1,sqn1=round(sqrt(keh)) n1=wma(diff,sqn)*tms n2=wma(diff1,sqn)*tms closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt if (closelong) strategy.close("Long") closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt if (closeshort) strategy.close("Short") longCondition = A*tms>B*tms and n1*tms>n2*tms if (longCondition) strategy.entry("Long",strategy.long) shortCondition = A*tms<B*tms and n1*tms<n2*tms if (shortCondition) strategy.entry("Short",strategy.short)