Mean reversion · daily rule · Indexes & ETFs
Connors %b on S&P 500 ETF
What the play says
Latest reading: %b 0.79
SPY with the play, last two years
Shading shows the play's call from the close that triggered it.
Bollinger %b (20, 2)
Dashed lines at 0.2, 0.8.
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 | +5.5% | +11.0% | +7.4% | +13.9% |
| Total return | +223% | +861% | +43% | +91% |
| Worst drawdown | −28.3% | −55.2% | −16.5% | −24.5% |
| Volatility | 10.2% | 18.9% | 10.1% | 17.1% |
| Sharpe ratio | 0.41 | 0.55 | 0.38 | 0.62 |
| Time invested | 18% | 100% | ||
| Switches per year | 5.4 | 0 |
Every call, graded
Right on 72 of 118 closed calls (61%). In calls averaged +1.6%; out calls saw SPY move +2.7% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Sep 21, 2026 | OUT | $773.50 | now | +0.6% | open |
| Sep 16, 2026 | IN | $752.18 | Sep 21, 2026 | +2.8% | ✓ right |
| Apr 8, 2026 | OUT | $672.60 | Sep 16, 2026 | +11.8% | ✕ wrong |
| Mar 10, 2026 | IN | $671.93 | Apr 8, 2026 | +0.1% | ✓ right |
| Dec 10, 2025 | OUT | $680.23 | Mar 10, 2026 | −1.2% | ✓ right |
| Nov 19, 2025 | IN | $655.56 | Dec 10, 2025 | +3.8% | ✓ right |
| May 1, 2025 | OUT | $549.36 | Nov 19, 2025 | +19.3% | ✕ wrong |
| Feb 26, 2025 | IN | $583.09 | May 1, 2025 | −5.8% | ✕ wrong |
| Jan 17, 2025 | OUT | $586.07 | Feb 26, 2025 | −0.5% | ✓ right |
| Dec 20, 2024 | IN | $579.76 | Jan 17, 2025 | +1.1% | ✓ right |
| Nov 6, 2024 | OUT | $577.71 | Dec 20, 2024 | +0.4% | ✕ wrong |
| Nov 4, 2024 | IN | $556.96 | Nov 6, 2024 | +3.7% | ✓ 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 119 calls shown.
How the play works
- %b shows where the close sits in its Bollinger Bands: 0 at the lower band, 1 at the upper.
- In at the close when the stock is above its 200-day average and %b has closed below 0.2 on each of the last 3 days.
- Out at the close when %b is above 0.8.
None of the sources seen give the band settings. Bollinger's standard 20-day bands at 2 standard deviations are assumed.
Connors' aggressive version adds a second unit on a lower close. Be The Puck holds one unit.
Tested by the authors on ETFs. Single stocks are an extension.
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.