Trend following · daily rule · Indexes & ETFs
Zero Lag EC Cross 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 | +6.0% | +11.0% | +9.5% | +13.9% |
| Total return | +258% | +861% | +57% | +91% |
| Worst drawdown | −23.6% | −55.2% | −12.6% | −24.5% |
| Volatility | 10.7% | 18.9% | 11.3% | 17.1% |
| Sharpe ratio | 0.44 | 0.55 | 0.52 | 0.62 |
| Time invested | 63% | 100% | ||
| Switches per year | 6.2 | 0 |
Every call, graded
Right on 46 of 134 closed calls (34%). In calls averaged +2.0%; out calls saw SPY move +1.7% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Sep 21, 2026 | IN | $773.50 | now | +0.6% | open |
| Sep 16, 2026 | OUT | $752.18 | Sep 21, 2026 | +2.8% | ✕ wrong |
| Aug 3, 2026 | IN | $755.79 | Sep 16, 2026 | −0.5% | ✕ wrong |
| Jul 29, 2026 | OUT | $727.65 | Aug 3, 2026 | +3.9% | ✕ wrong |
| Feb 25, 2026 | IN | $687.78 | Jul 29, 2026 | +5.8% | ✓ right |
| Feb 13, 2026 | OUT | $676.47 | Feb 25, 2026 | +1.7% | ✕ wrong |
| Nov 28, 2025 | IN | $676.10 | Feb 13, 2026 | +0.1% | ✓ right |
| Nov 19, 2025 | OUT | $655.56 | Nov 28, 2025 | +3.1% | ✕ wrong |
| May 2, 2025 | IN | $557.51 | Nov 19, 2025 | +17.6% | ✓ right |
| Feb 27, 2025 | OUT | $573.78 | May 2, 2025 | −2.8% | ✓ right |
| Jan 21, 2025 | IN | $591.43 | Feb 27, 2025 | −3.0% | ✕ wrong |
| Dec 31, 2024 | OUT | $574.79 | Jan 21, 2025 | +2.9% | ✕ 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 135 calls shown.
How the play works
- In when the error-corrected line crosses above the 32-day EMA while it sits more than 0.75% away from the close.
- Out when it crosses below the EMA with the same 0.75% test.
- Crossings that fail the test are ignored, and the rule keeps its last call.
The settings are the ones from the authors' Microsoft test (length 32, gain limit 22, threshold 0.75), not the code defaults (20, 50, 1). The authors note that a large gain limit just makes the line track the close.
The published strategy goes short on the sell signal. Be The Puck holds T-bills instead.
The strategy buys at the next day's open. Be The Puck acts on the signal day's close.
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.