Systemicalpha

Volume Delta Divergence

systemic:core-vddIndicatorsfunction1 cr

Inputs

NameTypeDescription
Windowinteger- **Description**; The number of bars actually observed (not calendar slots) over which the moving averages of the price and Volume Delta are calculated. A market-closed gap does not count toward the window — it is skipped, and the window reaches further back to find N genuine data points.
Pricefloatarray- **Description**; A list of price data points, typically representing the closing prices of an asset over a specified period.
Bid Volumefloatarray- **Description**; A list of volumes representing the total number of shares or contracts traded at the bid price (the highest price a buyer is willing to pay) over a specified period.
Ask Volumefloatarray- **Description**; A list of volumes representing the total number of shares or contracts traded at the ask price (the lowest price a seller is willing to accept) over a specified period.

Outputs

NameTypeDescription
VDDfloatarray- The VDD indicator provides a numerical value representing the volume delta for a given period. This value can be positive (indicating net buying) or negative (indicating net selling).

Volume Delta Divergence measures the difference between buying pressure (ask volume) and selling pressure (bid volume), then identifies divergences between this delta and price movement.

Volume Delta=Ask Volume−Bid VolumeVolume\ Delta = Ask\ Volume - Bid\ Volume

How It Works

flowchart TD
    subgraph Input["Market Data"]
        ASK["Ask Volume (buys at ask)"]
        BID["Bid Volume (sells at bid)"]
        P["Price"]
    end
    
    subgraph Delta["Volume Delta"]
        DIFF["Delta = Ask - Bid"]
        MA1["Delta MA (smoothed)"]
    end
    
    subgraph Price["Price Analysis"]
        PMA["Price MA"]
    end
    
    subgraph Divergence["Divergence Detection"]
        COMP["Compare trends"]
        DIV["Identify divergence"]
    end
    
    ASK & BID --> DIFF --> MA1
    P --> PMA
    MA1 & PMA --> COMP --> DIV

Interpreting Volume Delta

DeltaInterpretation
Positive (Ask > Bid)Buying pressure dominates
Negative (Bid > Ask)Selling pressure dominates
Genuinely near zeroBalanced market

Missing Data: A gap in price, ask volume, or bid volume is never shown as zero. Zero is a real, computed value (balanced buying/selling pressure); a gap in the underlying data is shown as a gap in the indicator, never mistaken for "balanced."


Divergence Signals

flowchart TD
    subgraph BullDiv["Bullish Divergence"]
        BP["Price: Making new lows"]
        BD["Delta: Making higher lows"]
        BS["Signal: Sellers exhausting"]
    end
    
    subgraph BearDiv["Bearish Divergence"]
        BeP["Price: Making new highs"]
        BeD["Delta: Making lower highs"]
        BeS["Signal: Buyers exhausting"]
    end
PatternPriceDeltaImplication
Bullish DivergenceLower lowsHigher lowsPotential reversal up
Bearish DivergenceHigher highsLower highsPotential reversal down
ConfirmationSame directionSame directionTrend continuation

Trading Applications

1. Trend Confirmation

Price TrendDelta TrendReading
UpPositive/risingStrong uptrend
DownNegative/fallingStrong downtrend
UpNegative/fallingWeak rally — caution
DownPositive/risingWeak selloff — caution

2. Reversal Detection

Watch for divergences at:

  • Key support/resistance levels
  • After extended trends
  • Near round numbers or psychological levels

Data Requirements

Note: Volume Delta requires bid/ask level data (Level 2 or trade-by-trade data), which may not be available for all markets.

Data TypeAvailability
ForexOften available
FuturesUsually available
StocksVaries by broker/exchange
CryptoMost exchanges provide

Missing Data

VDD needs price, ask volume, and bid volume together on every bar it uses — a bar missing any one of the three is skipped entirely (dropped from both the price average and the delta average), never treated as zero. The Window setting means N bars actually observed, not N calendar slots: on a market-closed gap (holiday, weekend, no data), the window keeps counting back through real bars, so a 20-bar window is always an average of 20 genuine data points — it simply reaches further back in time to find them. Until enough observed bars accumulate (or on a bar itself missing an input), the indicator has no value yet — this shows as a gap, not a misleading zero.


Advantages

  • Order flow insight — Shows actual buying vs selling pressure
  • Early signals — Divergences can precede price reversals
  • Confirmation tool — Validates price movements
  • Market microstructure — Reveals hidden market dynamics

Disadvantages

  • Data intensive — Requires detailed bid/ask volume
  • Lagging smoothing — Moving averages add delay
  • Interpretation varies — Divergences can be subjective
  • Not universal — Limited data availability

Further Reading


Indicator Assessment

%%{init: {'theme': 'base', 'themeVariables': { 'cScale0': '#2563eb', 'cScale1': '#7c3aed'}}}%%
quadrantChart
    title VDD Indicator Assessment
    x-axis Low Complexity --> High Complexity
    y-axis Low Reliability --> High Reliability
    quadrant-1 Complex & Reliable
    quadrant-2 Simple & Reliable
    quadrant-3 Simple & Unreliable
    quadrant-4 Complex & Unreliable
    Stocks: [0.65, 0.55]
    Crypto: [0.60, 0.60]
DimensionStocksCryptoNotes
Popularity4/106/10Niche in stocks; more popular in crypto where bid/ask volume data is readily available
Reliability5/106/10Requires quality bid/ask data; signals can be noisy without smoothing
Complexity6/106/10Moderate—requires understanding of order flow concepts and divergence analysis
Versatility5/107/10Limited by data availability in stocks; crypto exchanges often provide detailed order book data
Recent Interest5/107/10Growing interest in crypto day-trading circles; footprint charts gaining traction
Rendering diagrams...
© 2026 WanoLabs. All rights reservedAlpha build v0.1.5