On Balance Volume (OBV)

The On Balance Volume (OBV) indicator was developed by Joseph Granville and is explained in his book Granville's New Strategy of Daily Stock Market Timing for Maximum Profit.

On Balance Volume attempts to measure the level of accumulation or distribution by comparing volume to price movements. Volume is added to the indicator if closing price moves up and subtracted if closing price moves down. No adjustment is made if closing price is unchanged.

Trading Signals

On Balance Volume should be used in conjunction with other indicators.

Ranging market

During a ranging market watch for a rising or falling On Balance Volume:

  • Rising OBV warns of an upward breakout.
  • Falling OBV warns of a downward breakout.

Trending Market

A rising On Balance Volume confirms an up-trend and a falling OBV confirms a down-trend.

  • Bullish divergence between OBV and price warns of market bottoms.
  • Bearish divergence between OBV and price warns of market tops.

Example

Intel Corporation plotted with   On Balance Volume.

Intel On Balance Volume

Mouse over chart captions to display trading signals.

  1. Price trades in a range during March before a bearish divergence occurs. The signal is fairly weak - price makes an equal high while On Balance Volume makes a lower high.
  2. The signal at [1] appears to have been incorrect - price rises to a higher peak - but a far stronger triple divergence (price makes a higher high while OBV makes a lower high) signals weakness.
  3. A further bearish divergence occurs - price makes an equal high and OBV makes a lower high. Shortly thereafter price falls sharply.

Setup

See Indicator Panel for directions on how to set up On Balance Volume. To alter the default settings - Edit Indicator Settings.

Formula

Steps in the On Balance Volume (OBV) calculation are as follows:

  1. If Close for the period is higher than the previous Close:
               OBV = OBV [previous period] + Volume [current period]
  2. If Close for the period is lower than the previous Close:
               OBV = OBV [previous period] - Volume [current period]
  3. If Close for the period is equal to the previous Close:
               OBV = OBV [previous period]