Volume & money flow · daily rule · Indexes & ETFs
Chaikin Money Flow on S&P 500 ETF
SPY with the play, last two years
Shading shows the play's call from the close that triggered it.
Chaikin Money Flow (21)
Dashed lines at 0.05, −0.05.
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 | +2.5% | +11.0% | +0.5% | +13.9% |
| Total return | +72% | +861% | +3% | +91% |
| Worst drawdown | −46.1% | −55.2% | −26.8% | −24.5% |
| Volatility | 12.8% | 18.9% | 12.4% | 17.1% |
| Sharpe ratio | 0.12 | 0.55 | −0.20 | 0.62 |
| Time invested | 70% | 100% | ||
| Switches per year | 8.4 | 0 |
Every call, graded
Right on 64 of 182 closed calls (35%). In calls averaged +0.8%; out calls saw SPY move +2.0% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Sep 21, 2026 | IN | $773.50 | now | +0.6% | open |
| Aug 19, 2026 | OUT | $767.15 | Sep 21, 2026 | +0.8% | ✕ wrong |
| Jul 10, 2026 | IN | $753.08 | Aug 19, 2026 | +1.9% | ✓ right |
| Jun 22, 2026 | OUT | $742.55 | Jul 10, 2026 | +1.4% | ✕ wrong |
| Apr 17, 2026 | IN | $706.56 | Jun 22, 2026 | +5.1% | ✓ right |
| Mar 23, 2026 | OUT | $652.08 | Apr 17, 2026 | +8.4% | ✕ wrong |
| Feb 19, 2026 | IN | $679.17 | Mar 23, 2026 | −4.0% | ✕ wrong |
| Feb 13, 2026 | OUT | $676.47 | Feb 19, 2026 | +0.4% | ✕ wrong |
| Nov 10, 2025 | IN | $674.17 | Feb 13, 2026 | +0.3% | ✓ right |
| Nov 6, 2025 | OUT | $663.15 | Nov 10, 2025 | +1.7% | ✕ wrong |
| Jun 24, 2025 | IN | $598.64 | Nov 6, 2025 | +10.8% | ✓ right |
| Jun 20, 2025 | OUT | $586.31 | Jun 24, 2025 | +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 183 calls shown.
How the play works
- In when the 21-day CMF rises above +0.05.
- Out when it falls below −0.05. In between, the rule keeps its last call.
The ±0.05 buffer is StockCharts' suggested filter against whipsaws.
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.