Estrategia de ruptura del indicador de impulso HMA


Fecha de creación: 2024-01-04 15:34:52 Última modificación: 2024-01-04 15:34:52
Copiar: 0 Número de Visitas: 805
1
Seguir
1621
Seguidores

Estrategia de ruptura del indicador de impulso HMA

La estrategia es muy simple.

Esta estrategia utiliza el indicador HMA (Hull Moving Average) y el análisis técnico de la línea K para determinar la dinámica de los precios y las operaciones de ruptura.

Tres, las estrategias.

  1. Principio del indicador HMA

El HMA fue creado por Alan Hull en 2005 con el objetivo de crear una media móvil sensible y suave. Su método de cálculo es:

(1) Calcula el promedio de doble suavizado (DMA) de medio ciclo

(2) Calcular el promedio SMA de todo el ciclo

(3) Calcular el diferencial entre DMA y SMA

(4) Calcule el promedio de los períodos SQRT (periodo) de DIFF, obteniendo HMA

  1. Estrategias de negociación

La estrategia utiliza las rupturas hacia arriba y hacia abajo del indicador HMA como señales, combinadas con las rupturas de la parte de la entidad de la línea K, para generar señales de compra y venta. Al mismo tiempo, establece el principio de stop loss y stop loss, supervisa las pérdidas y ganancias en tiempo real y protege los beneficios.

Cuatro, ventajas estratégicas

  1. La característica de convergencia del indicador HMA lo hace extremadamente sensible a los cambios de precios, mientras que mantiene la suavidad de la media y evita falsas señales.

  2. El mecanismo de doble penetración mejora la fiabilidad de la señal y evita el bloqueo.

  3. La protección dinámica de pérdidas y ganancias permite un control óptimo de riesgos y ganancias.

  4. Las transacciones son totalmente automáticas y simplificadas.

Cinco, el riesgo estratégico.

  1. Cuando el mercado fluctúa fuertemente, hay una mayor probabilidad de que el stop loss sea alcanzado.

  2. La frecuencia de las transacciones es mayor y el costo de las comisiones es mayor.

  3. La configuración incorrecta de los parámetros puede generar una gran cantidad de falsas señales.

Cómo solucionarlo

  1. Optimización de las condiciones de parada de pérdidas y configuración de la retirada razonable.

  2. Ajustar la frecuencia de las transacciones para reducir el impacto de las comisiones.

  3. Optimización de las pruebas para los ciclos de HMA y las condiciones de ruptura para determinar los parámetros óptimos.

Seis, estrategias para mejorar.

  1. La combinación de indicadores de tendencias evita el comercio en contra.

  2. Aumentar el juicio automático para cambiar de fuente de datos y adaptarse a un entorno de mercado más amplio.

  3. Se añaden algoritmos de aprendizaje automático para optimizar los parámetros.

  4. Se ha añadido la implementación en servidores para la validación en la red las 24 horas.

VII. Conclusión

La estrategia de ruptura del indicador de energía dinámica de HMA utiliza las ventajas únicas de la media móvil de Hull para capturar con precisión la dinámica del mercado. El mecanismo de filtración de doble ruptura mejora la calidad de la señal y garantiza la eficacia de la parada de pérdidas dinámicas.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//SeaSide420
strategy("Hull Moving Average and Daily Candle Crossover", shorttitle="Hull&D", 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)
// settings----------------------
q=input(title="HullMA",defval=5)
SL = input(defval=-10000.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=500.00, title="Target Point in $", type=float, step=1)
price=input(ohlc4,title="Price data")
ot=1
p=price[1]
// Daily candle crossover---------
dt = 0.0010
Daily=(p-p[1])/p[1]
//--------------------------------
// Hull MA's----------------------
n2ma=2*wma(p,round(q/2))
nma=wma(p,q)
diff=n2ma-nma
sqn=round(sqrt(q))
n2ma1=2*wma(p[1],round(q/2))
nma1=wma(p[1], q)
diff1=n2ma1-nma1
sqn1=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
//---------------------------------
// Plotting------------------------
z1e=n1>n2?green:black
z2e=n1>n2?black:red
z3e=n1>n2?green:red
n1e=plot(n1, title="HMA1", color=z1e, linewidth=2, offset=2)
n2e=plot(n2, title="HMA2", color=z2e, linewidth=2, offset=2)
fill(n1e, n2e, color=z3e, transp=80)
// Order controls-------------------
closelong = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] and strategy.opentrades<ot and Daily>dt and close>n1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] and strategy.opentrades<ot and Daily<dt and close<n1 
if (shortCondition)
    strategy.entry("Short",strategy.short)