Volume & money flow · daily rule · Indexes & ETFs
Klinger Oscillator on S&P 500 ETF
What the play says
Latest reading: KVO −53,262,512.00 · Trigger −77,583,768.00
SPY with the play, last two years
Shading shows the play's call from the close that triggered it.
Klinger Oscillator (34, 55, 13)
Dashed line at 0.
Growth of $10,000 since 2005
Log scale. After trading costs, with T-bill interest while out.
The record
The play against buying and holding SPY over exactly the same dates, after costs.
| Play, since 2005 | Hold, since 2005 | Play, 5 yrs | Hold, 5 yrs | |
|---|---|---|---|---|
| Annual return | +1.6% | +11.0% | +3.5% | +13.9% |
| Total return | +40% | +861% | +19% | +91% |
| Worst drawdown | −38.2% | −55.2% | −21.2% | −24.5% |
| Volatility | 11.8% | 18.9% | 11.5% | 17.1% |
| Sharpe ratio | 0.04 | 0.55 | 0.03 | 0.62 |
| Time invested | 49% | 100% | ||
| Switches per year | 44.8 | 0 |
Every call, graded
Right on 324 of 979 closed calls (33%). In calls averaged +0.2%; out calls saw SPY move +0.4% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Oct 2, 2026 | IN | $769.64 | now | +1.1% | open |
| Oct 1, 2026 | OUT | $763.99 | Oct 2, 2026 | +0.7% | ✕ wrong |
| Sep 30, 2026 | IN | $762.63 | Oct 1, 2026 | +0.2% | ✓ right |
| Sep 28, 2026 | OUT | $765.61 | Sep 30, 2026 | −0.4% | ✓ right |
| Sep 18, 2026 | IN | $761.69 | Sep 28, 2026 | +0.5% | ✓ right |
| Aug 31, 2026 | OUT | $765.15 | Sep 18, 2026 | −0.5% | ✓ right |
| Aug 28, 2026 | IN | $767.44 | Aug 31, 2026 | −0.3% | ✕ wrong |
| Aug 14, 2026 | OUT | $774.42 | Aug 28, 2026 | −0.9% | ✓ right |
| Jul 30, 2026 | IN | $739.85 | Aug 14, 2026 | +4.7% | ✓ right |
| Jul 29, 2026 | OUT | $727.65 | Jul 30, 2026 | +1.7% | ✕ wrong |
| Jul 20, 2026 | IN | $740.25 | Jul 29, 2026 | −1.7% | ✕ wrong |
| Jul 17, 2026 | OUT | $741.45 | Jul 20, 2026 | −0.2% | ✓ right |
An in call is right when the price rose before the next call; an out call is right when it fell. The latest 12 of 980 calls shown.
How the play works
- Volume force is each day's volume, counted as plus when high + low + close rises and minus when it falls, and weighted more heavily the longer the current run of same-direction days has lasted.
- The oscillator is the 34-day exponential average of volume force minus the 55-day one. The trigger is its 13-day exponential average.
- In when the oscillator is above the trigger.
- Out when it is below.
Klinger put most weight on extreme readings that reverse and on divergences. The trigger-line cross is the standard published signal (CQG and others).
Some versions drop the absolute value in the volume-force formula, which flips its sign. The absolute-value form is used here.
The range count starts on the first day of history, and days with no range at all get no volume force.
Where the rules come from
The case against
Valeriy Zakamulin tested moving-average timing on up to 155 years of U.S. stock data and found no statistically significant edge in the second half of that record. The rules earned their keep in a few severe bear markets and lagged buy and hold for long stretches in between.