Trend following · daily rule · Indexes & ETFs
MAMA/FAMA 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 | +5.0% | +11.0% | +7.1% | +13.9% |
| Total return | +191% | +861% | +41% | +91% |
| Worst drawdown | −23.3% | −55.2% | −22.4% | −24.5% |
| Volatility | 10.9% | 18.9% | 10.8% | 17.1% |
| Sharpe ratio | 0.34 | 0.55 | 0.34 | 0.62 |
| Time invested | 68% | 100% | ||
| Switches per year | 10.4 | 0 |
Every call, graded
Right on 73 of 226 closed calls (32%). In calls averaged +1.1%; out calls saw SPY move +1.1% on average.
| Called | Call | Price | Until | SPY moved | Result |
|---|---|---|---|---|---|
| Sep 22, 2026 | IN | $773.38 | now | +0.6% | open |
| Sep 16, 2026 | OUT | $752.18 | Sep 22, 2026 | +2.8% | ✕ wrong |
| Aug 4, 2026 | IN | $769.42 | Sep 16, 2026 | −2.2% | ✕ wrong |
| Jul 28, 2026 | OUT | $739.02 | Aug 4, 2026 | +4.1% | ✕ wrong |
| Jul 2, 2026 | IN | $742.93 | Jul 28, 2026 | −0.5% | ✕ wrong |
| Jun 23, 2026 | OUT | $731.76 | Jul 2, 2026 | +1.5% | ✕ wrong |
| Jun 15, 2026 | IN | $751.02 | Jun 23, 2026 | −2.6% | ✕ wrong |
| Jun 11, 2026 | OUT | $734.04 | Jun 15, 2026 | +2.3% | ✕ wrong |
| Apr 9, 2026 | IN | $676.48 | Jun 11, 2026 | +8.5% | ✓ right |
| Feb 17, 2026 | OUT | $677.56 | Apr 9, 2026 | −0.2% | ✓ right |
| Dec 2, 2025 | IN | $674.26 | Feb 17, 2026 | +0.5% | ✓ right |
| Nov 18, 2025 | OUT | $653.03 | Dec 2, 2025 | +3.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 227 calls shown.
How the play works
- In while MAMA is above FAMA.
- Out while MAMA is below FAMA.
Both lines use the midpoint of each day's high and low, with Ehlers' published speed limits of 0.5 and 0.05. FAMA moves at half MAMA's speed.
Ehlers' code starts every running value at zero. Be The Puck starts both lines at the first price and ignores the first 60 days.
Ehlers' own test on 100 stocks was long only, as here. His paper doesn't say how fills were timed; 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.