Breakouts & channels · daily rule · Indexes & ETFs
Keltner Channel on S&P 500 ETF
What the play says
SPY with the play, last two years
Shading shows the play's call from the close that triggered it.
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% | +4.7% | +13.9% |
| Total return | +69% | +861% | +26% | +91% |
| Worst drawdown | −13.5% | −55.2% | −9.5% | −24.5% |
| Volatility | 6.2% | 18.9% | 6.8% | 17.1% |
| Sharpe ratio | 0.14 | 0.55 | 0.15 | 0.62 |
| Time invested | 33% | 100% | ||
| Switches per year | 8.0 | 0 |
Every call, graded
Right on 51 of 175 closed calls (29%). In calls averaged +0.5%; out calls saw SPY move +2.3% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Aug 20, 2026 | OUT | $760.71 | now | +2.3% | open |
| Aug 4, 2026 | IN | $769.42 | Aug 20, 2026 | −1.1% | ✕ wrong |
| Jun 5, 2026 | OUT | $733.83 | Aug 4, 2026 | +4.8% | ✕ wrong |
| Apr 13, 2026 | IN | $682.64 | Jun 5, 2026 | +7.5% | ✓ right |
| Nov 6, 2025 | OUT | $663.15 | Apr 13, 2026 | +2.9% | ✕ wrong |
| Oct 27, 2025 | IN | $677.93 | Nov 6, 2025 | −2.2% | ✕ wrong |
| Oct 10, 2025 | OUT | $646.05 | Oct 27, 2025 | +4.9% | ✕ wrong |
| Sep 11, 2025 | IN | $648.81 | Oct 10, 2025 | −0.4% | ✕ wrong |
| Aug 21, 2025 | OUT | $627.03 | Sep 11, 2025 | +3.5% | ✕ wrong |
| Aug 13, 2025 | IN | $636.24 | Aug 21, 2025 | −1.4% | ✕ wrong |
| Aug 1, 2025 | OUT | $613.38 | Aug 13, 2025 | +3.7% | ✕ wrong |
| May 12, 2025 | IN | $573.48 | Aug 1, 2025 | +7.0% | ✓ 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 176 calls shown.
How the play works
- In on a close above the upper channel (20-day EMA + 2 × 10-day ATR).
- Out on a close below the 20-day EMA.
Keltner's 1960 version used a 10-day average and the daily range. The ATR version is the modern default.
Exiting at the middle line is a common modern choice, not Keltner's.
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.