Estrategia de tendencia de doble media móvil HullMA

El autor:¿ Qué pasa?, Fecha: 2024-02-26 11:21:45
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

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.

Análisis de ventajas

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.

Análisis de riesgos

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.

Direcciones de optimización

La estrategia de tendencia de doble media móvil HullMA Crossover se puede mejorar en los siguientes aspectos:

  1. Optimizar los parámetros de la media móvil para encontrar la mejor combinación de parámetros

  2. Añadir filtros como volumen o volatilidad para eliminar las fallas

  3. Incorporar otros indicadores como validación complementaria para mejorar la calidad de la señal

  4. Optimización dinámica de los parámetros de la media móvil

Resumen de las actividades

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)

Más.