Mean reversion · daily rule · Indexes & ETFs
StochRSI 20/80 on S&P 500 ETF
What the play says
Latest reading: StochRSI 0.79
SPY with the play, last two years
Shading shows the play's call from the close that triggered it.
StochRSI (14)
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 | +4.4% | +11.0% | +7.4% | +13.9% |
| Total return | +153% | +861% | +43% | +91% |
| Worst drawdown | −47.0% | −55.2% | −19.4% | −24.5% |
| Volatility | 14.5% | 18.9% | 12.5% | 17.1% |
| Sharpe ratio | 0.25 | 0.55 | 0.33 | 0.62 |
| Time invested | 56% | 100% | ||
| Switches per year | 20.7 | 0 |
Every call, graded
Right on 259 of 452 closed calls (57%). In calls averaged +0.5%; out calls saw SPY move +0.6% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Sep 23, 2026 | OUT | $767.81 | now | +1.3% | open |
| Aug 27, 2026 | IN | $769.19 | Sep 23, 2026 | −0.2% | ✕ wrong |
| Aug 18, 2026 | OUT | $765.55 | Aug 27, 2026 | +0.5% | ✕ wrong |
| Jul 21, 2026 | IN | $746.43 | Aug 18, 2026 | +2.6% | ✓ right |
| Jul 7, 2026 | OUT | $745.86 | Jul 21, 2026 | +0.1% | ✕ wrong |
| Jun 11, 2026 | IN | $734.04 | Jul 7, 2026 | +1.6% | ✓ right |
| Jun 3, 2026 | OUT | $750.44 | Jun 11, 2026 | −2.2% | ✓ right |
| May 20, 2026 | IN | $737.51 | Jun 3, 2026 | +1.8% | ✓ right |
| Apr 21, 2026 | OUT | $700.53 | May 20, 2026 | +5.3% | ✕ wrong |
| Mar 4, 2026 | IN | $679.82 | Apr 21, 2026 | +3.0% | ✓ right |
| Feb 26, 2026 | OUT | $683.96 | Mar 4, 2026 | −0.6% | ✓ right |
| Feb 6, 2026 | IN | $685.27 | Feb 26, 2026 | −0.2% | ✕ 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 453 calls shown.
How the play works
- StochRSI = (RSI − lowest RSI of the last 14 days) ÷ (highest − lowest), from 0 to 1.
- In when StochRSI crosses up through 0.2.
- Out when it crosses down through 0.8.
Chande and Kroll defined 0.8 and 0.2 as overbought and oversold levels, not trading rules. Buying the cross back up through 0.2 and selling the cross down through 0.8 mirrors Be The Puck's RSI 30/70 play.
Raw StochRSI is used. Many platforms smooth it with a 3-day average.
There is no stop: the rule can hold through a long decline.
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.