Cumulative Volume Delta (CVD): qué es y cómo usarlo en el trading

Resumen del indicador

El Cumulative Volume Delta (CVD) mide, vela a vela, la diferencia entre volumen agresor comprador y volumen agresor vendedor y la acumula en una curva. Además, traduce la presión de compra/venta “oculta” en un rastro continuo. Por lo tanto, permite evaluar si los avances del precio realmente cuentan con participación agresiva.

En consecuencia, el CVD ayuda a confirmar rupturas, detectar absorciones y localizar agotamientos. Asimismo, al relacionar flujo de órdenes con precio, ofrece señales que muchos indicadores de precio puro no captan. Por otro lado, su lectura exige datos fiables de bid/ask o, en su defecto, una aproximación por uptick/downtick.

¿Qué es el Cumulative Volume Delta?

El CVD es un indicador de Order Flow que compara volumen ejecutado al ask (compras agresivas) con volumen ejecutado al bid (ventas agresivas). Así, si dominan las compras, la curva asciende; en cambio, si prevalecen las ventas, la curva desciende. De hecho, su naturaleza acumulativa permite observar la “historia” del impulso a lo largo de la sesión.

Asimismo, puede calcularse en distintos marcos: por vela temporal, por rango, por volumen o por número de órdenes. Por lo tanto, es flexible y se adapta a múltiples estilos operativos.

¿Cómo se calcula el CVD?

Primero se clasifica cada transacción como compra agresiva o venta agresiva. Después, se resta el volumen vendedor del comprador para obtener el delta de la vela. Finalmente, ese delta se suma acumulativamente al valor previo.

Fórmula básica

Delta(vela) = Volumen_Ask(vela) - Volumen_Bid(vela)
CVD(t) = CVD(t-1) + Delta(vela_t)
  

En consecuencia, un CVD ascendente indica dominio comprador sostenido. Sin embargo, un CVD plano o divergente sugiere falta de convicción, incluso si el precio avanza.

Interpretación práctica

Confirmación de tendencia

Cuando el precio hace máximos crecientes y el CVD también sube, la dirección suele ser sólida. Por lo tanto, las continuaciones tienen mayor probabilidad. Además, los retrocesos con CVD estable suelen ser oportunidades de pullback.

Divergencias

Si el precio marca un nuevo máximo pero el CVD no lo confirma, aparece debilidad de flujo. En consecuencia, el avance puede estar impulsado por liquidez escasa. Asimismo, una divergencia alcista (precio en mínimos, CVD no) puede anticipar rebotes.

Absorción y agotamiento

Un CVD muy positivo mientras el precio no progresa sugiere absorción vendedora en resistencia. Por ende, los compradores chocan contra órdenes pasivas. Del mismo modo, CVD muy negativo sin caída adicional insinúa absorción compradora.

Rupturas con volumen agresor

Una ruptura acompañada de CVD acelerando confirma participación agresiva. Sin embargo, si el CVD no acompaña, conviene sospechar de ruptura frágil. Asimismo, el retest gana fiabilidad si el CVD se mantiene positivo.

Ventajas del CVD

Puntos fuertes

  • Mide la “calidad” del movimiento al revelar quién empuja el mercado.
  • Además, detecta divergencias de flujo antes que el precio.
  • Funciona en futuros, acciones y cripto con datos adecuados.
  • Por otro lado, se integra bien con niveles y estructuras de mercado.

Limitaciones del indicador

Dependencia del feed de datos

En mercados sin volumen centralizado (p. ej., spot forex), la calidad del CVD varía. Por lo tanto, usa feeds confiables o aproximaciones por uptick/downtick. Asimismo, la latencia y la agregación pueden distorsionar el delta.

Sesiones y reinicios

El carácter acumulativo implica decidir cuándo reiniciar. En consecuencia, muchos traders resetean el CVD al inicio de cada sesión. Además, comparar sesiones ayuda a detectar cambios estructurales de flujo.

Estrategias con CVD

1) Ruptura confirmada por flujo

  1. Marca el rango y sus niveles clave.
  2. Espera ruptura con CVD acelerando en la misma dirección.
  3. Gestiona con stop tras el borde opuesto y objetivo por extensión.

Así, alineas precio, volumen agresor y estructura. Además, filtras rupturas sin convicción.

2) Divergencia operable

  1. Detecta nuevo máximo/mínimo de precio sin validación del CVD.
  2. Confirma con vela de rechazo o pérdida/recuperación del nivel.
  3. Objetivo inicial: regreso al punto de equilibrio del rango.

En consecuencia, aprovechas giros con mejor relación riesgo/beneficio.

3) Absorción en niveles

  1. Identifica resistencia/soporte relevante.
  2. Observa CVD muy positivo/negativo sin avance adicional.
  3. Espera rompimiento fallido o flip de nivel para ejecutar.

Asimismo, la lectura del tape y del volumen por precio refuerza la señal.

Parámetros y ajustes recomendados

Clasificación del flujo

Preferible usar datos por bid/ask reales. Sin embargo, si no están disponibles, aplica regla de uptick/downtick. Además, valida el método con casos manuales.

Ventana y tipo de vela

Elige marcos que reflejen tu operativa: temporal, rango, volumen o ticks. Por lo tanto, ajusta hasta equilibrar ruido y oportunidad. Asimismo, considera suavizar el CVD con una media para reducir picos.

Reinicio y sesiones

Define si el CVD es continuo o diario. En consecuencia, evita mezclas que dificulten la comparación. Además, documenta la política de reinicio en tu plan.

Configuración rápida en plataformas

Buenas prácticas

  • Panel separado con línea cero y medias del CVD.
  • Alertas cuando el CVD acelere cerca de niveles clave.
  • Complementar con volumen por perfil y delta por vela.

Gestión del riesgo

Plan y disciplina

Define riesgo por operación antes de ejecutar. Además, coloca stops lógicos en niveles y ajusta tamaño a la volatilidad. Finalmente, evita sobreoperar divergencias sin confirmación.

Conclusión

El Cumulative Volume Delta revela la participación agresiva detrás del precio. Asimismo, permite confirmar rupturas, identificar absorciones y anticipar giros mediante divergencias. Por lo tanto, integrarlo con estructura, volumen por precio y una gestión del riesgo rigurosa mejora la consistencia operativa.

Código de TradingView ejecutable

//@version=6
indicator(«Cumulative Volume Delta (CVD)», overlay=false)

// ——— Inputs
method = input.string(«Close Up/Down», «Método de Delta»,
options=[«Close Up/Down», «Proporcional por vela»])
maLen = input.int(20, «Media del CVD», minval=1)
showDelta = input.bool(true, «Mostrar Delta por barra (histograma)»)
resetMode = input.string(«Ninguno», «Reseteo del CVD»,
options=[«Ninguno», «Diario», «Semanal», «Mensual»])

// ——— Delta por barra
float delta = na
if method == «Close Up/Down»
delta := close > close[1] ? volume : close < close[1] ? -volume : 0.0
else
rng = high – low
w = rng != 0 ? (close – open) / rng : 0.0
w := math.max(-1.0, math.min(1.0, w)) // acotar [-1, 1]
delta := volume * w

// ——— Flags de reseteo (convierte a booleano con != 0)
resetDaily = ta.change(time(«D»)) != 0
resetWeekly = ta.change(time(«W»)) != 0
resetMonthly = ta.change(time(«M»)) != 0

doReset = (resetMode == «Diario» and resetDaily) or
(resetMode == «Semanal» and resetWeekly) or
(resetMode == «Mensual» and resetMonthly)

// ——— CVD acumulado (con reseteo opcional)
var float cvd = na
cvd := na(cvd[1]) or doReset ? delta : cvd[1] + delta

// ——— Media del CVD (señal)
cvdMa = ta.sma(cvd, maLen)

// ——— Plots
plot(0, title=»Cero», color=color.gray)
cvdColor = cvd >= cvdMa ? color.new(color.teal, 0) : color.new(color.red, 0)
plot(cvd, title=»CVD», color=cvdColor, linewidth=2)
plot(cvdMa, title=»Media», color=color.new(color.gray, 50), linewidth=2)

plot(showDelta ? delta : na, title=»Delta por barra»,
style=plot.style_histogram, color=color.new(color.blue, 0), linewidth=2)

// ——— Señales/Alertas opcionales
crossUp = ta.crossover(cvd, cvdMa)
crossDown = ta.crossunder(cvd, cvdMa)

plotshape(series=crossUp, title=»CVD cruza ↑ media»,
style=shape.triangleup, location=location.bottom, size=size.tiny, color=color.teal, text=»CVD↑MA»)
plotshape(series=crossDown, title=»CVD cruza ↓ media»,
style=shape.triangledown, location=location.top, size=size.tiny, color=color.red, text=»CVD↓MA»)

alertcondition(crossUp, «CVD cruza arriba de su media», «CVD > media»)
alertcondition(crossDown, «CVD cruza abajo de su media», «CVD < media»)

 

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.