KS Zigzag Channel
- Indicadores
- Kulvinder Singh
- Versión: 1.19
- Actualizado: 2 mayo 2026
- Activaciones: 5
El indicador KS ZigZag Channels es un indicador personalizado para MetaTrader 5 (MQL5).
Dibuja líneas de pivote estilo zigzag que conectan los máximos y mínimos de oscilación (swing highs/lows) significativos, junto con extremos tipo canal (bandas de desviación superior e inferior) alrededor de cada segmento del zigzag. El objetivo es filtrar el ruido del mercado, resaltar la estructura de tendencia subyacente y proporcionar zonas dinámicas, similares a niveles de soporte y resistencia, basadas en la desviación histórica del precio respecto a la línea principal del zigzag.
Lógica central y método de detección
A diferencia de los indicadores ZigZag clásicos basados en porcentajes o puntos, esta versión utiliza un enfoque de ventana deslizante (controlado por el parámetro de entrada *Length*; valor predeterminado = 100 barras):
Realiza un seguimiento mediante una máquina de estados (búfer `g_os[]`: 0 = buscando un posible techo / tramo alcista; 1 = buscando un posible suelo / tramo bajista).
Se confirma un nuevo pivote de suelo cuando el precio de cierre de hace *Length* barras cae por debajo del precio de cierre más bajo registrado en las últimas *Length* barras (tras haber estado previamente en un estado "alcista").
Se confirma un nuevo pivote de techo cuando el precio de cierre de hace *Length* barras sube por encima del precio de cierre más alto registrado en las últimas *Length* barras (tras haber estado previamente en un estado "bajista").
Esto genera pivotes retrospectivos (con efecto de "backpainting" o repintado), lo que significa que los puntos de pivote históricos pueden desplazarse a medida que llegan nuevos datos.
Qué se dibuja en el gráfico
Para cada segmento de oscilación confirmado (entre dos pivotes consecutivos de tipo opuesto):
Línea media (sólida; de color anaranjado por defecto = *MidColor*): conecta el precio del pivote anterior con el precio del pivote actual. Esta constituye la línea principal del ZigZag.
Extremo superior (punteada; de color rojizo = *UpperColor*): línea paralela desplazada hacia arriba según la desviación máxima observada durante dicho segmento. Representa la distancia máxima ascendente desde el máximo o cierre de cualquier barra hasta la línea media interpolada.
Extremo inferior (punteada; de color azul = *LowerColor*): línea paralela desplazada hacia abajo según la desviación máxima descendente. Representa la distancia máxima descendente desde la línea media interpolada hasta el mínimo o cierre de cualquier barra.
Estas tres líneas, en conjunto, forman un canal alrededor de cada tramo histórico del zigzag.
Unos pequeños círculos o flechas (de color azul intenso/Dodger Blue) marcan los puntos de pivote exactos (los máximos y mínimos utilizados).
Aparecen etiquetas de precio opcionales junto a los pivotes cuando el parámetro *ShowLabels* está configurado como *true*. Último segmento: función de extensión
Cuando `ExtendLast = true` (valor predeterminado), el indicador extiende el canal más reciente hacia adelante, hasta la barra actual:
Se ancla en el último pivote confirmado que tenga la misma dirección que el tramo actual.
Calcula una interpolación lineal desde el precio de ese pivote de anclaje hasta el precio de cierre actual.
A continuación, calcula la desviación máxima al alza y a la baja a lo largo de todas las barras que componen el tramo actual hasta el momento.
Dibuja las líneas extendidas (media, superior e inferior) —precedidas por el prefijo "KSZzE_"— proyectándolas hacia la derecha (`ray = true`).
Esto genera un canal dinámico con proyección hacia el futuro, que los operadores suelen utilizar para anticipar posibles zonas de soporte/resistencia o de reversión en tiempo real.
Principales parámetros de entrada y controles
Length (100): periodo de retrospectiva; un valor más alto resulta en menos pivotes, pero más significativos.
ExtendLast (true): determina si se proyecta hacia adelante el tramo incompleto actual.
ShowExt (true): muestra las líneas de desviación superior e inferior (los "canales" propiamente dichos).
ShowLabels (true): muestra las etiquetas de precio en los pivotes.
Tres colores personalizables para las líneas superior, media e inferior.
Uso típico
Identificar la estructura principal de *swings* (oscilaciones) y la dirección de la tendencia.
Utilizar los canales como zonas dinámicas de soporte y resistencia (el precio a menudo reacciona cerca de las bandas superior e inferior).
Aplicar herramientas de dibujo —como retrocesos de Fibonacci, patrones armónicos, canales, etc.— de manera más sencilla entre puntos de *swing* claramente definidos.
Detectar posibles reversiones cuando el precio rompe o rechaza el canal extendido en el segmento actual (en tiempo real).
Nota: Dado que es un indicador retrospectivo que recalcula los pivotes, las líneas históricas pueden desplazarse ligeramente (efecto de "repintado"); este es un comportamiento típico en la mayoría de los indicadores de la familia ZigZag. Se recomienda utilizarlo en combinación con otras herramientas de confirmación, en lugar de forma aislada, para la ejecución de entradas en tiempo real.
Dibuja líneas de pivote estilo zigzag que conectan los máximos y mínimos de oscilación (swing highs/lows) significativos, junto con extremos tipo canal (bandas de desviación superior e inferior) alrededor de cada segmento del zigzag. El objetivo es filtrar el ruido del mercado, resaltar la estructura de tendencia subyacente y proporcionar zonas dinámicas, similares a niveles de soporte y resistencia, basadas en la desviación histórica del precio respecto a la línea principal del zigzag.
Lógica central y método de detección
A diferencia de los indicadores ZigZag clásicos basados en porcentajes o puntos, esta versión utiliza un enfoque de ventana deslizante (controlado por el parámetro de entrada *Length*; valor predeterminado = 100 barras):
Realiza un seguimiento mediante una máquina de estados (búfer `g_os[]`: 0 = buscando un posible techo / tramo alcista; 1 = buscando un posible suelo / tramo bajista).
Se confirma un nuevo pivote de suelo cuando el precio de cierre de hace *Length* barras cae por debajo del precio de cierre más bajo registrado en las últimas *Length* barras (tras haber estado previamente en un estado "alcista").
Se confirma un nuevo pivote de techo cuando el precio de cierre de hace *Length* barras sube por encima del precio de cierre más alto registrado en las últimas *Length* barras (tras haber estado previamente en un estado "bajista").
Esto genera pivotes retrospectivos (con efecto de "backpainting" o repintado), lo que significa que los puntos de pivote históricos pueden desplazarse a medida que llegan nuevos datos.
Qué se dibuja en el gráfico
Para cada segmento de oscilación confirmado (entre dos pivotes consecutivos de tipo opuesto):
Línea media (sólida; de color anaranjado por defecto = *MidColor*): conecta el precio del pivote anterior con el precio del pivote actual. Esta constituye la línea principal del ZigZag.
Extremo superior (punteada; de color rojizo = *UpperColor*): línea paralela desplazada hacia arriba según la desviación máxima observada durante dicho segmento. Representa la distancia máxima ascendente desde el máximo o cierre de cualquier barra hasta la línea media interpolada.
Extremo inferior (punteada; de color azul = *LowerColor*): línea paralela desplazada hacia abajo según la desviación máxima descendente. Representa la distancia máxima descendente desde la línea media interpolada hasta el mínimo o cierre de cualquier barra.
Estas tres líneas, en conjunto, forman un canal alrededor de cada tramo histórico del zigzag.
Unos pequeños círculos o flechas (de color azul intenso/Dodger Blue) marcan los puntos de pivote exactos (los máximos y mínimos utilizados).
Aparecen etiquetas de precio opcionales junto a los pivotes cuando el parámetro *ShowLabels* está configurado como *true*. Último segmento: función de extensión
Cuando `ExtendLast = true` (valor predeterminado), el indicador extiende el canal más reciente hacia adelante, hasta la barra actual:
Se ancla en el último pivote confirmado que tenga la misma dirección que el tramo actual.
Calcula una interpolación lineal desde el precio de ese pivote de anclaje hasta el precio de cierre actual.
A continuación, calcula la desviación máxima al alza y a la baja a lo largo de todas las barras que componen el tramo actual hasta el momento.
Dibuja las líneas extendidas (media, superior e inferior) —precedidas por el prefijo "KSZzE_"— proyectándolas hacia la derecha (`ray = true`).
Esto genera un canal dinámico con proyección hacia el futuro, que los operadores suelen utilizar para anticipar posibles zonas de soporte/resistencia o de reversión en tiempo real.
Principales parámetros de entrada y controles
Length (100): periodo de retrospectiva; un valor más alto resulta en menos pivotes, pero más significativos.
ExtendLast (true): determina si se proyecta hacia adelante el tramo incompleto actual.
ShowExt (true): muestra las líneas de desviación superior e inferior (los "canales" propiamente dichos).
ShowLabels (true): muestra las etiquetas de precio en los pivotes.
Tres colores personalizables para las líneas superior, media e inferior.
Uso típico
Identificar la estructura principal de *swings* (oscilaciones) y la dirección de la tendencia.
Utilizar los canales como zonas dinámicas de soporte y resistencia (el precio a menudo reacciona cerca de las bandas superior e inferior).
Aplicar herramientas de dibujo —como retrocesos de Fibonacci, patrones armónicos, canales, etc.— de manera más sencilla entre puntos de *swing* claramente definidos.
Detectar posibles reversiones cuando el precio rompe o rechaza el canal extendido en el segmento actual (en tiempo real).
Nota: Dado que es un indicador retrospectivo que recalcula los pivotes, las líneas históricas pueden desplazarse ligeramente (efecto de "repintado"); este es un comportamiento típico en la mayoría de los indicadores de la familia ZigZag. Se recomienda utilizarlo en combinación con otras herramientas de confirmación, en lugar de forma aislada, para la ejecución de entradas en tiempo real.
