Systemicalpha

Cumulative Volume Delta Divergence

systemic:core-cvddIndicatorsfunction1 cr

Inputs

NameTypeDescription
VolumefloatarrayThe trading volume for each period—the number of shares, contracts, or units traded.
DeltafloatarrayThe price change within each period, typically calculated as **Close - Open**.

Outputs

NameTypeDescription
CvddfloatarrayA 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:

CVDt=∑i=1tVolumei×Δi\text{CVD}_t = \sum_{i=1}^{t} \text{Volume}_i \times \Delta_i

Where:

  • Volumei\text{Volume}_i is the trading volume at period ii
  • Δi=Closei−Openi\Delta_i = \text{Close}_i - \text{Open}_i (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 TrendInterpretation
RisingBuyers are in control—volume is supporting upward price moves
FallingSellers are dominant—volume is confirming downward pressure
FlatEquilibrium—buyers and sellers roughly balanced
Rising while price fallsHidden accumulation—potential bullish reversal
Falling while price risesHidden 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:

  1. Connecting a price source to one input of a comparison module
  2. Connecting CVDD output to another
  3. 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

TypePrice ActionCVD ActionSignal
Bullish DivergenceMaking lower lowsMaking higher lowsPotential upward reversal
Bearish DivergenceMaking higher highsMaking lower highsPotential downward reversal
Bullish HiddenMaking higher lowsMaking lower lowsContinuation of uptrend
Bearish HiddenMaking lower highsMaking higher highsContinuation 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:

FactorImplication
24/7 marketsCVD accumulates continuously without overnight gaps
High volatilityLarger absolute CVD swings; consider normalizing
Wash tradingOn some exchanges, volume may be inflated—use trusted data sources
Low liquidity altcoinsCVD 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

IndicatorWhat It MeasuresKey Difference
CVD (CVDD)Cumulative volume × price changeWeights volume by direction and magnitude
OBV (On-Balance Volume)Cumulative volume by directionBinary: adds all volume or subtracts all
Accumulation/DistributionVolume × close position in rangeConsiders where close falls within high-low range
Money Flow IndexRSI of typical price × volumeOscillator 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:

ScenarioVolume SourceDelta SourceBehavior
Both from same sourceBTC 1H volumeBTC 1H deltaDirect calculation
Different frequenciesBTC 1H volumeBTC 15m deltaBoth upsampled to finer frequency
Different lengths100 points150 pointsShorter 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]
DimensionStocks/MacroCryptoExplanation
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


For best results, use CVDD with other indicators, robust risk management, and always backtest your strategy before live trading.

Rendering diagrams...
© 2026 WanoLabs. All rights reservedAlpha build v0.1.5