Systemicalpha

Negative Volume Index

systemic:core-nviIndicatorsfunction1 cr

Inputs

NameTypeDescription
PricefloatarrayThe **closing price** for each period, used to calculate price percentage changes on low-volume days.
VolumefloatarrayThe **trading volume** for each period, used to determine whether NVI should update.

Outputs

NameTypeDescription
NVIfloatarrayThe cumulative **Negative Volume Index** value, starting at 1000 and updating only on days when volume decreases.

The Negative Volume Index (NVI) is a cumulative indicator that tracks price changes exclusively on days when trading volume decreases from the previous period. Developed by Paul Dysart in the 1930s and later refined by Norman Fosback, NVI operates on a powerful premise: "smart money" (informed, institutional investors) tends to trade on low-volume days, while the "crowd" dominates high-volume sessions.


The Core Formula

NVIt={NVIt−1+(Pt−Pt−1Pt−1)×NVIt−1if Vt<Vt−1NVIt−1if Vt≥Vt−1\text{NVI}_t = \begin{cases} \text{NVI}_{t-1} + \left(\dfrac{P_t - P_{t-1}}{P_{t-1}}\right) \times \text{NVI}_{t-1} & \text{if } V_t < V_{t-1} \\[10pt] \text{NVI}_{t-1} & \text{if } V_t \geq V_{t-1} \end{cases}

Where:

  • NVIt\text{NVI}_t = Negative Volume Index at time tt
  • PtP_t = Closing price at time tt
  • VtV_t = Volume at time tt

Key insight: The NVI only updates when today's volume is lower than yesterday's. On high-volume days, the NVI remains flat—essentially "ignoring" the noise of crowd-driven price movements.


How It Works

flowchart TD
    START([New Trading Period]) --> VOL{Volume Today<br/>vs Yesterday?}
    
    VOL -->|Volume Decreased| CALC[Calculate Price<br/>% Change]
    CALC --> UPDATE[Add % Change × NVI<br/>to Previous NVI]
    UPDATE --> RESULT([New NVI Value])
    
    VOL -->|Volume Same<br/>or Increased| HOLD[NVI Remains<br/>Unchanged]
    HOLD --> FLAT([NVI = Previous NVI])
    
    style VOL fill:#2563eb,color:#fff
    style CALC fill:#059669,color:#fff
    style UPDATE fill:#059669,color:#fff
    style HOLD fill:#dc2626,color:#fff
    style RESULT fill:#059669,color:#fff
    style FLAT fill:#6b7280,color:#fff

The "Smart Money" Theory

The NVI is built on a fascinating behavioral hypothesis:

Volume ConditionWho's ActiveNVI Response
Volume DownInformed investors ("smart money")Updates with price change
Volume UpRetail crowd ("noise traders")Ignores price change

The reasoning: when volume is low, the general public is less engaged. Price movements during these quiet periods are more likely driven by institutional investors who have access to better information or analysis. Conversely, high-volume days often reflect emotional crowd behavior—FOMO during rallies, panic during selloffs—which the NVI filters out.


The Fosback 96% Signal

Norman Fosback, in his influential book Stock Market Logic, discovered a remarkable asymmetry in NVI signals when combined with a 255-day Exponential Moving Average (EMA):

flowchart LR
    NVI[NVI Value] --> COMPARE{NVI vs<br/>255-Day EMA?}
    
    COMPARE -->|NVI Above EMA| BULL[🟢 BULLISH<br/>96% probability<br/>of bull market]
    
    COMPARE -->|NVI Below EMA| BEAR[🔴 BEARISH<br/>53% probability<br/>of bear market]
    
    style BULL fill:#059669,color:#fff
    style BEAR fill:#dc2626,color:#fff
    style COMPARE fill:#2563eb,color:#fff
SignalConditionHistorical Probability
Strong BullishNVI > 255-day EMA96% chance of bull market
Weak BearishNVI < 255-day EMAOnly 53% chance of bear market

This asymmetry is striking: the bullish signal is far more reliable than the bearish one. This makes NVI particularly valuable for confirming uptrends rather than predicting downturns.

Why 255 days? This approximates one trading year (roughly 252 trading days), providing a long-term smoothing that filters out short-term fluctuations.


Practical Calculation Example

DayClose ($)VolumeVolume ChangePrice % ChangeNVI Value
1100.00500,000——1000.00
2102.00450,000↓ Decreased+2.00%1020.00
3101.00480,000↑ Increased—1020.00
4103.50420,000↓ Decreased+2.48%1045.25
5102.00550,000↑ Increased—1045.25

Observations:

  • Day 2: Volume dropped, so NVI increases by 2% (tracking the price gain)
  • Day 3: Volume increased, so NVI stays at 1020.00 (ignoring the -0.98% price drop)
  • Day 4: Volume dropped again, so NVI rises by 2.48%
  • Day 5: Volume spiked up, so the -1.45% price drop is ignored

Notice how the NVI captures the "quiet accumulation" on Days 2 and 4 while filtering out the volatile, high-volume sessions.


Trading Signals

Primary Signals

Signal TypeConditionInterpretation
EMA Crossover (Bullish)NVI crosses above 255-day EMASmart money is accumulating; strong bull signal
EMA Crossover (Bearish)NVI crosses below 255-day EMASmart money may be distributing (less reliable)
Rising NVINVI trending upwardPrice gains on quiet days = institutional accumulation
Falling NVINVI trending downwardPrice losses on quiet days = institutional distribution

Divergence Analysis

flowchart TB
    subgraph BULLISH ["🟢 Bullish Divergence"]
        A1[Price Falling] --> A2[But NVI Rising]
        A2 --> A3[Smart money accumulating<br/>despite price decline]
        A3 --> A4[Potential upward reversal]
    end
    
    subgraph BEARISH ["🔴 Bearish Divergence"]
        B1[Price Rising] --> B2[But NVI Falling]
        B2 --> B3[Smart money distributing<br/>despite price increase]
        B3 --> B4[Potential downward reversal]
    end
    
    style BULLISH fill:#d1fae5,stroke:#059669
    style BEARISH fill:#fee2e2,stroke:#dc2626

NVI vs. Positive Volume Index (PVI)

The NVI is often paired with its counterpart, the Positive Volume Index (PVI), which updates only on high-volume days:

IndicatorUpdates WhenTracksBest For
NVIVolume decreases"Smart money" activityConfirming major trends
PVIVolume increases"Crowd" activityGauging retail sentiment

When used together, NVI and PVI can reveal whether institutional and retail investors are aligned or diverging—a powerful insight for understanding market dynamics.


Real-World Applications

1. Long-Term Trend Confirmation

The NVI excels at confirming whether a bull market has genuine institutional support. If prices are rising but NVI is flat or falling, it suggests the rally may be driven by retail speculation rather than smart money accumulation—a potential warning sign.

2. Sector Rotation Detection

By applying NVI across different sectors or asset classes, you can identify where institutional capital is quietly flowing. A rising NVI in a sector that hasn't yet shown price strength may signal early accumulation.

3. Market Timing for Long-Term Investors

Given the 96% bullish probability when NVI is above its 255-day EMA, long-term investors can use this as a "stay invested" signal. This helps avoid premature exits during corrections that don't have institutional selling behind them.


Limitations and Considerations

LimitationDescription
Ignores High-Volume MovesMajor price movements on high-volume days are invisible to NVI
Lagging NatureThe 255-day EMA creates significant lag in signal generation
Asymmetric ReliabilityBearish signals (53%) are far less reliable than bullish ones (96%)
Volume Definition VariesIn cryptocurrency markets, "volume" interpretation differs from equities
Whipsaws PossibleDuring sideways markets, the EMA crossover can generate false signals

Missing Data (Closed-Market Bars)

NVI recurses over the last observed volume and close, not the previous grid slot: a weekend or holiday gap is bridged, so Friday compares directly against the following Monday instead of permanently voiding every Monday's signal.

A slot is None (never a fabricated hold or forward-filled 0% change) whenever it cannot be decided:

Slot conditionNVI output
Volume missingNone — the volume comparison itself is undecidable
Volume known, lower than the last observed volume, but price or a prior observed close is missingNone — the percent-change is undecidable
Volume known, same/higher than the last observed volumePrevious NVI carried forward (price not needed)

A missed update is a documented residual, not an error: NVI resumes from its last computed value at the next fully-decidable bar. The first slot with an observed volume seeds NVI at 1000; every slot before it is None.


Indicator Profile

quadrantChart
    title NVI Indicator Profile
    x-axis Low Popularity --> High Popularity
    y-axis Low Reliability --> High Reliability
    quadrant-1 High potential  
    quadrant-2 Established leaders
    quadrant-3 Niche tools
    quadrant-4 Popular but risky
    NVI - Stocks: [0.40, 0.75]
    NVI - Crypto: [0.20, 0.45]

Profile Dimensions

DimensionStocksCryptoExplanation
Popularity0.400.20Classic indicator from 1930s with dedicated following among institutional analysts. Less known in retail crypto trading.
Reliability0.750.45The Fosback 96% signal provides strong reliability for stocks. Cryptocurrency volume data is less standardized, reducing reliability.
ComplexityModerateModerateConditional update logic requires understanding volume-price relationships. The "smart money" theory is intuitive once explained.
VersatilityModerateLowPrimarily designed for long-term trend confirmation. Less applicable to short-term crypto trading strategies.
Recent InterestStableGrowingEstablished indicator with consistent following. Crypto traders beginning to explore volume-based indicators.

Further Reading

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