indicator · own pane · open source

Klinger Volume Oscillator

Deepwick · @deepwickv1Updated 2 Oct 2026▲ 0 users
Running…
Loading chart…

About

Klinger Volume Oscillator is the difference between fast and slow EMAs of volume × (high - low), with a signal line — designed to surface accumulation / distribution swings.

  • KVO crossing above the signal = bullish volume thrust.
  • KVO crossing below the signal = bearish volume thrust; divergences with price are the classic setups.

Source code

//@version=5
indicator("Klinger Volume Oscillator", overlay=false)
fastLen = input.int(34, "Fast length", minval=2, maxval=200)
slowLen = input.int(55, "Slow length", minval=4, maxval=300)
sigLen = input.int(13, "Signal length", minval=2, maxval=100)
kvo = ta.rma(volume * (high - low), fastLen) - ta.rma(volume * (high - low), slowLen)
sig = ta.rma(kvo, sigLen)
hline(0, "Zero", color=color.gray)
p_KVO = plot(kvo, "KVO", color=color.blue, linewidth=2)
p_Signal = plot(sig, "Signal", color=color.red, linewidth=2)
alertcondition(ta.crossover(kvo, sig), "KVO bullish cross", "Klinger Volume Oscillator crossed above its signal")
alertcondition(ta.crossunder(kvo, sig), "KVO bearish cross", "Klinger Volume Oscillator crossed below its signal")

Comments

No comments yet.

Sign in to comment.