En la carga de los recursos... Cargando...

Estrategia de negociación cuantitativa basada en la media móvil modificada del casco y Ichimoku Kinko Hyo

El autor:¿ Qué pasa?, Fecha: 2024-04-28 13:39:00
Las etiquetas:HMAEl IKHSLa WMA

img

Resumen general

Esta estrategia combina dos indicadores técnicos: el Hull Moving Average (HMA) modificado e Ichimoku Kinko Hyo (IKHS), con el objetivo de capturar las tendencias del mercado a medio y largo plazo.

Principios de estrategia

  1. Calcular la media móvil modificada del casco (HMA)
    • Calcular la media móvil ponderada (WMA) y aplicar el doble suavizado para obtener la HMA modificada
  2. Calcula los diferentes indicadores de Ichimoku Kinko Hyo
    • Calcular el Tenkan Sen (línea de conversión), el Kijun Sen (línea de base), el Senkou Span A (espans A) y el Senkou Span B (espans B)
  3. Generar señales comerciales
    • Cuando el HMA cruza por encima del Kijun Sen y el precio de cierre está por encima del Kumo, genera una señal larga
    • Cuando el HMA cruza por debajo del Kijun Sen y el precio de cierre está por debajo del Kumo, genera una señal corta
  4. Ejecutar operaciones
    • Ejecutar las operaciones comerciales correspondientes basadas en las señales largas o cortas
  5. Las operaciones de salida
    • Cuando el HMA cruce el Kijun Sen en la dirección opuesta, salga de la posición actual.

Ventajas estratégicas

  1. Combina dos indicadores efectivos de seguimiento de tendencias, HMA e IKHS, para captar mejor las tendencias del mercado
  2. Utiliza el Kumo de IKHS como una condición de filtrado para reducir eficazmente las señales falsas y mejorar la tasa de ganancia de las operaciones
  3. El HMA modificado tiene una velocidad de respuesta más rápida y un retraso menor en comparación con las medias móviles tradicionales, lo que permite reflejar oportunamente los cambios del mercado
  4. La lógica de la estrategia es clara, fácil de entender e implementar, adecuada para diversos mercados y plazos

Riesgos estratégicos

  1. Durante las fluctuaciones del mercado o las tendencias poco claras, la estrategia puede generar más señales falsas, lo que conduce a operaciones frecuentes y pérdidas de capital.
  2. Los parámetros de la estrategia tienen un impacto significativo en los resultados de las operaciones y diferentes combinaciones de parámetros pueden dar lugar a diferentes resultados.
  3. La estrategia no tiene en cuenta las emergencias del mercado y los comportamientos irracionales y puede enfrentar mayores riesgos en condiciones extremas de mercado

Direcciones para la optimización de la estrategia

  1. Introducir otros indicadores técnicos o indicadores del sentimiento del mercado para mejorar la fiabilidad y la estabilidad de las señales
  2. Optimizar los parámetros de la estrategia, como el aprendizaje automático o algoritmos genéticos para encontrar la combinación óptima de parámetros
  3. Considerar la posibilidad de añadir un módulo de gestión de riesgos, como establecer los niveles de stop loss y take profit, dimensionar las posiciones, etc., para controlar la exposición al riesgo de la estrategia.
  4. Basándose en las características de los diferentes mercados y plazos, realizar ajustes y optimizaciones específicas de la estrategia

Resumen de las actividades

Al combinar el Hull Moving Average modificado y Ichimoku Kinko Hyo, esta estrategia construye un sistema de negociación relativamente estable siguiendo tendencias. La lógica de la estrategia es clara y fácil de implementar, al tiempo que también tiene ciertas ventajas. Sin embargo, el rendimiento de la estrategia todavía se ve afectado por las condiciones del mercado y la configuración de parámetros, lo que requiere una mayor optimización y mejora. En las aplicaciones prácticas, es necesario hacer ajustes y gestión apropiados basados en características específicas del mercado y preferencias de riesgo para obtener mejores resultados comerciales.


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


Relacionados

Más.