Cumulative Volume Delta Divergence
systemic:core-cvddIndicatorsfunction1 crInputs
| Name | Type | Description |
|---|---|---|
| Volume | floatarray | The trading volume for each period—the number of shares, contracts, or units traded. |
| Delta | floatarray | The price change within each period, typically calculated as **Close - Open**. |
Outputs
| Name | Type | Description |
|---|---|---|
| Cvdd | floatarray | A continuous numerical series representing the cumulative volume-weighted price change over time. |
The Cumulative Volume Delta module computes a running total of volume-weighted price changes, revealing the aggregate buying and selling pressure over time. This foundational volume indicator is widely used to identify divergences between price and volume—often a harbinger of trend reversals.
The Core Formula
At its heart, CVDD multiplies each period's volume by its price change (delta), then accumulates these values:
Where:
- is the trading volume at period
- (the price change within that period)
Calculation Flow
flowchart LR
V["Volume Data"] --> M["Multiply"]
D["Delta (Close - Open)"] --> M
M --> C["Cumulative Sum"]
C --> CVD["CVD Output"]
Each period's contribution tells us:
- Positive: Close > Open and high volume → Strong buying pressure added
- Negative: Close < Open and high volume → Strong selling pressure added
- Near zero: Either small price change or low volume → Minimal impact
Missing Bars
A period with no volume or delta data (a closed market, a data gap) contributes nothing — it is skipped, not treated as a zero-volume bar. The running total resumes unchanged from its last valid value once data resumes, so a gap leaves a permanent level offset rather than a reset: the CVD level itself is only meaningful relative to its own history, and a gap does not distort the trend that follows it.
Understanding the Output
The CVDD output is a continuous line that represents net accumulated buying/selling pressure:
| CVD Trend | Interpretation |
|---|---|
| Rising | Buyers are in control—volume is supporting upward price moves |
| Falling | Sellers are dominant—volume is confirming downward pressure |
| Flat | Equilibrium—buyers and sellers roughly balanced |
| Rising while price falls | Hidden accumulation—potential bullish reversal |
| Falling while price rises | Hidden distribution—potential bearish reversal |
The last two scenarios are CVD divergences—the most actionable signals this indicator provides.
Spotting Divergences
Divergence occurs when CVD and price move in opposite directions. In Systemic, you can detect divergences by:
- Connecting a price source to one input of a comparison module
- Connecting CVDD output to another
- Using trend or correlation modules to identify when they diverge
flowchart TD
subgraph Inputs["Data Sources"]
Price["Price (Close)"]
Vol["Volume"]
Delta["Delta (Close - Open)"]
end
subgraph CVDD["CVDD Calculation"]
CVDMod["CVDD Module"]
end
subgraph Analysis["Divergence Detection"]
MA1["SMA of Price"]
MA2["SMA of CVD"]
Corr["Correlation"]
end
Vol --> CVDMod
Delta --> CVDMod
Price --> MA1
CVDMod --> MA2
MA1 --> Corr
MA2 --> Corr
Corr --> Signal["Divergence Signal: Low/Negative Correlation"]
Divergence Types
| Type | Price Action | CVD Action | Signal |
|---|---|---|---|
| Bullish Divergence | Making lower lows | Making higher lows | Potential upward reversal |
| Bearish Divergence | Making higher highs | Making lower highs | Potential downward reversal |
| Bullish Hidden | Making higher lows | Making lower lows | Continuation of uptrend |
| Bearish Hidden | Making lower highs | Making higher highs | Continuation of downtrend |
Why Volume Matters
Price tells you what happened. Volume tells you how committed the market is to that move.
Consider two identical 5% price increases:
- Scenario A: On 10× average volume → Strong conviction, likely sustainable
- Scenario B: On 0.5× average volume → Weak conviction, possibly a trap
CVD captures this nuance by weighting each price move by its volume. A rally on declining CVD warns that fewer participants are driving the move—a classic distribution pattern seen before reversals.
Practical Applications
1. Breakout Confirmation
When price breaks through resistance, check CVD:
- CVD rising with breakout → Genuine breakout with volume support
- CVD flat or falling → Potential false breakout—wait for confirmation
2. Accumulation/Distribution Detection
Smart money often accumulates positions during ranges:
- Range-bound price + Rising CVD → Accumulation (bullish)
- Range-bound price + Falling CVD → Distribution (bearish)
3. Trend Strength Assessment
During established trends:
- Price trending up + CVD trending up → Healthy trend
- Price trending up + CVD flattening → Trend losing steam
Cryptocurrency Considerations
In crypto markets, CVD has unique characteristics:
| Factor | Implication |
|---|---|
| 24/7 markets | CVD accumulates continuously without overnight gaps |
| High volatility | Larger absolute CVD swings; consider normalizing |
| Wash trading | On some exchanges, volume may be inflated—use trusted data sources |
| Low liquidity altcoins | CVD can be distorted by single large orders |
For reliable crypto CVD analysis:
- Use aggregated volume from reputable exchanges
- Compare CVD patterns across multiple exchanges
- Focus on major pairs (BTC, ETH) where volume data is more trustworthy
Advantages and Limitations
Advantages
- Volume insight: Reveals commitment behind price moves
- Divergence detection: Early warning of potential reversals
- Universal applicability: Works on any asset with volume data
- No parameters: Simple to compute, no lookback window to optimize
Limitations
- Lagging by nature: Cumulative indicators smooth but also delay signals
- Volume quality dependency: Garbage in, garbage out—unreliable volume = unreliable CVD
- No magnitude threshold: Doesn't tell you how much divergence is significant
- Open/Close simplification: Uses single delta per period; intrabar action is lost
Comparison with Related Indicators
| Indicator | What It Measures | Key Difference |
|---|---|---|
| CVD (CVDD) | Cumulative volume × price change | Weights volume by direction and magnitude |
| OBV (On-Balance Volume) | Cumulative volume by direction | Binary: adds all volume or subtracts all |
| Accumulation/Distribution | Volume × close position in range | Considers where close falls within high-low range |
| Money Flow Index | RSI of typical price × volume | Oscillator bounded 0-100, mean-reverting |
CVDD offers a middle ground: more nuanced than OBV's binary approach, but simpler than indicators requiring high/low data.
Data Alignment in Systemic
When connecting inputs to the CVDD module, Systemic automatically aligns your data:
| Scenario | Volume Source | Delta Source | Behavior |
|---|---|---|---|
| Both from same source | BTC 1H volume | BTC 1H delta | Direct calculation |
| Different frequencies | BTC 1H volume | BTC 15m delta | Both upsampled to finer frequency |
| Different lengths | 100 points | 150 points | Shorter series padded by repeating last value |
Critical Note
The Volume and Delta inputs must correspond to the same time periods. If you connect volume from one asset and delta from another, or mismatched timeframes, the output will be mathematically valid but semantically meaningless.
Indicator Assessment
%%{init: {"themeVariables": {"cScale0": "#4F46E5", "cScale1": "#059669"}}}%%
quadrantChart
title CVD Indicator Assessment
x-axis Low --> High
y-axis Low --> High
quadrant-1 High Popularity & Reliability
quadrant-2 High Reliability & Low Popularity
quadrant-3 Low Reliability & Popularity
quadrant-4 High Popularity & Low Reliability
"Traditional Markets": [0.70, 0.80]
"Cryptocurrency": [0.60, 0.55]
| Dimension | Stocks/Macro | Crypto | Explanation |
|---|---|---|---|
| Popularity | ⭐⭐⭐⭐ | ⭐⭐⭐ | Well-established in futures and equity trading. Gaining traction in crypto but less universal than basic volume analysis. |
| Reliability | ⭐⭐⭐⭐ | ⭐⭐⭐ | Reliable with quality exchange data. Crypto reliability varies significantly by exchange and asset. |
| Complexity | ⭐⭐ | ⭐⭐ | Simple cumulative calculation, but requires understanding of volume-price relationships for proper interpretation. |
| Versatility | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Applicable across timeframes and asset classes. Works best on liquid instruments with reliable volume. |
| Recent Interest | ⭐⭐⭐ | ⭐⭐⭐⭐ | Steady interest in traditional markets. Growing crypto adoption as traders seek institutional-grade volume analysis. |
Further Reading
- LuxAlgo: Cumulative Volume Delta Explained
- TradingView: Cumulative Volume Delta
- Investopedia: On-Balance Volume
- StockCharts: Accumulation/Distribution
For best results, use CVDD with other indicators, robust risk management, and always backtest your strategy before live trading.