Tendencia ZigZag Siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-01-08 10:13:24
Las etiquetas:

img

Resumen general

Este artículo presenta una estrategia de trading llamada ZigZag Trend Following Strategy. Esta estrategia identifica las tendencias de precios utilizando el indicador ZigZag y abre posiciones cuando las tendencias se invierten para seguir la tendencia. En el guión de la Estrategia Pine, el indicador ZigZag se utiliza para confirmar nuevos máximos y mínimos de precios. Cuando los precios rompen la línea del indicador ZigZag, sirve como señales comerciales. La señal de compra es cuando el precio de cierre está por encima de la línea del indicador ZigZag para ir largo; La señal de venta es cuando el precio de cierre está por debajo de la línea del indicador ZigZag para ir corto. Esto puede rastrear eficazmente las tendencias de precios a medio y largo plazo.

Principio de la estrategia

El núcleo de esta estrategia es utilizar el indicador ZigZag para localizar puntos extremos de los precios y mostrar las tendencias de los precios.

  1. Calcule la EMA promedio móvil exponencial de los precios cerrados, incluyendo tres líneas de promedio móvil: línea rápida, línea media y línea lenta.

  2. Juzga si los precios están en una tendencia alcista, es decir, si la línea media actual es superior a la línea media de la línea K anterior.

  3. Si actualmente se encuentra en una tendencia al alza, encuentre el precio más bajo contado desde el comienzo de la ola anterior de puntos bajos dentro del ciclo detectado como el valor de ZigZag.

  4. Si actualmente se encuentra en una tendencia a la baja, encuentre el precio más alto contado desde el comienzo de la ola anterior de puntos altos dentro del ciclo detectado como el valor de ZigZag.

  5. Así, se forma el indicador ZigZag que refleja los puntos extremos de las fluctuaciones de precios.

Sobre esta base, utilizamos la línea ZigZag como referencia para juzgar la tendencia del precio. Es decir, cuando el precio sube y rompe la línea del indicador ZigZag, vamos largo; cuando el precio cae y rompe la línea del indicador ZigZag, vamos corto.

Análisis de ventajas

Las ventajas de utilizar el indicador ZigZag para determinar las tendencias de los precios y seguir los extremos de los precios a medida que se establecen las posiciones son:

  1. Puede filtrar eficazmente el ruido del mercado y capturar las principales tendencias.

  2. Las señales comerciales establecidas en las rupturas de nuevos máximos y mínimos pueden obtener ganancias de manera eficiente.

  3. Las líneas ZigZag son relativamente lisas, lo que puede reducir las señales falsas.

  4. Fácil de optimizar estrategias ajustando parámetros ZigZag.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. El funcionamiento a largo plazo puede quedar atrapado debido a violentas fluctuaciones en el mercado.

  2. Los indicadores ZigZag son sensibles a los parámetros. Los ajustes incorrectos pueden perder oportunidades comerciales o generar señales falsas. Los parámetros deben ser probados y optimizados adecuadamente.

  3. Las estrategias de seguimiento de tendencias dependen más de los mercados de tendencias.

En respuesta a los riesgos anteriores, podemos establecer mecanismos de stop loss para controlar pérdidas individuales; al mismo tiempo, ajustar el tamaño de la posición en lugar de buscar una posición completa; finalmente, combinar diferentes tipos de cartera de estrategias.

Dirección de optimización

Podemos optimizar aún más esta estrategia en los siguientes aspectos:

  1. Añadir un mecanismo de stop loss, por ejemplo, establecer un stop loss móvil o un stop loss para la amplitud de retroceso del precio.

  2. Combinar con otros indicadores para el filtro de posición. Por ejemplo, mejorar los indicadores de impulso para garantizar un impulso suficiente; o los indicadores de volumen de operaciones para garantizar altos volúmenes de operaciones.

  3. Adoptar diferentes configuraciones de parámetros de acuerdo con los diferentes entornos de mercado (como los mercados alcista y bajista).

  4. Prueba diferentes parámetros de línea EMA para encontrar la mejor combinación de parámetros.

Conclusión

Esta estrategia utiliza el indicador ZigZag para determinar tendencias de precios y establecer posiciones de seguimiento cerca de puntos extremos. Su ventaja es seguir la tendencia de manera eficiente para obtener ganancias. También tiene el riesgo de quedar atrapado. Podemos establecer stop loss, optimizar parámetros y cartera de estrategia comercial para controlar riesgos. Esta estrategia es más adecuada para el comercio de tendencias a medio y largo plazo. Si se controla y combina adecuadamente, puede obtener retornos estables.


/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's ZigTrend Strategy v1.0", shorttitle = "ZigTrend 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(4)
ExtremeDetection = input(4)
src = input(close)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//ZigZag
f_zz(_length, _detection)=>
    _hls = ema(ema(ema(src, _length), round(_length*0.66)), round(_length*0.33))
    _isRising = _hls >= _hls[1]
    _zigzag = _isRising and not _isRising[1] ? lowest(_detection) :  not _isRising and _isRising[1] ? highest(_detection) : na
zigzag = f_zz(length, ExtremeDetection)
plot(zigzag, color=black, linewidth=2)

//Signals
up = close > zigzag
dn = close < zigzag

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)


Más.