Choppiness Index (CHOP)

Choppiness Index (CHOP)

Choppiness Index (CHOP): qué es y cómo usarlo en el trading

Resumen rápido

El Choppiness Index (CHOP) mide si el mercado está en rango o en tendencia. Además, comprime esa lectura en una escala fija. Por lo tanto, ayuda a decidir cuándo priorizar estrategias de reversión o de seguimiento.

En consecuencia, valores altos sugieren “mercado picado” y condiciones laterales. Por otro lado, valores bajos indican direccionalidad y posible impulso. Asimismo, combinar CHOP con soportes, resistencias y volumen mejora la fiabilidad.

¿Qué es el Choppiness Index?

CHOP es un oscilador de volatilidad direccional. Así, no predice hacia dónde irá el precio; en cambio, clasifica el estado actual: choppy versus tendencial. De hecho, su objetivo es gestionar el contexto, no el gatillo de entrada.

Por lo general, se representa en un panel aparte. Además, incluye umbrales que separan compresión de direccionalidad. Finalmente, su lectura facilita elegir la táctica adecuada para cada entorno.

¿Cómo se calcula el CHOP?

El cálculo usa el rango verdadero (ATR) acumulado y el rango máximo-mínimo del periodo. Después, normaliza con logaritmos para crear una escala acotada. Finalmente, transforma el resultado a porcentaje.

Fórmula básica (esquema)

n = ventana de cálculo
ATR_sum = suma(ATR, n)
Range = Máximo(n) - Mínimo(n)
CHOP = 100 * [log10(ATR_sum / Range)] / log10(n)
  

En consecuencia, si el precio oscila sin avanzar, el ATR acumulado es grande frente al rango neto y el CHOP sube. Sin embargo, si el precio progresa direccionalmente, el rango neto crece y el CHOP cae.

Interpretación práctica

CHOP alto (mercado en rango)

Lecturas elevadas indican consolidación. Por lo tanto, conviene priorizar estrategias de reversión a la media. Además, los rompimientos suelen requerir confirmación adicional.

CHOP bajo (mercado en tendencia)

Valores bajos sugieren direccionalidad. En consecuencia, el seguimiento de tendencia gana probabilidad. Asimismo, las entradas en pullback pueden ofrecer mejor relación riesgo/beneficio.

Cruces de umbral

Los umbrales habituales son aproximados (p. ej., 38 y 61). Así, por debajo del nivel inferior se asume tendencia. En cambio, por encima del superior se asume rango. Aun así, ajusta estos niveles al activo.

Ventajas del Choppiness Index

Puntos fuertes

  • Separa de forma objetiva rango y tendencia.
  • Además, funciona en múltiples marcos temporales.
  • Complementa filtros de volatilidad como BBW o ATR.
  • Por otro lado, es sencillo de interpretar y automatizar.

Limitaciones del indicador

Retraso y falsos cambios

Como todo indicador suavizado, reacciona con cierto retraso. En consecuencia, los giros rápidos pueden llegar tarde. Asimismo, noticias o gaps extremos pueden distorsionar la señal.

Umbrales no universales

Cada activo tiene su carácter. Por lo tanto, los niveles fijos no siempre se adaptan. Además, conviene calibrar con percentiles históricos y validar fuera de muestra.

Estrategias con CHOP

1) Selección de táctica por régimen

  1. Define umbrales: bajo < 38, alto > 61 (ejemplo).
  2. Si CHOP está bajo, aplica seguimiento de tendencia.
  3. Si CHOP está alto, usa reversión a la media y rangos.

Así alineas la estrategia con el contexto. Además, reduces operaciones impropias del régimen vigente.

2) Breakout filtrado

  1. Espera CHOP alto sostenido (compresión).
  2. Actúa cuando CHOP gire a la baja y el precio rompa el rango.
  3. Confirma con volumen o cierre fuera del nivel clave.

En consecuencia, intentas capturar el inicio del movimiento. Sin embargo, coloca stops lógicos para limitar el riesgo.

3) Gestión de exposición

  1. Aumenta tamaño en entornos tendenciales (CHOP bajo).
  2. Reduce riesgo cuando CHOP sube y el mercado se aplana.
  3. Revisa objetivos según volatilidad y estructura.

Asimismo, integrar el CHOP al plan de tamaño ayuda a estabilizar la curva de capital.

Parámetros y ajustes recomendados

Ventana y suavizado

Un valor común es n = 14. No obstante, marcos rápidos pueden requerir 21 para suavizar. Por otro lado, activos muy tendenciales pueden funcionar mejor con n más corto.

Umbrales por percentiles

Calcula percentiles 20/80 del CHOP histórico. Así obtendrás niveles adaptados. Además, recomputa al cambiar de timeframe o activo.

Configuración rápida en plataformas

Valores de inicio sugeridos

  • Ventana: 14 periodos.
  • Umbral bajo: 38 (aprox.).
  • Umbral alto: 61 (aprox.).

Posteriormente, valida tus niveles con backtests. Asimismo, verifica su estabilidad en muestras distintas.

Gestión del riesgo y buenas prácticas

Plan y disciplina

Define el riesgo por operación antes de entrar. Además, ajusta objetivos a la volatilidad vigente. Finalmente, registra métricas y evita cambios sin evidencia.

Conclusión

El Choppiness Index no indica dirección, pero clasifica el entorno con precisión. Por lo tanto, seleccionar la táctica según CHOP —y combinarla con estructura de precio, volumen y gestión del riesgo— mejora la consistencia operativa.

Código de TradingView ejecutable

//@version=6
indicator(«Choppiness Index (CHOP) — sin ta.sum», overlay=false)

// Inputs
len = input.int(14, «Periodo (n)», minval=2)
asHistogram = input.bool(true, «Mostrar como histograma»)

// True Range y suma rodante exacta vía acumuladas
tr = ta.tr(true)
sumTR = na(ta.cum(tr)[len]) ? na : (ta.cum(tr) – ta.cum(tr)[len])

// Rango n-bar
hh = ta.highest(high, len)
ll = ta.lowest(low, len)
rng = hh – ll

// CHOP (una sola línea para evitar errores de sintaxis con ‘? :’)
chop = (na(sumTR) or rng == 0) ? na : 100 * (math.log10(sumTR / rng) / math.log10(len))

// Guías
hline(50, «50», color=color.new(color.gray, 60))
hline(61.8, «61.8 (rango/chop)», color=color.new(color.red, 60))
hline(38.2, «38.2 (tendencia)», color=color.new(color.teal, 60))

// Plot principal
plot(chop, title=»CHOP»,
color=color.new(color.blue, 0),
style=asHistogram ? plot.style_histogram : plot.style_line,
linewidth=2)

// Alertas opcionales
alertcondition(ta.crossover(chop, 38.2), «CHOP cruza ↑ 38.2», «CHOP sube por encima de 38.2»)
alertcondition(ta.crossunder(chop, 38.2), «CHOP cruza ↓ 38.2», «CHOP cae por debajo de 38.2»)
alertcondition(ta.crossover(chop, 61.8), «CHOP cruza ↑ 61.8», «CHOP entra en zona de rango»)
alertcondition(ta.crossunder(chop, 61.8), «CHOP cruza ↓ 61.8», «CHOP sale de zona de rango»)

 

Si quieres dar un paso más en el trading, y quieres darnos sugerencias estamos abiertos a comentarios e ideas constructivas,

CONTACTA CON NOSOTROS Y CREEMOS COMUNIDAD

IR A NUESTRO CANAL DE YOUTUBE

 

IMPORTANTE:

En ningún momento queremos que lo reflejado en esta web, se considere como recomendaciones.

 

El objetivo es mostrar la veracidad de las estrategias desde un punto de vista técnico de análisis de los resultados arrojados por los algoritmos de trading, estudiando los años pasados que pueden coincidir o no con los futuros.

Chop Zone

Chop Zone

Chop Zone: qué es y cómo usarlo en el trading

Resumen;

El Chop Zone es un indicador técnico diseñado para diferenciar entre mercados en tendencia y mercados laterales. Además, utiliza una combinación de medias móviles y osciladores para ofrecer una representación visual del estado del mercado mediante colores. Por lo tanto, ayuda a evitar operaciones en momentos de indecisión.

En consecuencia, muchos traders lo usan como filtro, esperando señales de otros indicadores únicamente cuando el Chop Zone confirma una tendencia clara. Asimismo, su aspecto visual permite tomar decisiones rápidas sin cálculos complejos y facilita la identificación de contextos favorables.

¿Qué es el indicador Chop Zone?

El Chop Zone suele presentarse como una serie de barras de color que cambian según la fuerza y dirección del mercado. Así, los colores cálidos suelen asociarse con impulso alcista y los fríos con impulso bajista. En cambio, colores neutros indican consolidación o falta de dirección.

De hecho, este indicador es muy popular en estrategias de análisis múltiple, donde se combina con herramientas como el ADX o el Choppiness Index para validar señales. Por lo tanto, es ideal para evitar entrar en operaciones cuando el mercado no presenta un movimiento claro.

¿Cómo funciona el Chop Zone?

El funcionamiento se basa en la lectura de múltiples medias móviles y osciladores internos. Después, el valor resultante se asigna a un color específico. Finalmente, este color se pinta en un panel o sobre el gráfico principal, facilitando la interpretación visual. Como resultado, los traders pueden tomar decisiones más rápidas y con mayor confianza.

Interpretación de colores típica

  • Verde intenso: tendencia alcista fuerte.
  • Verde claro: tendencia alcista moderada.
  • Amarillo: mercado neutro o en rango.
  • Rojo claro: tendencia bajista moderada.
  • Rojo intenso: tendencia bajista fuerte.

Sin embargo, la asignación exacta de colores puede variar según la configuración del indicador. Por eso, conviene ajustar los parámetros según el activo y el marco temporal.

Interpretación práctica

Zona de tendencia

Cuando el indicador muestra colores extremos (verdes o rojos intensos), se interpreta que hay fuerza direccional. Por lo tanto, los traders pueden buscar entradas a favor de la tendencia dominante. Además, estos escenarios suelen coincidir con aumentos en el volumen y rupturas de niveles técnicos.

Zona de consolidación

Colores intermedios o neutros indican falta de dirección. En consecuencia, es probable que el precio se mueva en un rango lateral. Así, es mejor esperar una ruptura antes de tomar posición. De esta forma, se evita quedar atrapado en movimientos erráticos.

Cambios de color

Un cambio repentino de color puede ser señal temprana de un giro en el mercado. Sin embargo, conviene confirmarlo con volumen u otros indicadores para evitar falsas señales. Asimismo, observar el contexto general aumenta la fiabilidad de la lectura.

Ventajas del Chop Zone

  • Interpretación visual sencilla y directa.
  • Además, ayuda a filtrar señales falsas en rangos.
  • Se adapta a múltiples marcos temporales.
  • Por otro lado, combina bien con estrategias de seguimiento de tendencia.

Limitaciones del indicador

En marcos muy cortos, los cambios de color pueden ser demasiado frecuentes. Por lo tanto, es recomendable ajustar la configuración para suavizar las señales. Asimismo, no indica puntos exactos de entrada o salida, sino que actúa como filtro de contexto.

Estrategias con Chop Zone

1) Confirmación de tendencia

  1. Identifica una señal de entrada con otro indicador.
  2. Confirma que el Chop Zone muestre color extremo en la misma dirección.
  3. En consecuencia, entra en la operación con mayor confianza y coherencia con el contexto.

2) Evitar rangos

  1. Si el Chop Zone muestra color neutro, no abrir nuevas posiciones.
  2. Esperar a que aparezca color de tendencia fuerte.
  3. Así, se reduce el número de operaciones de baja probabilidad y se optimiza la gestión de capital.

3) Alertas de cambio de tendencia

  1. Configura alertas cuando cambie el color del Chop Zone.
  2. Valida con patrones de velas o volumen.
  3. Usa stops ajustados para proteger capital en giros tempranos y mantener el control del riesgo.

Parámetros y ajustes recomendados

  • Longitud de medias: 14–34 periodos.
  • Filtros de suavizado: según volatilidad del activo.
  • Colores personalizados para mayor visibilidad y coherencia con tu estrategia.

Conclusión

El Chop Zone es un excelente filtro visual para diferenciar entre mercados en tendencia y en rango. Además, su integración con otras herramientas de análisis técnico mejora la calidad de las operaciones. Por lo tanto, usarlo de forma complementaria y con gestión del riesgo adecuada puede aumentar la consistencia de la estrategia y reducir errores.

Código de TradingView ejecutable

//@version=6
indicator(«Chop Zone (open-source)», overlay=false)

// ——— Inputs
lenCI = input.int(14, «Periodo Choppiness Index», minval=2)
emaLen = input.int(50, «Periodo EMA (dirección)», minval=1)
thLow = input.float(38.2, «Umbral tendencia (bajo CI)», step=0.1)
thHigh = input.float(61.8, «Umbral rango (alto CI)», step=0.1)
asHist = input.bool(true, «Mostrar CI como histograma»)
colorBarsOnChart = input.bool(false, «Colorear velas en el gráfico»)

// ——— Choppiness Index
tr = ta.tr(true)
sumTR = ta.rma(tr, lenCI) * lenCI
hh = ta.highest(high, lenCI)
ll = ta.lowest(low, lenCI)
rng = hh – ll
ci = rng != 0 ? 100 * (math.log10(sumTR / rng) / math.log10(lenCI)) : 0

// ——— Dirección con EMA
emaDir = ta.ema(close, emaLen)
trendUp = close > emaDir and emaDir > emaDir[1]
trendDn = close < emaDir and emaDir < emaDir[1]

// ——— Colores por nivel
lvlStrongTrend = thLow * 0.70
lvlModTrend = thLow
lvlNeutralHi = thHigh
lvlHeavyChop = math.min(100.0, thHigh + 20.0)

level =
ci <= lvlStrongTrend ? 5 :
ci <= lvlModTrend ? 4 :
ci <= lvlNeutralHi ? 3 :
ci <= lvlHeavyChop ? 2 : 1

colorUp =
level == 5 ? color.new(color.lime, 0) :
level == 4 ? color.new(color.green, 0) :
level == 3 ? color.new(color.orange, 0) :
level == 2 ? color.new(color.blue, 40) :
color.new(color.gray, 0)

colorDn =
level == 5 ? color.new(color.red, 0) :
level == 4 ? color.new(color.maroon, 0) :
level == 3 ? color.new(color.orange, 0) :
level == 2 ? color.new(color.blue, 40) :
color.new(color.gray, 0)

zoneColor = trendUp ? colorUp : trendDn ? colorDn : color.new(color.gray, 30)

// ——— Plots
plot(0, color=color.gray, title=»Cero»)
plot(ci, title=»Choppiness Index»,
style=asHist ? plot.style_histogram : plot.style_line,
color=zoneColor, linewidth=2)
plot(thLow, title=»Umbral Tendencia», color=color.new(color.teal, 60))
plot(thHigh, title=»Umbral Rango», color=color.new(color.red, 60))

// ——— Colorear velas (opcional, sin if local)
barcolor(colorBarsOnChart ? zoneColor : na)

// ——— Señales opcionales
trendOn = ci < thLow
chopOn = ci > thHigh
trendUpSignal = trendOn and trendUp and not trendUp[1]
trendDnSignal = trendOn and trendDn and not trendDn[1]

plotshape(series=trendUpSignal, title=»Inicio tendencia alcista (bajo CI)»,
style=shape.triangleup, location=location.bottom, color=color.lime, size=size.tiny, text=»TZ↑»)
plotshape(series=trendDnSignal, title=»Inicio tendencia bajista (bajo CI)»,
style=shape.triangledown, location=location.top, color=color.red, size=size.tiny, text=»TZ↓»)

alertcondition(trendUpSignal, «Chop Zone: tendencia alcista», «CI bajo + EMA alcista»)
alertcondition(trendDnSignal, «Chop Zone: tendencia bajista», «CI bajo + EMA bajista»)
alertcondition(chopOn, «Chop Zone: rango», «CI alto (mercado en rango)»)

 

Si quieres dar un paso más en el trading, y quieres darnos sugerencias estamos abiertos a comentarios e ideas constructivas,

CONTACTA CON NOSOTROS Y CREEMOS COMUNIDAD

IR A NUESTRO CANAL DE YOUTUBE

 

IMPORTANTE:

En ningún momento queremos que lo reflejado en esta web, se considere como recomendaciones.

 

El objetivo es mostrar la veracidad de las estrategias desde un punto de vista técnico de análisis de los resultados arrojados por los algoritmos de trading, estudiando los años pasados que pueden coincidir o no con los futuros.

Chande Momentum Oscillator (CMO)

Chande Momentum Oscillator (CMO)

Chande Momentum Oscillator (CMO): qué es y cómo usarlo en el trading

Resumen:

El Chande Momentum Oscillator (CMO) mide el impulso neto comparando subidas y bajadas recientes. Además, oscila entre −100 y +100, lo que facilita identificar sobrecompra y sobreventa relativa. Por lo tanto, resulta útil para detectar aceleraciones, desaceleraciones y posibles giros.

En consecuencia, muchos traders lo combinan con medias móviles, soportes y resistencias. Asimismo, su lectura alrededor de cero ayuda a distinguir entre fases de acumulación y distribución.

¿Qué es el CMO?

El CMO fue desarrollado por Tushar Chande. Así, resume la diferencia entre los avances y los descensos de cierre en una ventana fija. En cambio, no intenta predecir la dirección futura; más bien, cuantifica la fuerza del movimiento actual.

De hecho, valores positivos indican momentum alcista neto. Por otro lado, valores negativos reflejan momentum bajista predominante.

¿Cómo se calcula el CMO?

El cálculo separa sumas de cambios positivos y negativos. Después, normaliza la diferencia por la suma absoluta de ambos. Finalmente, multiplica el resultado por 100 para llevarlo a una escala simétrica.

Fórmula básica

UpSum  = suma de variaciones positivas en n periodos
DownSum= suma de variaciones negativas (valor absoluto) en n periodos
CMO = 100 * (UpSum - DownSum) / (UpSum + DownSum)
  

En consecuencia, el indicador responde con rapidez a cambios de impulso. Sin embargo, puede ser sensible al ruido en marcos muy cortos.

Interpretación práctica

Lecturas altas y bajas

Un CMO cercano a +50 sugiere dominio comprador. Por lo tanto, la continuación alcista es más probable si el precio confirma. En cambio, un CMO cerca de −50 señala presión vendedora y riesgo de extensión bajista.

Cruces de la línea cero

El paso de negativo a positivo puede actuar como gatillo alcista. Asimismo, el cruce inverso favorece señales bajistas. No obstante, en rangos estrechos conviene añadir filtros de tendencia.

Sobrecompra y sobreventa

Muchos operadores usan umbrales como +50 y −50. Así, lecturas extremas pueden anticipar agotamiento. Aun así, en tendencias fuertes los extremos persisten, por lo que es prudente esperar confirmación.

Divergencias

Si el precio marca nuevos máximos y el CMO no los acompaña, aparece debilidad. Por ello, una divergencia bajista sugiere pérdida de impulso. Del mismo modo, divergencias alcistas pueden preceder rebotes.

Ventajas del Chande Momentum Oscillator

Puntos fuertes

  • Escala simétrica y fácil de interpretar.
  • Además, responde con rapidez a cambios de impulso.
  • Funciona en múltiples marcos temporales.
  • Por otro lado, ofrece señales de cruce y divergencias claras.

Limitaciones del indicador

Ruido en horizontes cortos

En intradía, el CMO puede generar señales erráticas. En consecuencia, conviene suavizar con medias o aumentar la ventana. Asimismo, evitar noticias de alto impacto reduce falsos positivos.

Persistencia de extremos

Durante tendencias potentes, las lecturas extremas pueden mantenerse. Por lo tanto, vender sólo porque el CMO está alto suele ser prematuro. Además, confirmar con estructura mejora la fiabilidad.

Estrategias con CMO

1) Cruce de cero filtrado

  1. Define la dirección con una media móvil.
  2. Compra cuando el CMO cruce de negativo a positivo en tendencia alcista.
  3. Vende cuando cruce de positivo a negativo en tendencia bajista.

Así, alineas impulso y dirección principal. Además, reduces operaciones contra tendencia.

2) Umbrales extremos y reversión

  1. Marca +50 y −50 como niveles de alerta.
  2. Espera vela de giro o ruptura de microestructura.
  3. Objetivo: retorno a la media o a la zona de equilibrio.

Sin embargo, evita esta táctica si el contexto muestra aceleración sostenida.

3) Divergencias con confirmación

  1. Busca divergencias del CMO frente al precio.
  2. Confirma con volumen o patrón técnico.
  3. Gestiona con stop tras el último extremo.

En consecuencia, mejoras el ratio riesgo/beneficio y limitas entradas débiles.

Parámetros y ajustes recomendados

Ventana (n)

Un valor común es n = 14. Aun así, activos volátiles pueden requerir 20–30 para suavizar. Asimismo, marcos rápidos pueden funcionar mejor con 9–12.

Suavizado opcional

Aplicar una EMA al CMO reduce ruido. Por lo tanto, un cruce “CMO vs CMO-EMA” puede refinar entradas. Además, ayuda a mantener la disciplina.

Configuración rápida en plataformas

Valores de inicio sugeridos

  • Ventana: 14 periodos.
  • Umbrales: +50 y −50.
  • Escala: panel independiente con línea cero.

Código de TradingView ejecutable

//@version=6
indicator(«Chande Momentum Oscillator (CMO)», overlay=false)

// ——— Inputs
len = input.int(14, «Periodo», minval=1)
asHistogram = input.bool(true, «Mostrar como histograma»)
showBands = input.bool(true, «Mostrar bandas ±50»)

// ——— Cálculos base
chg = ta.change(close)
up = ta.rma(math.max(chg, 0), len) * len // suma de ganancias
down = ta.rma(math.max(-chg, 0), len) * len // suma de pérdidas
denom = up + down

cmo = denom != 0 ? 100 * (up – down) / denom : 0.0

// ——— Guías
plot(0, title=»Cero», color=color.gray)
plot(showBands ? 50 : na, title=»+50″, color=color.gray)
plot(showBands ? -50 : na, title=»-50″, color=color.gray)

// ——— Plot principal
cmoColor = cmo >= 0 ? color.new(color.teal, 0) : color.new(color.red, 0)
plot(cmo, title=»CMO»,
color=cmoColor,
style=asHistogram ? plot.style_histogram : plot.style_line,
linewidth=2)

// ——— Señales opcionales
crossZeroUp = ta.crossover(cmo, 0)
crossZeroDown = ta.crossunder(cmo, 0)

plotshape(series=crossZeroUp, title=»CMO cruza > 0″, style=shape.triangleup,
location=location.bottom, size=size.tiny, color=color.teal, text=»↑0″)
plotshape(series=crossZeroDown, title=»CMO cruza < 0″, style=shape.triangledown,
location=location.top, size=size.tiny, color=color.red, text=»↓0″)

alertcondition(crossZeroUp, «CMO cruza arriba de 0», «CMO > 0»)
alertcondition(crossZeroDown, «CMO cruza abajo de 0», «CMO < 0»)

 

Si quieres dar un paso más en el trading, y quieres darnos sugerencias estamos abiertos a comentarios e ideas constructivas,

CONTACTA CON NOSOTROS Y CREEMOS COMUNIDAD

IR A NUESTRO CANAL DE YOUTUBE

 

IMPORTANTE:

En ningún momento queremos que lo reflejado en esta web, se considere como recomendaciones.

 

El objetivo es mostrar la veracidad de las estrategias desde un punto de vista técnico de análisis de los resultados arrojados por los algoritmos de trading, estudiando los años pasados que pueden coincidir o no con los futuros.

Chande Kroll Stop

Chande Kroll Stop

Chande Kroll Stop (CKS): qué es y cómo usarlo en el trading

Detalles del Indicador:

El Chande Kroll Stop es un stop dinámico basado en rangos de precio. Además, traza niveles de salida y reversión que se adaptan a la volatilidad. Por lo tanto, sirve como trailing stop y como filtro de tendencia.

En consecuencia, muchos traders lo emplean para seguir impulsos y proteger beneficios. Asimismo, su lectura es simple: precio por encima del stop alcista, sesgo comprador; por debajo del stop bajista, sesgo vendedor.

¿Qué es el Chande Kroll Stop?

CKS fue propuesto por Tushar Chande y Stanley Kroll. Así, utiliza máximos y mínimos recientes, desplazados por un múltiplo del rango verdadero medio. En cambio, no predice dirección; más bien, define zonas de invalidación.

¿Cómo se calcula?

Primero se calculan máximos y mínimos de lookback. Después, se desplazan por un múltiplo del ATR para crear líneas de stop. Finalmente, se selecciona el stop activo según el lado de mercado.

Fórmulas básicas

ATR = ATR(nATR)
HighN = Máximo(nHigh)
LowN  = Mínimo(nLow)

Stop Alcista = HighN - m * ATR
Stop Bajista = LowN  + m * ATR
Señal: 
  - Largos cuando el precio cierra por encima del Stop Bajista y se mantiene.
  - Cortos cuando el precio cierra por debajo del Stop Alcista y se mantiene.
  

De hecho, algunos enfoques usan dos juegos de stops y confirman con cierres consecutivos. Además, el múltiplo m controla la sensibilidad.

Interpretación práctica

Precio por encima del stop alcista

Señala continuidad de la tendencia alcista. Por lo tanto, el stop puede “arrastrarse” bajo los mínimos crecientes.

Precio por debajo del stop bajista

Indica continuación bajista. En consecuencia, el stop acompaña a la baja y protege ganancias en cortos.

Cambio de lado del stop

Un cruce que active el stop opuesto sugiere posible reversión. Sin embargo, en rangos puede generar señales falsas; por eso conviene añadir filtros.

Parámetros y ajustes recomendados

Ventanas y múltiplo

nHigh y nLow definen el horizonte de máximos y mínimos. Además, nATR suaviza la volatilidad. Por otro lado, el múltiplo m (p. ej., 1.5–3.0) ajusta la distancia del stop.

Calibración por activo

En activos volátiles, incrementa nATR o m. En cambio, para activos estables, valores menores mejoran la reactividad. Asimismo, valida en varios timeframes.

Estrategias con Chande Kroll Stop

1) Seguimiento de tendencia

  1. Opera a favor del lado activo del stop (alcista o bajista).
  2. Además, usa una media móvil para filtrar la dirección.
  3. Gestiona con trailing del propio CKS y toma parciales en objetivos.

2) Breakout + confirmación

  1. Espera ruptura de rango con cierre a favor.
  2. Confirma que el precio quede fuera del stop opuesto.
  3. En consecuencia, posiciona el stop inicial en la línea CKS.

3) Reversión disciplinada

  1. Si el precio cruza y activa el stop contrario, evalúa giro.
  2. Sin embargo, exige una vela de confirmación o volumen.
  3. Finalmente, ajusta tamaño por volatilidad para limitar riesgo.

Ventajas del CKS

Puntos fuertes

  • Trailing stop objetivo y adaptativo.
  • Además, sirve como filtro de régimen.
  • Funciona en múltiples marcos temporales.
  • Por otro lado, es fácil de interpretar y automatizar.

Limitaciones del indicador

Rangos y whipsaws

En lateralidad, los cruces pueden multiplicarse. Por lo tanto, añade confirmaciones con estructura o momentum. Asimismo, evita operar noticias de alto impacto.

Dependencia de parámetros

Una calibración agresiva aproxima demasiado el stop. En consecuencia, aumentan las salidas prematuras. Además, una calibración muy laxa puede reducir el rendimiento.

Configuración rápida en plataformas

Valores de inicio sugeridos

  • nHigh = 10, nLow = 10.
  • nATR = 10–14.
  • m = 2.0 (ajustable según volatilidad).

Posteriormente, prueba percentiles de ATR para refinar el múltiplo. Asimismo, revisa el slippage típico del activo.

Gestión del riesgo y buenas prácticas

Tamaño y salidas

Dimensiona por riesgo fijo (% de cuenta). Además, usa el CKS como stop técnico y mueve el trailing con cada nuevo valor. Finalmente, registra resultados en diario.

Combinaciones útiles

Combina CKS con RSI o MACD para confirmar momentum. En consecuencia, reduces falsas entradas. También puedes añadir un filtro de volumen.

Conclusión

El Chande Kroll Stop ofrece un marco claro para stops dinámicos y seguimiento de tendencia. Además, se adapta a la volatilidad real del mercado. Por lo tanto, integrarlo con filtros y una gestión del riesgo rigurosa mejora la consistencia operativa.

Código de TradingView ejecutable

//@version=6
indicator(«Chande Kroll Stop (CKS)», overlay=true)

 

// ——— Inputs
pLen = input.int(10, «Periodo base (p)», minval=1)
qLen = input.int(20, «Periodo trailing (q)», minval=1)
mult = input.float(1.0, «Multiplicador ATR (x)», step=0.1)
useAtrLenSep = input.bool(false, «Usar periodo ATR separado»)
atrLen = input.int(10, «Periodo ATR (si separado)», minval=1)

 

// ——— ATR
atrPeriod = useAtrLenSep ? atrLen : pLen
atrVal = ta.atr(atrPeriod)

 

// ——— Stops iniciales
initHighStop = ta.highest(high, pLen) mult * atrVal
initLowStop = ta.lowest(low, pLen) + mult * atrVal

 

// ——— CKS finales (trailing)
shortStop = ta.highest(initHighStop, qLen) // stop para cortos (arriba)
longStop = ta.lowest(initLowStop, qLen) // stop para largos (abajo)

 

// ——— Plots
colShort = color.new(color.red, 0)
colLong = color.new(color.teal, 0)

 

pShort = plot(shortStop, title=«CKS Short Stop», color=colShort, linewidth=2)
pLong = plot(longStop, title=«CKS Long Stop», color=colLong, linewidth=2)
fill(pShort, pLong, color=color.new(color.gray, 90))

 

// ——— Señales visuales (opcionales)
longExit = ta.crossunder(close, longStop) // precio cae por debajo del stop largo
shortExit = ta.crossover(close, shortStop) // precio supera el stop corto

 

plotshape(series=longExit, title=«Salida Largos», style=shape.xcross,
location=location.abovebar, color=colLong, size=size.tiny, text=«L Exit»)
plotshape(series=shortExit, title=«Salida Cortos», style=shape.xcross,
location=location.belowbar, color=colShort, size=size.tiny, text=«S Exit»)

 

// ——— Alertas (opcionales)
alertcondition(longExit, «CKS salida de largos», «Cierre por debajo del CKS Long Stop»)
alertcondition(shortExit, «CKS salida de cortos», «Cierre por encima del CKS Short Stop»)

 

Si quieres dar un paso más en el trading, y quieres darnos sugerencias estamos abiertos a comentarios e ideas constructivas,

CONTACTA CON NOSOTROS Y CREEMOS COMUNIDAD

IR A NUESTRO CANAL DE YOUTUBE

 

IMPORTANTE:

En ningún momento queremos que lo reflejado en esta web, se considere como recomendaciones.

 

El objetivo es mostrar la veracidad de las estrategias desde un punto de vista técnico de análisis de los resultados arrojados por los algoritmos de trading, estudiando los años pasados que pueden coincidir o no con los futuros.

Chaikin Volatility

Chaikin Volatility

Chaikin Volatility (CV): qué es y cómo usarlo en el trading

Resumen:

El Chaikin Volatility es un indicador técnico diseñado para medir la volatilidad de un activo. Además, utiliza la diferencia entre los máximos y mínimos del precio, suavizada mediante una media móvil, para mostrar cambios en la fuerza del mercado. Por lo tanto, es útil para anticipar movimientos bruscos y confirmar rupturas.

En consecuencia, muchos traders lo usan junto a indicadores de tendencia o de momento para filtrar entradas. Asimismo, su lectura puede adaptarse a diferentes marcos temporales, desde intradía hasta largo plazo.

¿Qué es el Chaikin Volatility?

Este indicador fue creado por Marc Chaikin. Así, mide la variación porcentual de la media móvil del rango entre el máximo y el mínimo en un periodo determinado. En cambio, no intenta predecir dirección, sino únicamente cambios en la volatilidad.

De hecho, un aumento repentino en el CV suele indicar que el mercado se está preparando para un movimiento fuerte. Por otro lado, una caída prolongada refleja compresión y posible consolidación.

¿Cómo se calcula?

El cálculo comienza con la diferencia entre el precio máximo y el mínimo de cada vela. Después, se aplica una media móvil para suavizar el rango. Finalmente, se calcula el cambio porcentual de ese valor en relación a un número de periodos anteriores.

Fórmula básica

Rango = Máximo - Mínimo
Rango suavizado = EMA(Rango, n)
Chaikin Volatility = ((Rango suavizado - Rango suavizado[n])) / Rango suavizado[n] * 100
  

Por lo general, se emplea n=10 para la EMA y un periodo de comparación de 10. Sin embargo, estos valores pueden ajustarse según la volatilidad del activo.

Interpretación práctica

CV en aumento

Indica expansión de la volatilidad. Por lo tanto, suele acompañar rupturas o aceleraciones de tendencia. Además, puede servir para detectar el inicio de un impulso.

CV en descenso

Refleja contracción de la volatilidad. En consecuencia, puede anticipar periodos de consolidación o formación de rangos estrechos. Sin embargo, un descenso prolongado puede preceder a un breakout fuerte.

Usos combinados

El CV no indica dirección. Por ello, conviene usarlo con herramientas como medias móviles, RSI o análisis de soportes y resistencias. Asimismo, una subida de volatilidad con ruptura confirmada suele ser una señal más fiable.

Ventajas del Chaikin Volatility

  • Detecta cambios bruscos en la volatilidad con rapidez.
  • Se adapta a cualquier marco temporal.
  • Además, complementa indicadores de tendencia y de momento.
  • Por otro lado, es sencillo de interpretar.

Limitaciones del indicador

El CV no muestra dirección, por lo que puede generar señales ambiguas si se usa en solitario. Además, en mercados con baja liquidez, los cambios de volatilidad pueden ser poco significativos o erráticos.

Estrategias con Chaikin Volatility

1) Confirmación de rupturas

  1. Identifica un nivel clave de soporte o resistencia.
  2. Espera un aumento del CV al romper el nivel.
  3. Confirma con indicadores direccionales como ADX o medias móviles.

2) Compresión y breakout

  1. Detecta una caída sostenida en el CV.
  2. Prepara entradas para un posible breakout.
  3. Confirma con volumen y patrón de velas.

3) Gestión del riesgo

  1. Ajusta el tamaño de la posición en función del nivel de volatilidad.
  2. Usa stops más amplios cuando el CV está alto.
  3. Reduce exposición en entornos extremadamente volátiles.

Parámetros recomendados

  • EMA de rango: 10 periodos.
  • Periodo de comparación: 10.
  • Escala: panel independiente.

Conclusión

El Chaikin Volatility es una herramienta eficaz para medir cambios en la fuerza del mercado. Además, ayuda a anticipar movimientos importantes cuando se combina con análisis técnico. Por lo tanto, integrarlo con un plan de trading y gestión del riesgo adecuada mejora la calidad de las operaciones.

Código de TradingView ejecutable

//@version=6
indicator(«Chaikin Volatility (CV)», overlay=false)

// ——— Inputs
emaLen = input.int(10, «Periodo EMA», minval=1)
rocLen = input.int(10, «Periodo cambio (%)», minval=1)
useATR = input.bool(false, «Usar ATR en lugar de (High-Low)»)

// ——— Rango base
rangeVal = useATR ? ta.atr(1) : (high – low)

// ——— EMA del rango
emaRange = ta.ema(rangeVal, emaLen)

// ——— Chaikin Volatility
cv = ((emaRange – emaRange[rocLen]) / emaRange[rocLen]) * 100

// ——— Gráfico
plot(cv, title=»Chaikin Volatility», color=color.new(color.blue, 0), linewidth=2)
hline(0, «Cero», color=color.gray)

// ——— Señales opcionales
rocUp = ta.crossover(cv, 0)
rocDown = ta.crossunder(cv, 0)

plotshape(series=rocUp, title=»CV sube > 0″, style=shape.triangleup,
location=location.bottom, size=size.tiny, color=color.teal, text=»↑0″)
plotshape(series=rocDown, title=»CV baja < 0″, style=shape.triangledown,
location=location.top, size=size.tiny, color=color.red, text=»↓0″)

 

Si quieres dar un paso más en el trading, y quieres darnos sugerencias estamos abiertos a comentarios e ideas constructivas,

CONTACTA CON NOSOTROS Y CREEMOS COMUNIDAD

IR A NUESTRO CANAL DE YOUTUBE

 

IMPORTANTE:

En ningún momento queremos que lo reflejado en esta web, se considere como recomendaciones.

 

El objetivo es mostrar la veracidad de las estrategias desde un punto de vista técnico de análisis de los resultados arrojados por los algoritmos de trading, estudiando los años pasados que pueden coincidir o no con los futuros.