Klinger Oscillator and Volume Force, Worked on Real NSE Data
Klinger Oscillator for Indian traders: the full Volume Force formula, a worked Reliance NSE calculation, settings and a costed Bank Nifty options trade.
Key Takeaways
- 1.The Klinger Oscillator (KVO) signs each day's volume as positive or negative using the trend of the typical price, so it measures buying versus selling pressure, not just raw volume.
- 2.Volume Force (VF) is the engine of the indicator. The full formula is VF = Volume x |2 x ((dm / cm) - 1)| x trend x 100, where dm is the daily high minus low and cm is a running sum of dm.
- 3.The oscillator line is the 34-period EMA of VF minus the 55-period EMA of VF, and a 13-period EMA of that line is the signal line.
- 4.We work a complete VF example below on real Reliance Industries daily data so you can see every number, including a sign flip when the trend changes.
- 5.For Indian F&O traders, KVO is a confirmation tool. F&O profit is taxed as business income at your slab, intraday equity STCG is 20 percent, and STT applies on every leg, so signals must clear costs before they are worth taking.
What the Klinger Oscillator Actually Measures
The Klinger Volume Oscillator, built by Stephen Klinger in 1977, tries to answer one question that price charts alone cannot: is volume flowing in or flowing out. A plain volume bar tells you how many shares changed hands, but not whether buyers or sellers were in control. Klinger fixes this by giving each day's volume a sign. If the day's typical price is higher than the previous day's typical price, the trend is positive and that volume is treated as accumulation. If it is lower, the volume is treated as distribution.
Because it compares a fast 34-period money-flow average against a slower 55-period average, the KVO behaves like a volume-weighted MACD. It is sensitive enough to flag short swings yet smooth enough to hold a view on the larger trend. On liquid NSE names such as Reliance, HDFC Bank, TCS and Infosys, and on index futures like Nifty and Bank Nifty, the signed-volume logic works well because real institutional order flow shows up in the tape. On thin small-caps it is far less reliable, a point we return to under limitations.
The most common mistake traders make is treating the KVO as a price oscillator. It is not. The y-axis is a volume-force number, often in the hundreds of thousands or millions, and the absolute level is meaningless. What matters is the direction, the zero-line crossings and the crossovers with the signal line. Everything below is built around computing that volume-force number correctly.
The Volume Force Formula, Term by Term
Volume Force (VF) is the single building block of the entire indicator. Many websites print a watered-down version that just multiplies price change by volume. That is not the Klinger formula and it will not match what your charting platform plots. The correct expression is:
VF = Volume x | 2 x ( (dm / cm) - 1 ) | x trend x 100. Here trend is +1 if today's (High + Low + Close) is greater than yesterday's, otherwise -1. dm is the daily measurement, High minus Low. cm is the cumulative measurement: if today's trend equals yesterday's trend, cm = previous cm + dm, otherwise cm resets to previous dm + dm.
Let us define each term in plain language. The trend is just a +1 or -1 switch. You add the High, Low and Close to get a typical price, and you check whether it rose or fell from the day before. The dm, daily measurement, is the day's full range, High minus Low, and it represents how much fight there was in the session. The cm, cumulative measurement, is the clever part: as long as the trend keeps pointing the same way, cm keeps accumulating range, which makes the ratio dm/cm shrink as a move matures. When the trend flips, cm resets, which makes the indicator jump and is exactly what gives the KVO its early-reversal sensitivity.
The term | 2 x (dm/cm - 1) | is a multiplier that sits between 0 and 2. When dm equals cm, which happens right after a trend reset, the multiplier is 0, so a single fresh day carries little force. As the trend persists and cm grows much larger than dm, the bracket approaches -1, the absolute value approaches 1, and after the times-two it approaches 2, so mature trends pump out larger force readings. The trailing x 100 is just a scaling constant from Klinger's original work.
Worked Example: Volume Force on Reliance Industries
Numbers make this concrete. Below is an illustrative five-day series for Reliance Industries (RELIANCE) on the NSE. The price levels and volumes are realistic for a large-cap and are used here for teaching only, not as a record of any specific trading session. Watch what happens on Day 4 when the trend flips down and cm resets.
| Day | High | Low | Close | Typical (H+L+C) | Volume |
|---|---|---|---|---|---|
| 1 | 1452.0 | 1440.0 | 1448.0 | 4340.0 | 62,00,000 |
| 2 | 1466.0 | 1450.0 | 1463.0 | 4379.0 | 78,00,000 |
| 3 | 1479.0 | 1461.0 | 1476.0 | 4416.0 | 91,00,000 |
| 4 | 1474.0 | 1455.0 | 1458.0 | 4387.0 | 84,00,000 |
| 5 | 1468.0 | 1449.0 | 1466.0 | 4383.0 | 70,00,000 |
Day 1 is the seed day, so we set its dm as the range and cm equal to dm, and we cannot compute trend yet without a prior day. Day 1: dm = 1452 - 1440 = 12.0, cm = 12.0. We start scoring from Day 2.
Day 2. Typical 4379 is greater than Day 1's 4340, so trend = +1. dm = 1466 - 1450 = 16.0. Trend changed from the undefined seed to +1, so cm resets: cm = previous dm (12) + today dm (16) = 28.0. The ratio dm/cm = 16/28 = 0.5714. Multiplier = |2 x (0.5714 - 1)| = |2 x (-0.4286)| = 0.8571. VF = 78,00,000 x 0.8571 x (+1) x 100 = +66,85,71,429 approximately. Positive, because price and volume are pushing up.
Day 3. Typical 4416 is greater than 4379, so trend = +1, same as Day 2. dm = 1479 - 1461 = 18.0. Trend unchanged, so cm = previous cm (28) + today dm (18) = 46.0. Ratio = 18/46 = 0.3913. Multiplier = |2 x (0.3913 - 1)| = |2 x (-0.6087)| = 1.2174. VF = 91,00,000 x 1.2174 x (+1) x 100 = +1,10,78,26,087 approximately. Larger force, because the uptrend has matured and cm has grown.
Day 4, the reversal. Typical 4387 is less than 4416, so trend = -1. The trend changed from +1 to -1, so cm resets: cm = previous dm (18) + today dm (1474 - 1455 = 19) = 37.0. Ratio = 19/37 = 0.5135. Multiplier = |2 x (0.5135 - 1)| = |2 x (-0.4865)| = 0.9730. VF = 84,00,000 x 0.9730 x (-1) x 100 = -81,73,00,000 approximately. The sign flips negative the moment the typical price turns down, which is the early-warning behaviour traders prize.
Day 5. Typical 4383 is less than 4387, so trend = -1, unchanged. dm = 1468 - 1449 = 19.0. cm = previous cm (37) + today dm (19) = 56.0. Ratio = 19/56 = 0.3393. Multiplier = |2 x (0.3393 - 1)| = 1.3214. VF = 70,00,000 x 1.3214 x (-1) x 100 = -92,50,00,000 approximately. The distribution force is now building. To get the oscillator itself you would feed this VF stream into a 34-period and a 55-period EMA and subtract, but the worked figures above are the part most sources skip.
Notice Reliance only fell from a 1476 close to 1458 on Day 4, a small move, yet the Volume Force swung from strongly positive to strongly negative in one session. That swing, driven by the trend switch and cm reset, is why the KVO can flag distribution before price breaks down.
Turning Volume Force Into the Oscillator and Signal Line
Once you have the daily VF series, the rest is mechanical. You compute a 34-period EMA of VF and a 55-period EMA of VF. The Klinger Oscillator line is the fast EMA minus the slow EMA. Then you take a 13-period EMA of the oscillator line to get the signal line. No charting platform asks you to do this by hand; TradingView, Chartink, Zerodha Kite and Upstox all plot it from the settings 34, 55 and 13.
- Compute trend (+1 or -1) from the change in High + Low + Close.
- Compute dm (High minus Low) and update cm based on whether the trend held or flipped.
- Compute VF = Volume x |2 x (dm/cm - 1)| x trend x 100 for each day.
- Smooth VF with a 34-period EMA and a 55-period EMA.
- Oscillator = 34-EMA minus 55-EMA. Signal = 13-period EMA of the oscillator.
- Read crossovers and zero-line crosses, not the absolute value.
The practical reading is simple. When the oscillator is above zero, net money flow is positive. When it crosses above its signal line, that is a buy trigger; when it crosses below, that is a sell trigger. The strongest setups combine a zero-line cross with a signal-line cross in the same direction, because the trend and the momentum of money flow agree.
Settings and Reading on NSE and BSE
The default 34, 55 and 13 settings, derived from Fibonacci numbers, are a sound starting point on Indian markets and we recommend leaving them alone until you have a clear reason to change. They suit daily charts of Nifty, Bank Nifty and large-cap cash stocks. Intraday option scalpers on the 5-minute or 15-minute chart sometimes shorten to a faster pair, but every reduction increases false signals, so test before you commit real money.
| Timeframe / Instrument | Suggested KVO settings | What it is good for |
|---|---|---|
| Daily, Nifty / Bank Nifty futures | 34 / 55 / 13 (default) | Swing trend and accumulation versus distribution |
| Daily, large-cap cash (Reliance, TCS, HDFC Bank) | 34 / 55 / 13 (default) | Position entries with volume confirmation |
| 15-minute, index options | Faster, e.g. 21 / 34 / 9 | Intraday momentum, expect more noise |
| Weekly, sector leaders | 34 / 55 / 13 (default) | Long-term money-flow trend |
Divergence is where the KVO earns its keep. If Bank Nifty makes a higher high in price but the oscillator makes a lower high, the rally is running on weaker money flow and is suspect. The opposite, price making a lower low while the KVO makes a higher low, often precedes a bounce. Divergence is a warning, not a trigger, so wait for the signal-line crossover before acting.
A Bank Nifty Options Trade Using a KVO Signal
Here is an illustrative, costed example so you can see how a KVO read translates into rupees. Suppose on a Tuesday the KVO on the Bank Nifty hourly chart crosses above its signal line and back above zero while Bank Nifty trades near 52,000. You decide to buy one lot of the weekly 52,000 call. The Bank Nifty lot size is 30. The premium is 320 per unit, so your outlay is 320 x 30 = 9,600 rupees plus charges. Figures are illustrative and not a prediction.
Bank Nifty rallies into Tuesday expiry and your call rises to 540. You exit. Gross gain = (540 - 320) x 30 = 220 x 30 = 6,600 rupees. Now the costs that retail traders forget. On options, STT is charged at 0.15 percent of the premium on the sell side, so STT = 0.0015 x 540 x 30 = about 24.30 rupees. Brokerage at a typical discount-broker flat 20 rupees per executed order on two legs is 40 rupees. Add exchange transaction charges, GST at 18 percent on brokerage plus transaction charges, SEBI fees and stamp duty, which together come to roughly another 30 to 45 rupees on a trade this size.
So your net profit is approximately 3,300 minus about 90 to 95 rupees of total costs, leaving roughly 3,205 to 3,210 rupees. Because options and futures gains are treated as business income, this profit is added to your total income and taxed at your slab rate, not at the 20 percent short-term capital gains rate that applies to intraday equity. A trader in the 30 percent slab keeps about 2,240 rupees after tax. The lesson the KVO trader must internalise is that a clean signal still has to clear costs and tax before it is worth taking, which is why tiny scalps on illiquid weekly strikes rarely pay.
F&O profits are business income taxed at your slab, and if your F&O turnover crosses the audit threshold you may need a tax audit under the Income Tax Act. STT on options sells rose to 0.1 percent of premium from 1 October 2024. Always price a KVO signal net of STT, brokerage, GST and tax before deciding it is tradeable.
Combining the KVO With Other Indicators
The KVO is a confirmation tool, not a standalone system. Its volume basis makes it a natural partner for momentum and trend tools that read price. The pairing logic is to require two independent reasons before you commit capital, so that a single noisy reading does not drag you into a losing trade.
| Pair with | How it confirms a KVO signal |
|---|---|
| RSI | KVO buy cross plus RSI rising out of oversold below 30 strengthens the long case |
| MACD | Both are EMA-difference oscillators; agreement means price momentum and money-flow momentum align |
| VWAP (intraday) | A KVO buy cross while price holds above VWAP confirms intraday demand |
| 20-day moving average | KVO above zero while price holds the 20-DMA filters out counter-trend noise |
A clean checklist on Nifty might read: oscillator above zero, oscillator crossing up through its signal line, RSI turning up from the low 40s, and price above the 20-day moving average. When all four agree you have a high-conviction long; when they conflict you stand aside. Confluence does not guarantee profit, but it materially reduces the rate of false starts that plague single-indicator trading.
Limitations, False Signals and Where It Breaks
The KVO has real blind spots. In a tight, range-bound market the oscillator will whipsaw across its signal line repeatedly, firing buy and sell triggers that each lose a little after costs. On illiquid small-cap and SME stocks the volume input is so erratic, often dominated by a handful of large trades, that the signed-volume logic produces noise rather than information. Gap openings, common around results season and on Bank Nifty expiry days, distort the typical-price comparison and can flip the trend on a single print.
- Avoid the KVO on stocks with thin or lumpy volume; it needs steady, genuine order flow to work.
- Expect whipsaws in sideways markets and add a trend filter such as ADX above 20 before trusting crossovers.
- Treat the absolute oscillator value as meaningless; only direction and crossings carry signal.
- Re-confirm after large overnight gaps, since the typical-price trend can flip on the open.
- Always size positions and set a stop before entry; a volume indicator says nothing about how much to risk.
The disciplined way to use the KVO is to demand that a signal survive your other filters and clear your cost-and-tax hurdle. Logging every KVO-triggered trade in a journal, with the entry reason, the confirming indicators and the net rupee result, is the fastest way to learn which conditions the indicator actually helps you in and which it does not.
Sources and Further Reading
For authoritative data and further reading, refer to Zerodha Varsity, Investopedia and NSE India. Confirm current STT rates, lot sizes and contract specifications on the official source before you trade, since they change. You can also pair this with our RSI guide and the broader technical indicators library.
Sources and Further Reading
For authoritative data and further reading on this topic, refer to Zerodha Varsity, Investopedia and NSE India. Always confirm current rules, rates and contract specifications on the official source before you trade.
Related Topics
Related Articles
Understanding the Vertical Horizontal Filter in Indian Markets
How the VHF spots trending vs ranging Nifty, with real NSE regimes, a worked calculation, option tactics, and Indian F&O tax rules.
RSI 2 Period Strategy for Indian Markets
The RSI(2) mean reversion strategy for Indian markets: 200 DMA filter, exact entry and exit rules, and worked Reliance and Bank Nifty rupee examples.
Understanding Trading Psychology in Indian Markets
Learn trading psychology for Indian markets with a worked Nifty options example showing how fear and greed turned a Rs 3,600 loss into Rs 16,500.
Understanding Short Selling in Indian Markets
How short selling works in India: the intraday-only retail rule, SEBI SLB overnight borrowing with a real Reliance borrow-cost example, F&O shorts and tax.
How to Rebalance Your Portfolio in Indian Markets
How to rebalance your Indian portfolio with the correct post-2024 tax: 20% STCG, 12.5% LTCG above Rs 1.25 lakh, plus a worked Nifty example.
Pair Trading Strategy for Indian Markets
Pair trade TCS and Infosys with real z-score math, lot sizes, rupee P&L, STT and slab-rate tax. A worked, market-neutral guide for Indian traders.
The trading journal built for Indian F&O traders. Track your trades, spot patterns, build discipline.
- Log one trade a day by hand, on purpose
- AI mentor finds your repeat mistakes
- Behavioural analytics catch tilt early
- Trading calendar with P&L heatmap
- Pre-trade checklist flags risks
Yearly ₹2,499 · No broker credentials