Klinger Volume Oscillator

Created by Stephen Klinger, the Klinger Volume Oscillator depicts volume-based trend reversal and divergence between short and long-term money flow. [Discuss] 💬

chart for Klinger Volume Oscillator

// C# usage syntax
IEnumerable<KvoResult> results =
  quotes.GetKvo(shortPeriods, longPeriods, signalPeriods);


fastPeriods int - Number of lookback periods (F) for the short-term EMA. Must be greater than 2. Default is 34.

slowPeriods int - Number of lookback periods (L) for the long-term EMA. Must be greater than F. Default is 55.

signalPeriods int - Number of lookback periods for the signal line. Must be greater than 0. Default is 13.

Historical quotes requirements

You must have at least L+100 periods of quotes to cover the warmup periods. Since this uses a smoothing technique, we recommend you use at least L+150 data points prior to the intended usage date for better precision.

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.



Convergence warning: The first L+150 periods will have decreasing magnitude, convergence-related precision errors that can be as high as ~5% deviation in indicator values for earlier periods.


Date DateTime - Date from evaluated TQuote

Oscillator double - Klinger Oscillator

Signal double - EMA of Klinger Oscillator (signal line)


See Utilities and helpers for more information.


Results can be further processed on Kvo 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.