
La estrategia de seguimiento de tendencias basado en el indicador ZigZag se llama estrategia de seguimiento de tendencias basado en el indicador ZigZag. Utiliza el indicador ZigZag para identificar la tendencia de los precios y abrir posiciones para seguir la tendencia cuando la tendencia se invierte. En el código de Strategy Pine, el indicador ZigZag se utiliza para confirmar los nuevos altos y bajos de los precios.
El núcleo de esta estrategia es el uso de un indicador ZigZag para ubicar los extremos de los precios y mostrar la tendencia de los precios. El indicador ZigZag se compone de un Exponential Moving Average de precios altos y bajos. En concreto, se construye en los siguientes pasos:
Calcula el EMA de un índice de movimiento de precios cerrados, que contiene tres promedios móviles: línea rápida, línea media y línea lenta.
Para determinar si el precio está en tendencia al alza. Es decir, si la línea media actual es más alta que la línea media de la línea K anterior.
Si se trata de una tendencia alcista, encuentre el precio más bajo en el período de detección, contando desde el punto más bajo de la ola anterior, como el valor de ZigZag.
Si actualmente se trata de una tendencia bajista, encuentre el precio más alto en el período de detección, contado desde el punto más alto de la ola anterior, como el valor de ZigZag.
Así se formó el indicador ZigZag, que refleja los extremos de la fluctuación de los precios.
Sobre esta base, tomamos como referencia la línea ZigZag para determinar la tendencia de los precios. Es decir, cuando los precios suben, rompemos la línea indicadora de ZigZag, hacemos más; cuando los precios bajan, rompemos la línea indicadora de ZigZag, hacemos más.
Las ventajas de usar el indicador ZigZag para determinar la tendencia de los precios y rastrear los puntos extremos de los precios como posicionamiento son:
La tecnología de la nube puede filtrar el ruido del mercado para capturar las principales tendencias.
Se puede obtener una gran cantidad de ganancias gracias a las señales de negociación basadas en las rupturas de precios.
Las líneas ZigZag son más suaves y reducen las señales falsas.
Se puede optimizar fácilmente la estrategia ajustando los parámetros ZigZag.
Los principales riesgos de esta estrategia son:
Las operaciones a largo plazo pueden quedar encerradas debido a las fuertes fluctuaciones de la situación. En este caso, es necesario detener el daño a tiempo.
El indicador ZigZag es sensible a los parámetros. Si se configura incorrectamente, se pueden perder oportunidades de negociación o generar falsas señales. Se necesitan parámetros adecuadamente probados y optimizados.
Las estrategias de seguimiento de tendencias dependen más de la situación de las tendencias.
Para los riesgos anteriores, podemos configurar un mecanismo de detención de pérdidas para controlar las pérdidas individuales; al mismo tiempo, ajustar el tamaño de la posición y no buscar operaciones de toda la posición; y, finalmente, usar una combinación de diferentes tipos de estrategias para coincidir.
La estrategia puede seguir optimizándose en los siguientes aspectos:
Aumentar los mecanismos de detención de pérdidas, por ejemplo, establecer un alto de movimiento o un alto de retiro de precios.
En combinación con otros indicadores filtrados. Por ejemplo, el indicador de energía reforzada, para asegurar que haya suficiente energía dinámica; o el indicador de volumen de transacción, para asegurar que haya características de carga.
La configuración de los parámetros varía en función de las diferentes condiciones del mercado (por ejemplo, el mercado alcista y el mercado bajista).
Prueba diferentes parámetros de la línea media EMA para encontrar la combinación de parámetros óptima.
Esta estrategia utiliza el indicador ZigZag para determinar la tendencia de los precios y establecer posiciones de seguimiento cerca de los puntos extremos. Sus ventajas son la tendencia al avance y la rentabilidad eficiente. Al mismo tiempo, existe el riesgo de cobertura.
/*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)