Volume & money flow · daily rule · Indexes & ETFs
Chaikin Oscillator on S&P 500 ETF
What the play says
Latest reading: Oscillator 10,744,062.00
SPY with the play, last two years
Shading shows the play's call from the close that triggered it.
Chaikin Oscillator (3, 10)
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 | +0.1% | +11.0% | +3.5% | +13.9% |
| Total return | +3% | +861% | +19% | +91% |
| Worst drawdown | −54.0% | −55.2% | −25.1% | −24.5% |
| Volatility | 12.6% | 18.9% | 11.9% | 17.1% |
| Sharpe ratio | −0.07 | 0.55 | 0.03 | 0.62 |
| Time invested | 68% | 100% | ||
| Switches per year | 25.5 | 0 |
Every call, graded
Right on 189 of 558 closed calls (34%). In calls averaged +0.1%; out calls saw SPY move +0.8% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Oct 8, 2026 | IN | $773.93 | now | +0.5% | open |
| Sep 30, 2026 | OUT | $762.63 | Oct 8, 2026 | +1.5% | ✕ wrong |
| Sep 18, 2026 | IN | $761.69 | Sep 30, 2026 | +0.1% | ✓ right |
| Sep 9, 2026 | OUT | $760.51 | Sep 18, 2026 | +0.2% | ✕ wrong |
| Sep 3, 2026 | IN | $771.25 | Sep 9, 2026 | −1.4% | ✕ wrong |
| Aug 17, 2026 | OUT | $770.76 | Sep 3, 2026 | +0.1% | ✕ wrong |
| Jul 31, 2026 | IN | $745.18 | Aug 17, 2026 | +3.4% | ✓ right |
| Jul 23, 2026 | OUT | $736.35 | Jul 31, 2026 | +1.2% | ✕ wrong |
| Jun 30, 2026 | IN | $744.92 | Jul 23, 2026 | −1.2% | ✕ wrong |
| Jun 16, 2026 | OUT | $746.55 | Jun 30, 2026 | −0.2% | ✓ right |
| Jun 15, 2026 | IN | $751.02 | Jun 16, 2026 | −0.6% | ✕ wrong |
| Jun 8, 2026 | OUT | $735.49 | Jun 15, 2026 | +2.1% | ✕ wrong |
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 559 calls shown.
How the play works
- The Accumulation/Distribution line is a running total of volume, weighted by where each close sits in the day's range: fully added at the high, fully subtracted at the low.
- The oscillator is the line's 3-day exponential average minus its 10-day one.
- In when the oscillator is above zero.
- Out when it is below zero.
StockCharts also reads divergences. This rule uses only the zero line.
A day with no range (high equals low) adds no volume to the line.
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.