Negative Volume Index

The Negative Volume Index (NVI) is a cumulative indicator that tracks price changes on days when trading volume decreases from the previous day. Based on the theory that retail investors make up a larger proportion of trading activity on days with declining volume, NVI focuses exclusively on these lower-volume periods while ignoring price movements on days when volume increases.

Developed by Paul Dysart in the 1930s and popularized by Norman Fosback in the 1970s, NVI is designed to identify trends driven by retail investor activity. The indicator assumes that institutional "smart money" is more active during rising volume periods, while retail traders dominate on days with falling volume. This makes NVI complementary to the Positive Volume Index (PVI).

NVI works as a cumulative measure, meaning it maintains a running total that updates only on days when volume decreases. When volume falls, the indicator calculates the percentage change in price and adds it to the previous NVI value. When volume stays flat or increases, the NVI value remains unchanged. This selective updating creates a trend line that reflects price movements during periods of presumed retail investor activity.

What It Measures

The Negative Volume Index measures cumulative price changes that occur specifically on days when trading volume decreases from the previous day. It captures the percentage price change multiplied by the previous NVI value, creating a running total that reflects trends during declining volume periods.

When to Use

Interpretation

Usage Notes

Unlike most technical indicators, NVI doesn't require period selection or smoothing parameters. It's a pure cumulative measure that responds only to volume decreases. The starting value (typically 0.0) serves as the baseline, and all subsequent values represent the accumulated effect of price changes on declining-volume days.

The indicator is most powerful when:

Norman Fosback's research in the 1970s found that when NVI was above its 255-day moving average, the probability of a bull market was approximately 96%. This made NVI one of the most reliable long-term market indicators, though it's more suited for position traders and investors than short-term traders.

Default Usage

use rust_ti::strength_indicators::bulk::negative_volume_index;

pub fn main() {
    // fetch the data in your preferred way
    // let close = vec![...];  // close prices
    // let volume = vec![...]; // volume data
    
    let previous_nvi = 0.0;  // starting value for first calculation
    let nvi = negative_volume_index(&close, &volume, previous_nvi);
    println!("Negative Volume Index: {:?}", nvi);
}
import pytechnicalindicators as pti

# Negative Volume Index calculation
previous_nvi = 0.0  # starting value for first calculation
nvi = pti.strength_indicators.bulk.negative_volume_index(
    close, volume, previous_nvi
)
print("Negative Volume Index:", nvi)
import init, { 
    strength_bulk_negativeVolumeIndex
} from 'https://cdn.jsdelivr.net/npm/ti-engine@latest/dist/web/ti_engine.js';

await init();

// fetch the data in your preferred way
// const close = [...];  // close prices
// const volume = [...]; // volume data

const previousNvi = 0.0;  // starting value for first calculation
const nvi = strength_bulk_negativeVolumeIndex(close, volume, previousNvi);
console.log("Negative Volume Index:", nvi);

Interactive Chart

Use the interactive playground below to explore how different parameters affect the indicator's behavior.