Estrategia inversa de Heikin-Ashi

El autor:¿ Qué pasa?, Fecha: 2023-11-16 15:44:14
Las etiquetas:

img

Resumen general

Esta estrategia utiliza principalmente velas Heikin-Ashi mejoradas para identificar puntos de reversión en el precio y detectar cambios significativos en la tendencia. Pertenece a las estrategias comerciales a corto plazo. La estrategia calcula los precios de apertura, alto, bajo y cerrado de las velas utilizando HA, y determina el color final basado en la relación de precios. Las velas verdes representan precios en aumento y las velas rojas representan precios en caída. La estrategia utiliza el cambio de color de la vela HA como señales comerciales para ir corto en el cambio verde a rojo y ir largo en el rojo a cambio verde.

Estrategia lógica

La lógica central de la estrategia es detectar el cambio de color en las velas HA para determinar la reversión del precio.

En primer lugar, obtenga los precios de apertura, alto, bajo y cierre a partir de datos de HA o datos originales basados en parámetros de entrada.

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close

haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open  

haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high

haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

A continuación, calcular la corriente HA abierta y cerrada de acuerdo con las fórmulas.

haclose = (haOpen + haHigh + haLow + haClose) / 4  

haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2

Más adelante obtener los precios más altos y más bajos de HA.

hahigh = max(haHigh, max(haopen, haclose))

halow = min(haLow, min(haopen, haclose))  

Determinar el color de las velas HA en función de la relación abierta/cercana.

hacolor = haclose > haopen ? color.green : color.red

Identificar las señales de reversión basadas en el cambio de color HA entre barras.

turnGreen = haclose > haopen and haclose[1] <= haopen[1]  

turnRed = haclose <= haopen and haclose[1] > haopen[1] 

Abre posiciones largas/cortas cuando se activen las señales.

strategy.entry("long", 1, when=turnGreen)
  
strategy.entry("short", 0, when=turnRed) 

Cierre posiciones en señales opuestas.

strategy.close("long", when=turnRed)

Mediante la detección de cambios en el color de la vela HA, la estrategia captura los puntos de inversión de precios para el comercio de inversión.

Ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. El uso de velas HA mejoradas filtra el ruido e identifica las reversiones con mayor claridad.

  2. Lógica simple basada en el cambio de color HA, fácil de entender e implementar.

  3. El comercio de inversión captura rápidamente los cambios de tendencia para obtener ganancias.

  4. Personalizable para utilizar velas HA o no para diferentes mercados.

  5. Las flechas del candelabro indican visualmente las inversiones.

  6. Los parámetros como el marco de tiempo se pueden optimizar para diferentes productos.

Los riesgos

También hay algunos riesgos a tener en cuenta:

  1. Las señales necesitan una fiabilidad sólida.

  2. Pueden ocurrir frecuentes fracasos en mercados variados.

  3. Incapaz de determinar la duración de la tendencia, puede revertir y luego continuar la tendencia.

  4. Indicador único propenso a señales falsas, debe combinarse con otros.

  5. Se debe evitar el sobreajuste mediante la optimización.

Soluciones:

  1. Optimice los parámetros para señales confiables.

  2. Añadir un filtro de tendencia para evitar mercados variados.

  3. Utilizar el stop loss para controlar la pérdida por operación.

  4. Confirmar las señales con otros indicadores para evitar señales falsas.

  5. Pruebas de retroceso exhaustivas para optimizar los parámetros y evitar el sobreajuste.

Mejora

La estrategia puede mejorarse de las siguientes maneras:

  1. Optimizar el plazo para los diferentes productos.

  2. Prueba el uso de las velas HA por características del producto.

  3. Añadir un filtro de tendencia para evitar los golpes en los mercados variados.

  4. Implementar paradas dinámicas basadas en la volatilidad del mercado.

  5. Confirmar las señales con indicadores adicionales.

  6. Incorporar el tamaño de las posiciones basado en la gestión del riesgo.

  7. Ampliar para el comercio de arbitraje de múltiples productos.

  8. Ajustar los parámetros basados en los resultados de las pruebas de retroceso para evitar el sobreajuste.

Conclusión

Esta estrategia aprovecha los puntos fuertes de las velas HA mejoradas para descubrir puntos de reversión potenciales a través de cambios de color HA. En comparación con las velas normales, HA filtra el ruido para señales más limpias. La estrategia implementa la lógica de negociación de reversión de una manera simple e intuitiva que es fácil de usar para el comercio en vivo. Pero las operaciones de reversión enfrentan riesgos de captura y deben optimizarse para una mayor precisión de la señal. Combinándose con el análisis de tendencias y otros factores puede formar un sistema más completo. En general, esta estrategia proporciona un enfoque para identificar reversiones utilizando datos HA y puede ampliarse para estrategias de negociación de reversión robustas.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Heikin-Ashi Change Strategy", overlay=true)

UseHAcandles    = input(true, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

// Calculation HA Values 
haopen = 0.0
haclose = (haOpen + haHigh + haLow + haClose) / 4
haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = max(haHigh, max(haopen, haclose))
halow = min(haLow, min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red

// Signals
turnGreen = haclose > haopen and haclose[1] <= haopen[1]
turnRed = haclose <= haopen and haclose[1] > haopen[1]

// Plotting
bgcolor(hacolor)

plotshape(turnGreen, style=shape.arrowup, location=location.belowbar, color=color.green)
plotshape(turnRed, style=shape.arrowdown, location=location.abovebar, color=color.red)

// Alerts
alertcondition(turnGreen, "ha_green", "ha_green")
alertcondition(turnRed, "ha_red", "ha_red")

strategy.entry("long", 1, when=turnGreen)
//strategy.entry("short", 0, when=turnRed)
strategy.close("long", when=turnRed)


Más.