Esta estrategia se basa en el indicador de Hull Moving Average inventado por Alan Hull, perteneciente a las estrategias de seguimiento de tendencias.
Calcular las MAs de Hull a corto y largo plazo.
Cuando los Hull MAs de corto plazo se cruzan, determine la inversión de tendencia.
Añadir la ruptura del precio a través de la condición de Hull MA para garantizar una ruptura exitosa.
Añadir un filtro de tasa de cambio de precios para evitar una entrada de ruptura no deseada.
Establezca el stop loss y tome ganancias para controlar el riesgo.
En comparación con las medias móviles simples, las ventajas de esta estrategia incluyen:
Hull MA responde a los cambios de precios más rápido, capaz de capturar las tendencias en el momento oportuno.
La estructura MA de doble casco puede determinar las tendencias tanto en plazos largos como en plazos cortos.
Los filtros de ruptura de precios y tasa de cambio ayudan a evitar rupturas falsas.
Las operaciones de stop loss y take profit dinámicas bloquean los beneficios y controlan el riesgo.
Riesgos de esta estrategia:
La configuración incorrecta de parámetros puede perder los giros de tendencia del precio.
Un juicio de tendencia global incorrecto puede causar operaciones contra tendencia.
El límite de pérdida demasiado amplio puede dar lugar a grandes pérdidas.
El comercio demasiado frecuente aumenta los costes de transacción y los riesgos de deslizamiento.
Se puede optimizar en los siguientes aspectos:
Optimizar los períodos de Hull MA para equilibrar la sensibilidad y la suavidad.
Optimizar los parámetros de entrada y salida para encontrar los valores óptimos.
Prueba la robustez de los parámetros en diferentes instrumentos para mejorar la adaptabilidad.
Incorporar el volumen para evitar los riesgos de divergencia.
Añadir condiciones para mejorar la estabilidad.
En general, esta estrategia aprovecha la capacidad de respuesta de Hull MA para seguir las tendencias a tiempo y tiene una fuerte rentabilidad bajo control de riesgos.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-12 22:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //SeaSide420 strategy("SS420FX", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) q=input(title="HullMA Short",defval=14) z=input(title="HullMA Long",defval=14) dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001) SL = input(defval=-50000.00, title="Stop Loss in $", type=float, step=1) TP = input(defval=100000.00, title="Target Point in $", type=float, step=1) ot=1 n2ma=2*wma(close,round(q/2)) nma=wma(close,q) diff=n2ma-nma sqn=round(sqrt(q)) n2ma1=2*wma(close[1],round(q/2)) nma1=wma(close[1], q) diff1=n2ma1-nma1 sqn1=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) z2ma=2*wma(close[11],round(z/2)) zma=wma(close[11],z) ziff=n2ma-nma zqn=round(sqrt(z)) z2ma1=2*wma(close[12],round(z/2)) zma1=wma(close[12], z) ziff1=n2ma1-nma1 zqn1=round(sqrt(z)) z1=wma(diff,sqn) z2=wma(diff1,sqn) z1e=z1>z2?green:black z2e=z1>z2?black:red z3e=z1>z2?green:red n1e=plot(z1, title="HMA1", color=z1e, linewidth=2, offset=2) n2e=plot(z2, title="HMA2", color=z2e, linewidth=2, offset=2) fill(n1e, n2e, color=z3e, transp=80) confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1]) closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP if (closelong) strategy.close("Long") closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP if (closeshort) strategy.close("Short") longCondition = n1>n2 and z1>z2 and strategy.opentrades<ot and confidence>dt and close>n1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and z1<z2 and strategy.opentrades<ot and confidence<dt and close<n1 if (shortCondition) strategy.entry("Short",strategy.short)