Estrategia de trading cuantitativo basada en la media móvil de Hull modificada e Ichimoku Kinko Hyo

HMA IKHS WMA
Fecha de creación: 2024-04-28 13:39:00 Última modificación: 2024-04-28 13:39:00
Copiar: 11 Número de Visitas: 564
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo basada en la media móvil de Hull modificada e Ichimoku Kinko Hyo

Descripción general

La estrategia combina dos indicadores técnicos, el Hull Moving Average modificado (HMA) y el Equilibrio Primario (Ichimoku Kinko Hyo), con el objetivo de capturar las tendencias a medio y largo plazo del mercado. La idea principal de la estrategia es utilizar la señal de cruce de HMA con la línea de referencia en el Equilibrio Primario (Kijun Sen), mientras que combina la nube de Equilibrio Primario (Kumo) como condición de filtración para juzgar la dirección de la tendencia del mercado y negociar.

Principio de estrategia

  1. Cálculo de la media móvil modificada de Hull (HMA)
    • Calcula el WMA (media móvil ponderada) y realiza un doble suavizado para obtener el HMA corregido
  2. Los indicadores para calcular el equilibrio a primera vista
    • Calcula la línea de giro ((Tenkan Sen), la línea de referencia ((Kijun Sen), la línea de avance ((Senkou Span A) y la línea de avance ((Senkou Span B)
  3. Generación de señales de negociación
    • Cuando el HMA cruza la línea de referencia y el precio de cierre está por encima de la nube, se produce una señal de multitarea
    • Cuando la HMA cruza la línea de referencia por debajo y el precio de cierre está por debajo de la nube, se produce una señal de corto plazo
  4. Ejecución de la transacción
    • Las operaciones de compraventa se realizan de acuerdo con las señales de venta o ventaja.
  5. Salida de la operación
    • Cuando HMA cruza la línea de referencia en la dirección opuesta, salga de la posición actual

Ventajas estratégicas

  1. La combinación de HMA y equilibrio a primera vista, dos indicadores de seguimiento de tendencias efectivos, permite capturar mejor las tendencias del mercado
  2. El uso de la nube de equilibrio a primera vista como condición de filtración puede reducir eficazmente las señales falsas y aumentar la probabilidad de éxito de las operaciones
  3. El HMA corregido tiene una velocidad de respuesta más rápida y una menor latencia en comparación con los promedios móviles tradicionales, lo que permite reflejar los cambios en el mercado a tiempo
  4. Estrategia lógica clara, fácil de entender y de implementar, para diversos mercados y períodos de tiempo

Riesgo estratégico

  1. Esta estrategia puede generar más señales falsas en momentos de fluctuaciones o tendencias poco claras en el mercado, lo que lleva a una mayor frecuencia de operaciones y pérdidas de capital.
  2. La configuración de los parámetros de la estrategia tiene un gran impacto en los resultados de las transacciones, y diferentes combinaciones de parámetros pueden causar diferentes resultados.
  3. La estrategia no tiene en cuenta los eventos inesperados en el mercado y el comportamiento irracional, que puede tener un mayor riesgo en condiciones extremas de mercado

Dirección de optimización de la estrategia

  1. Introducción de otros indicadores técnicos o de sentimiento de mercado para mejorar la fiabilidad y estabilidad de la señal
  2. Optimizar los parámetros de la estrategia, como encontrar la combinación óptima de parámetros a través de métodos como el aprendizaje automático o los algoritmos genéticos
  3. Considere la inclusión de módulos de gestión de riesgos, como el establecimiento de paradas de pérdidas, gestión de posiciones, etc., para controlar la apertura de riesgo de la estrategia
  4. Adaptación y optimización de la estrategia de acuerdo con las características de los diferentes mercados y períodos de tiempo

Resumir

La estrategia, combinada con el Hull Moving Average modificado y el equilibrio a primera vista, construye un sistema de negociación de seguimiento de tendencias relativamente sólido. La lógica de la estrategia es clara, fácil de implementar, pero también tiene ciertas ventajas. Sin embargo, el rendimiento de la estrategia sigue siendo afectado por las condiciones del mercado y la configuración de los parámetros, por lo que se necesita una mayor optimización y mejora.

Código Fuente de la Estrategia
/*backtest
start: 2024-04-20 00:00:00
end: 2024-04-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hull MA_X + Ichimoku Kinko Hyo Strategy", shorttitle="HMX+IKHS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)

// Hull Moving Average Parameters
keh = input(12, title="Double HullMA")
n2ma = 2 * wma(close, round(keh/2)) - wma(close, keh)
sqn = round(sqrt(keh))
hullMA = wma(n2ma, sqn)

// Ichimoku Kinko Hyo Parameters
tenkanSenPeriods = input(9, title="Tenkan Sen Periods")
kijunSenPeriods = input(26, title="Kijun Sen Periods")
senkouSpanBPeriods = input(52, title="Senkou Span B Periods")
displacement = input(26, title="Displacement")

// Ichimoku Calculations
highestHigh = highest(high, max(tenkanSenPeriods, kijunSenPeriods))
lowestLow = lowest(low, max(tenkanSenPeriods, kijunSenPeriods))
tenkanSen = (highest(high, tenkanSenPeriods) + lowest(low, tenkanSenPeriods)) / 2
kijunSen = (highestHigh + lowestLow) / 2
senkouSpanA = ((tenkanSen + kijunSen) / 2)
senkouSpanB = (highest(high, senkouSpanBPeriods) + lowest(low, senkouSpanBPeriods)) / 2

// Plot Ichimoku
p1 = plot(tenkanSen, color=color.blue, title="Tenkan Sen")
p2 = plot(kijunSen, color=color.red, title="Kijun Sen")
p3 = plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement)
p4 = plot(senkouSpanB, color=color.orange, title="Senkou Span B", offset=displacement)
fill(p3, p4, color=color.gray, title="Kumo Shadow")

// Trading Logic
longCondition = crossover(hullMA, kijunSen) and close > senkouSpanA[displacement] and close > senkouSpanB[displacement]
shortCondition = crossunder(hullMA, kijunSen) and close < senkouSpanA[displacement] and close < senkouSpanB[displacement]

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Exit Logic - Exit if HullMA crosses KijunSen in the opposite direction
exitLongCondition = crossunder(hullMA, kijunSen)
exitShortCondition = crossover(hullMA, kijunSen)

if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")