Log in to see Cloud of Tags

Wealth-Lab Wiki

KVO (Klinger Volume Oscillator)


KVO Indicator Documentation


public KVO(Bars bars, int period1, period2, string description)
public static KVOSeries(Bars bars, int period1, period2)

Parameter Description

barsA Bars object
period1The length of the faster EMA of the volume force
period2The length of the slower EMA of the volume force


KVO (developed by Stephen Klinger) is used to determine long-term trends of money flow while remaining sensitive enough to short-term fluctuations. This oscilator compares the volume flowing in and out of a security to price movement.

The oscillator is used together with the Trigger line which is a 13-day exponential moving average of the KVO. It's also possible to build a histogram as the difference between the Klinger Volume Oscillator and its trigger line, and the resulting interpretation will be similar to that of the Moving Average Convergence Divergence (MACD).


  • KVO can be used to confirm the trend or to detect possible trend shifts. For example, a buy signal is generated when the KVO crosses above its trigger line from below after a big drop below the zero level, and a sell signal is generated when the KVO crosses below its trigger line after reaching unusual high levels above zero.
  • A divergence between the close price and the KVO can also generate trading signals, identifying when price and volume are not confirming the direction of the move. A bullish signal is detected when KBO is heading upward while the price of the security continues to fall.


using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
using Community.Indicators;

namespace WealthLab.Strategies { public class KlingerDemo : WealthScript { protected override void Execute() { int FastX = 34; int SlowX = 55; int TrigLen = 13; KVO kvo = KVO.Series( Bars,FastX,SlowX ); EMA Trigger = EMA.Series( kvo, TrigLen, EMACalculation.Modern ); Trigger.Description = "Trigger"; ChartPane kvoPane = CreatePane( 30, true, false ); PlotSeries( kvoPane, kvo, Color.Red, LineStyle.Solid, 1 ); PlotSeries( kvoPane, Trigger, Color.Blue, LineStyle.Solid, 1 ); } } }

Important Disclaimer: The information provided by Wealth-Lab is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security.  The owner of Wealth-Lab.com assumes no liability resulting from the use of the material contained herein for investment purposes. By using this web site, you agree to the terms of this disclaimer and our Terms of Use.

ScrewTurn Wiki. Some of the icons created by FamFamFam.