On-Balance Volume (OBV)

Popularized by Joseph Granville, On-balance Volume is a rolling accumulation of volume based on Close price direction. [Discuss] 💬

chart for On-Balance Volume (OBV)

// C# usage syntax
IEnumerable<ObvResult> results =

// usage with optional overlay SMA of OBV (shown above)
IEnumerable<ObvResult> results =


smaPeriods int - Optional. Number of periods (N) in the moving average of OBV. Must be greater than 0, if specified.

Historical quotes requirements

You must have at least two historical quotes to cover the warmup periods; however, since this is a trendline, more is recommended.

quotes is a collection of generic TQuote historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.




Date DateTime - Date from evaluated TQuote

Obv double - On-balance Volume

ObvSma double - Moving average (SMA) of OBV based on smaPeriods periods, if specified

🚩 Warning: absolute values in OBV are somewhat meaningless. Use with caution.


See Utilities and helpers for more information.


Results can be further processed on Obv with additional chain-enabled indicators.

// example
var results = quotes

This indicator must be generated from quotes and cannot be generated from results of another chain-enabled indicator or method.