Estrategia de impulso de la HMA

El autor:¿ Qué pasa?, fecha: 2024-01-04 15:34:52
Las etiquetas:

img

II. Resumen de la estrategia

Esta estrategia utiliza el indicador HMA (Hull Moving Average) y el análisis técnico de K-line para realizar juicios de impulso y operaciones de avance en los precios.

III. Principio de la estrategia

  1. Principio del indicador HMA

El indicador HMA fue creado por Alan Hull en 2005 para crear una media móvil sensible y suave.

(1) Calcular el DMA medio de doble suavizado de medio ciclo

(2) Calcular la media de SMA del ciclo completo

(3) Calcular la diferencia DIFF entre DMA y SMA

(4) Calcular la línea media del ciclo SQRT ((período) de DIFF para obtener HMA

  1. Estrategia de negociación

La estrategia utiliza los avances ascendentes y descendentes del indicador HMA como señales, combinados con el avance de la parte de la entidad de la línea K, para generar señales de compra y venta. Al mismo tiempo, establece principios de stop loss y take profit para monitorear la situación de ganancias y pérdidas en tiempo real para proteger las ganancias.

IV. Ventajas de la estrategia

  1. La característica de convergencia del indicador HMA hace que sea extremadamente sensible a los cambios de precios, manteniendo al mismo tiempo la suavidad de la media móvil para evitar señales falsas.

  2. El doble mecanismo de avance mejora la fiabilidad de las señales y evita que se atrapen.

  3. El stop loss dinámico y la protección de ganancias optimizan el riesgo y el rendimiento.

  4. El comercio totalmente automatizado simplifica las operaciones.

V. Riesgos de la estrategia

  1. En violentas fluctuaciones del mercado, la probabilidad de que se produzca un stop loss es mayor.

  2. La alta frecuencia de negociación aumenta los costos de comisión.

  3. La configuración incorrecta de parámetros puede generar muchas señales falsas.

Soluciones

  1. Optimizar las condiciones de stop loss y take profit y establecer retracements razonables.

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

  3. Prueba y optimización del ciclo HMA y las condiciones de avance para determinar los parámetros óptimos.

VI. Direcciones de optimización de la estrategia

  1. Incorporar indicadores de juicio de tendencia para evitar el comercio de contratrends.

  2. Aumentar el juicio automático sobre el cambio de fuente de datos para adaptarse a más entornos de mercado.

  3. Aumentar los algoritmos de aprendizaje automático para lograr la optimización automática de parámetros.

  4. Despliegue en el servidor para lograr una verificación de operaciones en vivo las 24 horas.

VII. Resumen

La estrategia de ruptura de impulso de HMA utiliza las ventajas únicas de la media móvil de Hull para capturar con precisión el impulso del mercado. El mecanismo de filtración de doble ruptura mejora la calidad de la señal, y el stop de ganancia y stop de pérdida dinámicos protegen los ingresos.


/*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)

Más.