Breakouts & channels · daily rule · Indexes & ETFs
TTM Squeeze on S&P 500 ETF
What the play says
Latest reading: Momentum 12.36
SPY with the play, last two years
Shading shows the play's call from the close that triggered it.
Squeeze momentum (20)
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% | +5.5% | +13.9% |
| Total return | +40% | +861% | +31% | +91% |
| Worst drawdown | −17.1% | −55.2% | −4.7% | −24.5% |
| Volatility | 4.3% | 18.9% | 4.1% | 17.1% |
| Sharpe ratio | −0.03 | 0.55 | 0.40 | 0.62 |
| Time invested | 11% | 100% | ||
| Switches per year | 5.7 | 0 |
Every call, graded
Right on 38 of 126 closed calls (30%). In calls averaged +0.1%; out calls saw SPY move +3.9% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Jul 20, 2026 | OUT | $740.25 | now | +5.1% | open |
| Jul 9, 2026 | IN | $749.85 | Jul 20, 2026 | −1.3% | ✕ wrong |
| Feb 2, 2026 | OUT | $690.02 | Jul 9, 2026 | +8.7% | ✕ wrong |
| Jan 27, 2026 | IN | $690.10 | Feb 2, 2026 | 0.0% | ✕ wrong |
| Nov 7, 2025 | OUT | $663.81 | Jan 27, 2026 | +4.0% | ✕ wrong |
| Oct 27, 2025 | IN | $677.93 | Nov 7, 2025 | −2.1% | ✕ wrong |
| Sep 30, 2025 | OUT | $659.07 | Oct 27, 2025 | +2.9% | ✕ wrong |
| Sep 10, 2025 | IN | $643.47 | Sep 30, 2025 | +2.4% | ✓ right |
| Feb 3, 2025 | OUT | $586.25 | Sep 10, 2025 | +9.8% | ✕ wrong |
| Jan 21, 2025 | IN | $591.43 | Feb 3, 2025 | −0.9% | ✕ wrong |
| Feb 14, 2024 | OUT | $482.77 | Jan 21, 2025 | +22.5% | ✕ wrong |
| Jan 19, 2024 | IN | $467.14 | Feb 14, 2024 | +3.3% | ✓ 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 127 calls shown.
How the play works
- The squeeze is on while the Bollinger Bands (20 days, 2 standard deviations) sit inside the Keltner Channel (20 days, 1.5 × average true range). It fires on the first day it turns off.
- In on the firing day if the momentum histogram is above zero and rising.
- Out after two days in a row of falling momentum, or when momentum drops below zero.
Carter's momentum formula is proprietary. Be The Puck uses StockCharts' version: a 20-day linear-regression reading of the close minus the average of the 20-day midrange and the 20-day average.
The Keltner Channel is built as a 20-day average ± 1.5 × the 20-day simple average of true range.
A squeeze that fires with negative or falling momentum is Carter's short signal, so the rule stays out.
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.