12/26 EMA crossover (MACD) on five ETFs: robust or curve-fit?

Computed by the MarketHeist backtest engine · Published 2026-10-13 · Updated 2026-10-13 · Data through 2026-09-30
Hold the fund while its 12-day exponential moving average is above its 26-day one (the MACD line above zero); hold cash otherwise. This is the MACD zero-line rule, not the MACD signal-line crossover, which the engine cannot express. Tested on 5 ETFs, each over the longest window every setting on the grid can be measured: 5 bps a side, fills at the signal day's close (in practice the closing minutes), idle cash earning 3-month Treasury bills. Results: SPY trailed buy-and-hold, QQQ shallower drawdown, lower return, TLT no reliable difference, GLD no reliable difference and EFA shallower drawdown, lower return.
Claim checked
"Holding while the MACD line is above zero beats buy-and-hold."
ETFResultVerdictTrades
S&P 500 (SPY)Did not hold upTrailed buy-and-hold138
Nasdaq-100 (QQQ)Partly (shallower drawdown, lower return)Shallower drawdown, lower return113
20+ year Treasuries (TLT)Did not hold upNo reliable difference103
Gold (GLD)Did not hold upNo reliable difference91
Developed markets ex-US (EFA)Partly (shallower drawdown, lower return)Shallower drawdown, lower return102
"Beats" means a higher return or a higher risk-adjusted return, across nearby settings and out of sample. Each ETF is tested over its own window, listed in its section below.

Jump to: SPY · QQQ · TLT · GLD · EFA

S&P 500 (SPY)

Claim checked
"Holding while the MACD line is above zero beats buy-and-hold."
Did not hold up
SPY, 1993-02-01 to 2026-09-30 (33.6 years), 138 trades. "Beats" means a higher return or a higher risk-adjusted return, across nearby settings and out of sample. Trailed buy-and-hold.
6.2%
CAGRbuy-and-hold 10.8%
-31.7%
Max drawdownbuy-and-hold -55.2%
0.36
Sharpe, excess over T-billsbuy-and-hold 0.51
robust 99% kept
Nearby settingsshare of the Sharpe kept by neighbours

12/26 setting against buying and holding SPY, 1993-02-01 to 2026-09-30 (33.6 years), cash earning 3-month Treasury bills. The backtester's own figures (cash at 0%, no risk-free rate) are in the box at the end.

What the numbers say about SPY

Verdict: Trailed buy-and-hold. The 12/26 setting's Sharpe was 0.36 against 0.51 for buy-and-hold, and only 1 of 36 settings were above buy-and-hold: it trailed across most of the grid.

12/26 against its neighbours

Sharpe of the 12/26-day EMA crossover (the MACD line above zero) on SPY by settingSharpe in excess of T-bills for each short ema (days) and long ema (days) on SPY, 1993-02-01 to 2026-09-30. Buy-and-hold: 0.51. The famous setting 12/26 scored 0.36.Long EMA (days)Short EMA (days)20232630354060.250.270.300.300.320.3780.300.320.300.310.370.36100.310.290.330.350.370.39120.320.360.360.360.390.42150.370.380.380.370.370.45180.370.390.360.390.440.51
Sharpe in excess of T-bills for each setting. Blue: above buy-and-hold's 0.51; orange: below; every value is printed. The famous 12/26 setting is outlined; hatched cells made fewer than 5 trades; blank cells cannot be expressed (short average not shorter than the long one). Rows: short ema (days); columns: long ema (days).
CAGR, max drawdown and trade count for every setting

CAGR

Short EMA (days) \ Long EMA (days)202326303540
64.9%5.1%5.4%5.4%5.6%6.3%
85.5%5.7%5.4%5.5%6.2%6.2%
105.6%5.4%5.8%6.0%6.3%6.6%
125.6%6.1%6.2%6.2%6.5%6.9%
156.2%6.4%6.4%6.3%6.4%7.4%
186.3%6.6%6.3%6.6%7.3%8.2%

Max drawdown

Short EMA (days) \ Long EMA (days)202326303540
6-31.0%-37.7%-37.2%-37.5%-41.2%-38.4%
8-31.1%-29.9%-33.8%-38.4%-37.4%-37.2%
10-29.2%-32.4%-34.2%-34.9%-37.0%-34.3%
12-30.3%-29.8%-31.7%-35.0%-33.2%-35.1%
15-30.0%-34.1%-33.0%-30.8%-37.3%-34.3%
18-32.4%-30.9%-31.8%-35.9%-33.7%-33.3%

Trades over the window

Short EMA (days) \ Long EMA (days)202326303540
6229211196182170152
8201179171162138133
10172163153137132121
12161151138131119108
1513912712612010494
181261211201039383

Highest Sharpe on the grid, chosen with hindsight: 18/40 (0.51). The famous setting is outlined; settings with fewer than 5 trades are hatched and left out of the neighbourhood and the shares.

Against buy-and-hold

1993-02-01 to 2026-09-3012/26 ruleBuy-and-hold
CAGR6.2%10.8%
Volatility (annualized)11.3%18.5%
Max drawdown-31.7%-55.2%
Sharpe, excess over T-bills (the page's basis)0.360.51
Sharpe with cash at 0% and no risk-free rate (the backtester's basis)0.520.65
Days invested69%100%
Trades over the window1381
Trades a year4.10
Worst calendar year2000 (-13%)2008 (-37%)
Growth of $1 in SPY: 12/26 rule against buy-and-holdLog-scaled growth of $1 from 1993-02-01 to 2026-09-30: the 12/26 rule ends at $7.51, buy-and-hold at $31.48.$1.0$2.0$5.0$10$20199319982003200820132018202312/26 ruleBuy-and-hold
Growth of $1 on a log scale, cash earning T-bills while the rule is out. Charts use sampled points (every 4 weeks); every number on the page uses daily data.
Drawdown of SPY: 12/26 rule against buy-and-holdDrawdown from the previous peak: the rule's deepest is -31.7%, buy-and-hold's -55.2%.-50%-40%-30%-20%-10%0%199319982003200820132018202312/26 ruleBuy-and-hold
Drawdown from the previous peak.

Walk-forward: choose in sample, judge out of sample

In each in-sample window of 10 years the setting with the highest Sharpe is chosen among settings with at least 3 trades in it, then held for the next 2 years out of sample. 11 windows, 2004-09-17 to 2026-09-30 (22.0 years); 409 earlier bars are not used. Switching settings at a window boundary is not charged.

#In sampleOut of sampleChosenIn-sample SharpeOut-of-sample Sharpe12/26 fixedBuy-and-hold
11994-09-15 to 2004-09-162004-09-17 to 2006-09-1518/400.380.260.020.64
21996-09-12 to 2006-09-152006-09-18 to 2008-09-1718/400.26-0.19-0.39-0.38
31998-09-11 to 2008-09-172008-09-18 to 2010-09-1715/40-0.040.990.520.19
42000-09-11 to 2010-09-172010-09-20 to 2012-09-1715/400.260.780.790.90
52002-09-17 to 2012-09-172012-09-18 to 2014-09-1918/400.551.261.021.71
62004-09-17 to 2014-09-192014-09-22 to 2016-09-2018/400.71-0.05-0.730.41
72006-09-18 to 2016-09-202016-09-21 to 2018-09-2018/400.641.260.651.64
82008-09-18 to 2018-09-202018-09-21 to 2020-09-2218/400.870.550.790.38
92010-09-20 to 2020-09-222020-09-23 to 2022-09-2218/400.750.540.610.49
102012-09-18 to 2022-09-222022-09-23 to 2024-09-2518/400.670.300.861.22
112014-09-22 to 2024-09-252024-09-26 to 2026-09-3015/200.580.710.740.78
Over 2004-09-17 to 2026-09-30CAGRSharpeMax drawdown
Walk-forward (chosen in sample)8.1%0.59-21.2%
12/26, fixed6.5%0.47-26.3%
Buy-and-hold11.1%0.56-55.2%
Walk-forward growth of $1 in SPYGrowth of $1 from 2004-09-17 to 2026-09-30: choosing the highest-Sharpe setting in sample each time ends at $5.55, the fixed 12/26 setting at $4.03, buy-and-hold at $10.13.$1.0$2.0$5.0$10.020042007201020132016201920222025Chosen in sample12/26, fixedBuy-and-hold
The out-of-sample stretches of the chosen settings, chained, against the fixed famous setting and buy-and-hold over the same years.

Mean in-sample Sharpe of the chosen settings 0.51, mean out-of-sample 0.58 (a rise of 0.07). 3 different settings were chosen in 11 windows. A 10-year window held a median of 40 trades of the famous setting.

Resampled histories

The rule's and buy-and-hold's daily returns are resampled together in circular 21-day blocks (so volatility clusters stay together and both series see the same days), 2,000 times, from the common window. Resampled histories, not a forecast: this measures how stable the gap is in the history we have, not the odds it repeats.

5th / 50th / 95th percentile12/26 ruleBuy-and-hold
CAGR3.0% / 6.3% / 9.4%6.1% / 11.0% / 16.0%
Sharpe, excess over T-bills0.10 / 0.37 / 0.620.27 / 0.52 / 0.78
Max drawdown-41.9% / -27.7% / -19.0%-57.9% / -40.8% / -29.1%
Rule's Sharpe above buy-and-hold's13% of resamples
Rule's max drawdown shallower92% of resamples
Resampled growth of $1 in SPY: 12/26 ruleResampled histories of SPY: the 12/26 rule's 5th to 95th percentile of growth of $1 ends between $2.77 and $20.05; the actual path ends at $7.86; buy-and-hold's actual path ends at $32.03.$1.0$2.0$5.0$10$20199319982003200820132018202312/26 rule: 5th to 95th percentile12/26 rule, actual historybuy-and-hold, actualmedian of resamplesbuy-and-hold, resampled median
Growth of $1 on a log scale across 2,000 resampled histories, sampled every 8 weeks. Resampled histories, not a forecast.

Stress windows

Window12/26 ruleBuy-and-hold
Calendar 20082008-01-01 to 2008-12-31-6%-37%
Calendar 20202020-01-01 to 2020-12-3118%18%
Calendar 20222022-01-01 to 2022-12-31-8%-18%
Buy-and-hold's drawdown 12007-10-09 to 2009-03-09-23%-55%
Buy-and-hold's drawdown 22000-03-24 to 2002-10-09-23%-48%
Buy-and-hold's drawdown 32020-02-19 to 2020-03-23-8%-34%

Calendar years are whole years inside the window. The other rows are buy-and-hold's three deepest drawdowns (peak to trough); the rule's return is over the same dates.

Costs, fills and cash

12/26 ruleCAGRSharpeMax drawdownEntries a year
0 bps a side6.6%0.40-30.6%4.1
5 bps a side (the page's basis)6.2%0.36-31.7%4.1
20 bps a side4.9%0.25-35.1%4.1
Trade one day later (fills at the next day's close)6.1%0.35-31.4%4.1
Cash at 0% and no risk-free rate (the backtester's basis)buy-and-hold on this basis: CAGR 10.8%, Sharpe 0.65, max drawdown -55.2%5.4%0.52*-37.2%4.1

Sharpe is in excess of 3-month T-bills, except the last row (*), which uses the backtester's basis: cash at 0% and no risk-free rate. Trading a day later means the signal from today's close is filled at tomorrow's close.

Check it in the backtester

Open this rule in the backtester (SPY, daily, 5 bps)

The backtester runs on data through today, so its figures move slightly as new days arrive; the hash below identifies this page's window. As of data through 2026-09-30, over the backtester's own window (1993-02-01 to 2026-09-30, 33.6 years, cash at 0%, no risk-free rate):

  • CAGR 5.4% (buy-and-hold 10.8%)
  • Sharpe 0.52 (buy-and-hold 0.65)
  • Max drawdown -37.2% (buy-and-hold -55.2%)
  • Days invested 69%; trades 138

The backtester's overfit check (settings one or two steps away on short window and long window) keeps at least 100% of the Sharpe (robust). Reproduce hash: 265ad5fe1a391dea.

Nasdaq-100 (QQQ)

Claim checked
"Holding while the MACD line is above zero beats buy-and-hold."
Partly (shallower drawdown, lower return)
QQQ, 1999-03-11 to 2026-09-30 (27.5 years), 113 trades. "Beats" means a higher return or a higher risk-adjusted return, across nearby settings and out of sample. Shallower drawdown, lower return.
8.3%
CAGRbuy-and-hold 10.9%
-33.6%
Max drawdownbuy-and-hold -83.0%
0.44
Sharpe, excess over T-billsbuy-and-hold 0.44
robust 100% kept
Nearby settingsshare of the Sharpe kept by neighbours

12/26 setting against buying and holding QQQ, 1999-03-11 to 2026-09-30 (27.5 years), cash earning 3-month Treasury bills. The backtester's own figures (cash at 0%, no risk-free rate) are in the box at the end.

What the numbers say about QQQ

Verdict: Shallower drawdown, lower return. The 12/26 setting cut the worst drawdown by 49 points at a cost of 3 points of annual return.

12/26 against its neighbours

Sharpe of the 12/26-day EMA crossover (the MACD line above zero) on QQQ by settingSharpe in excess of T-bills for each short ema (days) and long ema (days) on QQQ, 1999-03-11 to 2026-09-30. Buy-and-hold: 0.44. The famous setting 12/26 scored 0.44.Long EMA (days)Short EMA (days)20232630354060.390.400.450.470.450.4680.420.410.430.440.420.44100.380.440.440.400.440.46120.460.450.440.480.440.48150.420.420.470.440.470.51180.460.440.440.460.500.49
Sharpe in excess of T-bills for each setting. Blue: above buy-and-hold's 0.44; orange: below; every value is printed. The famous 12/26 setting is outlined; hatched cells made fewer than 5 trades; blank cells cannot be expressed (short average not shorter than the long one). Rows: short ema (days); columns: long ema (days).
CAGR, max drawdown and trade count for every setting

CAGR

Short EMA (days) \ Long EMA (days)202326303540
67.3%7.5%8.4%8.8%8.4%8.6%
88.0%7.6%8.1%8.2%7.9%8.3%
107.2%8.3%8.3%7.5%8.3%8.6%
128.6%8.4%8.3%9.0%8.3%8.9%
157.9%7.9%8.8%8.3%8.8%9.6%
188.6%8.3%8.3%8.7%9.5%9.3%

Max drawdown

Short EMA (days) \ Long EMA (days)202326303540
6-38.0%-44.6%-34.9%-38.0%-42.3%-39.9%
8-42.8%-40.5%-37.9%-38.5%-36.8%-35.8%
10-41.6%-35.7%-33.8%-37.0%-33.4%-35.9%
12-34.1%-35.5%-33.6%-29.9%-37.6%-38.4%
15-37.8%-35.2%-33.0%-38.9%-37.4%-33.6%
18-35.6%-34.0%-36.6%-43.2%-34.7%-38.6%

Trades over the window

Short EMA (days) \ Long EMA (days)202326303540
6187178165147138126
8165149142128120109
1014913612611710598
121341271131039686
1511911199968778
1810710093847769

Highest Sharpe on the grid, chosen with hindsight: 15/40 (0.51). The famous setting is outlined; settings with fewer than 5 trades are hatched and left out of the neighbourhood and the shares.

Against buy-and-hold

1999-03-11 to 2026-09-3012/26 ruleBuy-and-hold
CAGR8.3%10.9%
Volatility (annualized)16.4%26.9%
Max drawdown-33.6%-83.0%
Sharpe, excess over T-bills (the page's basis)0.440.44
Sharpe with cash at 0% and no risk-free rate (the backtester's basis)0.520.52
Days invested66%100%
Trades over the window1131
Trades a year4.10
Worst calendar year2011 (-20%)2008 (-42%)
Growth of $1 in QQQ: 12/26 rule against buy-and-holdLog-scaled growth of $1 from 1999-03-11 to 2026-09-30: the 12/26 rule ends at $9.00, buy-and-hold at $17.13.$0.50$1.0$2.0$5.0$10199920032007201120152019202312/26 ruleBuy-and-hold
Growth of $1 on a log scale, cash earning T-bills while the rule is out. Charts use sampled points (every 4 weeks); every number on the page uses daily data.
Drawdown of QQQ: 12/26 rule against buy-and-holdDrawdown from the previous peak: the rule's deepest is -33.6%, buy-and-hold's -83.0%.-80%-70%-60%-50%-40%-30%-20%-10%0%199920032007201120152019202312/26 ruleBuy-and-hold
Drawdown from the previous peak.

Walk-forward: choose in sample, judge out of sample

In each in-sample window of 10 years the setting with the highest Sharpe is chosen among settings with at least 3 trades in it, then held for the next 2 years out of sample. 8 windows, 2010-09-20 to 2026-09-30 (16.0 years); 379 earlier bars are not used. Switching settings at a window boundary is not charged.

#In sampleOut of sampleChosenIn-sample SharpeOut-of-sample Sharpe12/26 fixedBuy-and-hold
12000-09-11 to 2010-09-172010-09-20 to 2012-09-1718/350.310.130.271.10
22002-09-17 to 2012-09-172012-09-18 to 2014-09-1912/400.461.081.291.55
32004-09-17 to 2014-09-192014-09-22 to 2016-09-2018/200.59-0.26-0.330.59
42006-09-18 to 2016-09-202016-09-21 to 2018-09-208/400.500.941.131.67
52008-09-18 to 2018-09-202018-09-21 to 2020-09-2212/400.771.021.100.79
62010-09-20 to 2020-09-222020-09-23 to 2022-09-226/300.920.270.240.18
72012-09-18 to 2022-09-222022-09-23 to 2024-09-256/300.810.820.751.23
82014-09-22 to 2024-09-252024-09-26 to 2026-09-306/300.770.980.860.91
Over 2010-09-20 to 2026-09-30CAGRSharpeMax drawdown
Walk-forward (chosen in sample)9.7%0.63-32.0%
12/26, fixed10.2%0.66-25.9%
Buy-and-hold19.7%0.90-35.1%
Walk-forward growth of $1 in QQQGrowth of $1 from 2010-09-20 to 2026-09-30: choosing the highest-Sharpe setting in sample each time ends at $4.42, the fixed 12/26 setting at $4.73, buy-and-hold at $17.67.$1.0$2.0$5.0$10.0201020132016201920222025Chosen in sample12/26, fixedBuy-and-hold
The out-of-sample stretches of the chosen settings, chained, against the fixed famous setting and buy-and-hold over the same years.

Mean in-sample Sharpe of the chosen settings 0.64, mean out-of-sample 0.62 (a drop of 0.02). 5 different settings were chosen in 8 windows. A 10-year window held a median of 41 trades of the famous setting.

Resampled histories

The rule's and buy-and-hold's daily returns are resampled together in circular 21-day blocks (so volatility clusters stay together and both series see the same days), 2,000 times, from the common window. Resampled histories, not a forecast: this measures how stable the gap is in the history we have, not the odds it repeats.

5th / 50th / 95th percentile12/26 ruleBuy-and-hold
CAGR3.2% / 8.3% / 13.5%2.8% / 10.7% / 19.1%
Sharpe, excess over T-bills0.15 / 0.45 / 0.730.16 / 0.44 / 0.71
Max drawdown-55.3% / -37.1% / -26.1%-78.3% / -57.2% / -41.6%
Rule's Sharpe above buy-and-hold's51% of resamples
Rule's max drawdown shallower96% of resamples
Resampled growth of $1 in QQQ: 12/26 ruleResampled histories of QQQ: the 12/26 rule's 5th to 95th percentile of growth of $1 ends between $2.33 and $31.91; the actual path ends at $8.77; buy-and-hold's actual path ends at $16.29.$0.50$1.0$2.0$5.0$10$20199920032007201120152019202312/26 rule: 5th to 95th percentile12/26 rule, actual historybuy-and-hold, actualmedian of resamplesbuy-and-hold, resampled median
Growth of $1 on a log scale across 2,000 resampled histories, sampled every 8 weeks. Resampled histories, not a forecast.

Stress windows

Window12/26 ruleBuy-and-hold
Calendar 20082008-01-01 to 2008-12-311%-42%
Calendar 20202020-01-01 to 2020-12-3127%48%
Calendar 20222022-01-01 to 2022-12-31-13%-33%
Buy-and-hold's drawdown 12000-03-27 to 2002-10-09-33%-83%
Buy-and-hold's drawdown 22021-12-27 to 2022-11-03-10%-35%
Buy-and-hold's drawdown 32020-02-19 to 2020-03-16-13%-29%

Calendar years are whole years inside the window. The other rows are buy-and-hold's three deepest drawdowns (peak to trough); the rule's return is over the same dates.

Costs, fills and cash

12/26 ruleCAGRSharpeMax drawdownEntries a year
0 bps a side8.8%0.47-33.2%4.1
5 bps a side (the page's basis)8.3%0.44-33.6%4.1
20 bps a side7.0%0.37-35.1%4.1
Trade one day later (fills at the next day's close)7.9%0.42-38.3%4.1
Cash at 0% and no risk-free rate (the backtester's basis)buy-and-hold on this basis: CAGR 10.9%, Sharpe 0.52, max drawdown -83.0%7.5%0.52*-37.8%4.1

Sharpe is in excess of 3-month T-bills, except the last row (*), which uses the backtester's basis: cash at 0% and no risk-free rate. Trading a day later means the signal from today's close is filled at tomorrow's close.

Check it in the backtester

Open this rule in the backtester (QQQ, daily, 5 bps)

The backtester runs on data through today, so its figures move slightly as new days arrive; the hash below identifies this page's window. As of data through 2026-09-30, over the backtester's own window (1999-03-11 to 2026-09-30, 27.5 years, cash at 0%, no risk-free rate):

  • CAGR 7.5% (buy-and-hold 10.9%)
  • Sharpe 0.52 (buy-and-hold 0.52)
  • Max drawdown -37.8% (buy-and-hold -83.0%)
  • Days invested 66%; trades 113

The backtester's overfit check (settings one or two steps away on short window and long window) keeps 100% of the Sharpe (robust). Reproduce hash: 6033dc34e3e63262.

20+ year Treasuries (TLT)

Claim checked
"Holding while the MACD line is above zero beats buy-and-hold."
Did not hold up
TLT, 2002-07-31 to 2026-09-30 (24.1 years), 103 trades. "Beats" means a higher return or a higher risk-adjusted return, across nearby settings and out of sample. No reliable difference.
3.3%
CAGRbuy-and-hold 3.2%
-21.7%
Max drawdownbuy-and-hold -48.4%
0.19
Sharpe, excess over T-billsbuy-and-hold 0.17
n/a Sharpe under 0.20
Nearby settingsneighbours scored 0.10 to 0.17

12/26 setting against buying and holding TLT, 2002-07-31 to 2026-09-30 (24.1 years), cash earning 3-month Treasury bills. The backtester's own figures (cash at 0%, no risk-free rate) are in the box at the end.

What the numbers say about TLT

Verdict: No reliable difference. The tests did not line up with buy-and-hold: its Sharpe of 0.19 was not at least 0.10 above buy-and-hold's 0.17; only 11 of 36 settings beat buy-and-hold's Sharpe; the rule's Sharpe led in only 53% of resampled histories.

12/26 against its neighbours

Sharpe of the 12/26-day EMA crossover (the MACD line above zero) on TLT by settingSharpe in excess of T-bills for each short ema (days) and long ema (days) on TLT, 2002-07-31 to 2026-09-30. Buy-and-hold: 0.17. The famous setting 12/26 scored 0.19.Long EMA (days)Short EMA (days)20232630354060.060.070.050.080.080.1280.120.140.150.090.130.15100.130.140.100.130.150.13120.120.150.190.150.120.20150.180.170.150.170.230.26180.180.130.190.250.290.28
Sharpe in excess of T-bills for each setting. Blue: above buy-and-hold's 0.17; orange: below; every value is printed. The famous 12/26 setting is outlined; hatched cells made fewer than 5 trades; blank cells cannot be expressed (short average not shorter than the long one). Rows: short ema (days); columns: long ema (days).
CAGR, max drawdown and trade count for every setting

CAGR

Short EMA (days) \ Long EMA (days)202326303540
61.8%1.9%1.7%2.1%2.1%2.5%
82.5%2.7%2.8%2.2%2.6%2.8%
102.7%2.7%2.3%2.6%2.8%2.7%
122.5%2.8%3.3%2.8%2.5%3.4%
153.2%3.1%2.8%3.1%3.8%4.1%
183.2%2.6%3.2%4.0%4.4%4.3%

Max drawdown

Short EMA (days) \ Long EMA (days)202326303540
6-34.1%-26.3%-33.0%-31.8%-23.2%-23.3%
8-27.9%-27.5%-26.1%-23.6%-23.6%-25.2%
10-27.1%-22.1%-22.3%-22.3%-25.1%-27.2%
12-22.6%-21.5%-21.7%-23.9%-27.6%-26.4%
15-21.6%-22.3%-23.7%-26.1%-27.1%-24.7%
18-23.2%-24.5%-26.3%-25.5%-25.1%-23.0%

Trades over the window

Short EMA (days) \ Long EMA (days)202326303540
6178167153145135124
8156141130125110108
1013712211811210295
12122114103999685
1511010195907772
18999589787166

Highest Sharpe on the grid, chosen with hindsight: 18/35 (0.29). The famous setting is outlined; settings with fewer than 5 trades are hatched and left out of the neighbourhood and the shares.

Against buy-and-hold

2002-07-31 to 2026-09-3012/26 ruleBuy-and-hold
CAGR3.3%3.2%
Volatility (annualized)10.7%14.3%
Max drawdown-21.7%-48.4%
Sharpe, excess over T-bills (the page's basis)0.190.17
Sharpe with cash at 0% and no risk-free rate (the backtester's basis)0.280.30
Days invested56%100%
Trades over the window1031
Trades a year4.30
Worst calendar year2009 (-15%)2022 (-31%)
Growth of $1 in TLT: 12/26 rule against buy-and-holdLog-scaled growth of $1 from 2002-07-31 to 2026-09-30: the 12/26 rule ends at $2.17, buy-and-hold at $2.16.$1.0$2.0200220062010201420182022202612/26 ruleBuy-and-hold
Growth of $1 on a log scale, cash earning T-bills while the rule is out. Charts use sampled points (every 4 weeks); every number on the page uses daily data.
Drawdown of TLT: 12/26 rule against buy-and-holdDrawdown from the previous peak: the rule's deepest is -21.7%, buy-and-hold's -48.4%.-45%-40%-35%-30%-25%-20%-15%-10%-5%0%200220062010201420182022202612/26 ruleBuy-and-hold
Drawdown from the previous peak.

Walk-forward: choose in sample, judge out of sample

In each in-sample window of 10 years the setting with the highest Sharpe is chosen among settings with at least 3 trades in it, then held for the next 2 years out of sample. 7 windows, 2012-09-18 to 2026-09-30 (14.0 years); 32 earlier bars are not used. Switching settings at a window boundary is not charged.

#In sampleOut of sampleChosenIn-sample SharpeOut-of-sample Sharpe12/26 fixedBuy-and-hold
12002-09-17 to 2012-09-172012-09-18 to 2014-09-1918/400.400.23-0.020.11
22004-09-17 to 2014-09-192014-09-22 to 2016-09-2018/400.480.630.660.81
32006-09-18 to 2016-09-202016-09-21 to 2018-09-2018/400.58-0.55-1.32-0.51
42008-09-18 to 2018-09-202018-09-21 to 2020-09-2218/400.460.910.911.11
52010-09-20 to 2020-09-222020-09-23 to 2022-09-2218/350.61-0.170.07-1.25
62012-09-18 to 2022-09-222022-09-23 to 2024-09-2515/400.41-0.12-0.06-0.21
72014-09-22 to 2024-09-252024-09-26 to 2026-09-3018/350.32-0.94-1.12-0.91
Over 2012-09-18 to 2026-09-30CAGRSharpeMax drawdown
Walk-forward (chosen in sample)2.8%0.15-15.7%
12/26, fixed1.9%0.06-19.3%
Buy-and-hold-0.3%-0.07-48.4%
Walk-forward growth of $1 in TLTGrowth of $1 from 2012-09-18 to 2026-09-30: choosing the highest-Sharpe setting in sample each time ends at $1.48, the fixed 12/26 setting at $1.31, buy-and-hold at $0.96.$1.020122014201620182020202220242026Chosen in sample12/26, fixedBuy-and-hold
The out-of-sample stretches of the chosen settings, chained, against the fixed famous setting and buy-and-hold over the same years.

Mean in-sample Sharpe of the chosen settings 0.47, mean out-of-sample 0.00 (a drop of 0.47). 3 different settings were chosen in 7 windows. A 10-year window held a median of 43 trades of the famous setting.

Resampled histories

The rule's and buy-and-hold's daily returns are resampled together in circular 21-day blocks (so volatility clusters stay together and both series see the same days), 2,000 times, from the common window. Resampled histories, not a forecast: this measures how stable the gap is in the history we have, not the odds it repeats.

5th / 50th / 95th percentile12/26 ruleBuy-and-hold
CAGR-0.4% / 3.2% / 6.9%-1.2% / 3.3% / 8.1%
Sharpe, excess over T-bills-0.15 / 0.19 / 0.50-0.14 / 0.17 / 0.49
Max drawdown-47.2% / -29.8% / -19.5%-62.2% / -39.9% / -26.3%
Rule's Sharpe above buy-and-hold's53% of resamples
Rule's max drawdown shallower87% of resamples
Resampled growth of $1 in TLT: 12/26 ruleResampled histories of TLT: the 12/26 rule's 5th to 95th percentile of growth of $1 ends between $0.91 and $5.01; the actual path ends at $2.17; buy-and-hold's actual path ends at $2.16.$1.0$2.0$5.0200220062010201420182022202612/26 rule: 5th to 95th percentile12/26 rule, actual historybuy-and-hold, actualmedian of resamplesbuy-and-hold, resampled median
Growth of $1 on a log scale across 2,000 resampled histories, sampled every 8 weeks. Resampled histories, not a forecast.

Stress windows

Window12/26 ruleBuy-and-hold
Calendar 20082008-01-01 to 2008-12-3117%34%
Calendar 20202020-01-01 to 2020-12-3115%18%
Calendar 20222022-01-01 to 2022-12-310%-31%
Buy-and-hold's drawdown 12020-08-04 to 2023-10-19-6%-48%
Buy-and-hold's drawdown 22008-12-30 to 2009-06-10-13%-27%
Buy-and-hold's drawdown 32012-07-25 to 2013-08-21-13%-21%

Calendar years are whole years inside the window. The other rows are buy-and-hold's three deepest drawdowns (peak to trough); the rule's return is over the same dates.

Costs, fills and cash

12/26 ruleCAGRSharpeMax drawdownEntries a year
0 bps a side3.7%0.23-21.1%4.3
5 bps a side (the page's basis)3.3%0.19-21.7%4.3
20 bps a side1.9%0.07-23.6%4.3
Trade one day later (fills at the next day's close)4.1%0.26-19.6%4.3
Cash at 0% and no risk-free rate (the backtester's basis)buy-and-hold on this basis: CAGR 3.2%, Sharpe 0.30, max drawdown -48.4%2.4%0.28*-21.8%4.3

Sharpe is in excess of 3-month T-bills, except the last row (*), which uses the backtester's basis: cash at 0% and no risk-free rate. Trading a day later means the signal from today's close is filled at tomorrow's close.

Check it in the backtester

Open this rule in the backtester (TLT, daily, 5 bps)

The backtester runs on data through today, so its figures move slightly as new days arrive; the hash below identifies this page's window. As of data through 2026-09-30, over the backtester's own window (2002-07-31 to 2026-09-30, 24.1 years, cash at 0%, no risk-free rate):

  • CAGR 2.4% (buy-and-hold 3.3%)
  • Sharpe 0.28 (buy-and-hold 0.30)
  • Max drawdown -21.8% (buy-and-hold -48.4%)
  • Days invested 56%; trades 103

The backtester's overfit check (settings one or two steps away on short window and long window) keeps 92% of the Sharpe (robust). Reproduce hash: e339aae1cfa6b0a6.

Gold (GLD)

Claim checked
"Holding while the MACD line is above zero beats buy-and-hold."
Did not hold up
GLD, 2004-11-19 to 2026-09-30 (21.8 years), 91 trades. "Beats" means a higher return or a higher risk-adjusted return, across nearby settings and out of sample. No reliable difference.
8.1%
CAGRbuy-and-hold 10.3%
-38.8%
Max drawdownbuy-and-hold -45.6%
0.49
Sharpe, excess over T-billsbuy-and-hold 0.53
robust 95% kept
Nearby settingsshare of the Sharpe kept by neighbours

12/26 setting against buying and holding GLD, 2004-11-19 to 2026-09-30 (21.8 years), cash earning 3-month Treasury bills. The backtester's own figures (cash at 0%, no risk-free rate) are in the box at the end.

What the numbers say about GLD

Verdict: No reliable difference. The tests did not line up with buy-and-hold: its Sharpe of 0.49 was not at least 0.10 above buy-and-hold's 0.53; only 0 of 36 settings beat buy-and-hold's Sharpe; the walk-forward Sharpe of 0.47 was below buy-and-hold's 0.61 over the same years; the rule's Sharpe led in only 38% of resampled histories.

12/26 against its neighbours

Sharpe of the 12/26-day EMA crossover (the MACD line above zero) on GLD by settingSharpe in excess of T-bills for each short ema (days) and long ema (days) on GLD, 2004-11-19 to 2026-09-30. Buy-and-hold: 0.53. The famous setting 12/26 scored 0.49.Long EMA (days)Short EMA (days)20232630354060.470.480.450.450.440.4280.470.450.460.490.450.43100.420.450.490.470.460.38120.440.470.490.460.380.39150.490.470.420.370.410.45180.470.420.360.430.410.40
Sharpe in excess of T-bills for each setting. Blue: above buy-and-hold's 0.53; orange: below; every value is printed. The famous 12/26 setting is outlined; hatched cells made fewer than 5 trades; blank cells cannot be expressed (short average not shorter than the long one). Rows: short ema (days); columns: long ema (days).
CAGR, max drawdown and trade count for every setting

CAGR

Short EMA (days) \ Long EMA (days)202326303540
67.6%7.7%7.4%7.4%7.3%7.0%
87.7%7.3%7.5%8.0%7.5%7.2%
107.0%7.4%8.0%7.7%7.6%6.4%
127.3%7.7%8.1%7.6%6.4%6.6%
158.0%7.8%7.1%6.2%6.9%7.4%
187.7%6.9%6.2%7.1%6.8%6.7%

Max drawdown

Short EMA (days) \ Long EMA (days)202326303540
6-27.3%-29.6%-35.7%-34.7%-37.6%-38.3%
8-30.5%-32.8%-34.1%-36.5%-37.2%-39.0%
10-37.2%-32.8%-35.9%-40.1%-37.3%-42.2%
12-31.2%-36.9%-38.8%-39.0%-39.8%-45.7%
15-37.7%-36.7%-42.1%-40.3%-39.8%-34.9%
18-36.3%-41.9%-42.7%-35.7%-38.6%-37.3%

Trades over the window

Short EMA (days) \ Long EMA (days)202326303540
6156136133121115108
81301221121029995
1012110696948988
121049491848381
15908884807166
18878479716760

Highest Sharpe on the grid, chosen with hindsight: 15/20 (0.49). The famous setting is outlined; settings with fewer than 5 trades are hatched and left out of the neighbourhood and the shares.

Against buy-and-hold

2004-11-19 to 2026-09-3012/26 ruleBuy-and-hold
CAGR8.1%10.3%
Volatility (annualized)14.2%18.3%
Max drawdown-38.8%-45.6%
Sharpe, excess over T-bills (the page's basis)0.490.53
Sharpe with cash at 0% and no risk-free rate (the backtester's basis)0.570.63
Days invested57%100%
Trades over the window911
Trades a year4.20
Worst calendar year2015 (-14%)2013 (-28%)
Growth of $1 in GLD: 12/26 rule against buy-and-holdLog-scaled growth of $1 from 2004-11-19 to 2026-09-30: the 12/26 rule ends at $5.42, buy-and-hold at $8.50.$1.0$2.0$5.0$102004200720102013201620192022202512/26 ruleBuy-and-hold
Growth of $1 on a log scale, cash earning T-bills while the rule is out. Charts use sampled points (every 4 weeks); every number on the page uses daily data.
Drawdown of GLD: 12/26 rule against buy-and-holdDrawdown from the previous peak: the rule's deepest is -38.8%, buy-and-hold's -45.6%.-40%-35%-30%-25%-20%-15%-10%-5%0%2004200720102013201620192022202512/26 ruleBuy-and-hold
Drawdown from the previous peak.

Walk-forward: choose in sample, judge out of sample

In each in-sample window of 10 years the setting with the highest Sharpe is chosen among settings with at least 3 trades in it, then held for the next 2 years out of sample. 5 windows, 2016-09-21 to 2026-09-30 (10.0 years); 458 earlier bars are not used. Switching settings at a window boundary is not charged.

#In sampleOut of sampleChosenIn-sample SharpeOut-of-sample Sharpe12/26 fixedBuy-and-hold
12006-09-18 to 2016-09-202016-09-21 to 2018-09-206/200.41-0.04-0.32-0.51
22008-09-18 to 2018-09-202018-09-21 to 2020-09-226/230.320.720.981.44
32010-09-20 to 2020-09-222020-09-23 to 2022-09-226/230.30-0.47-0.59-0.44
42012-09-18 to 2022-09-222022-09-23 to 2024-09-2518/300.010.821.161.30
52014-09-22 to 2024-09-252024-09-26 to 2026-09-3015/400.350.800.940.86
Over 2016-09-21 to 2026-09-30CAGRSharpeMax drawdown
Walk-forward (chosen in sample)8.2%0.47-19.4%
12/26, fixed9.8%0.58-19.3%
Buy-and-hold11.7%0.61-26.4%
Walk-forward growth of $1 in GLDGrowth of $1 from 2016-09-21 to 2026-09-30: choosing the highest-Sharpe setting in sample each time ends at $2.20, the fixed 12/26 setting at $2.56, buy-and-hold at $3.04.$1.0$2.0201620182020202220242026Chosen in sample12/26, fixedBuy-and-hold
The out-of-sample stretches of the chosen settings, chained, against the fixed famous setting and buy-and-hold over the same years.

Mean in-sample Sharpe of the chosen settings 0.28, mean out-of-sample 0.36 (a rise of 0.09). 4 different settings were chosen in 5 windows. A 10-year window held a median of 41 trades of the famous setting.

Resampled histories

The rule's and buy-and-hold's daily returns are resampled together in circular 21-day blocks (so volatility clusters stay together and both series see the same days), 2,000 times, from the common window. Resampled histories, not a forecast: this measures how stable the gap is in the history we have, not the odds it repeats.

5th / 50th / 95th percentile12/26 ruleBuy-and-hold
CAGR2.7% / 8.1% / 13.5%3.8% / 10.3% / 17.4%
Sharpe, excess over T-bills0.13 / 0.49 / 0.830.20 / 0.53 / 0.87
Max drawdown-46.5% / -30.3% / -20.6%-56.6% / -38.7% / -27.2%
Rule's Sharpe above buy-and-hold's38% of resamples
Rule's max drawdown shallower86% of resamples
Resampled growth of $1 in GLD: 12/26 ruleResampled histories of GLD: the 12/26 rule's 5th to 95th percentile of growth of $1 ends between $1.77 and $15.81; the actual path ends at $5.63; buy-and-hold's actual path ends at $9.16.$1.0$2.0$5.0$102005200820112014201720202023202612/26 rule: 5th to 95th percentile12/26 rule, actual historybuy-and-hold, actualmedian of resamplesbuy-and-hold, resampled median
Growth of $1 on a log scale across 2,000 resampled histories, sampled every 8 weeks. Resampled histories, not a forecast.

Stress windows

Window12/26 ruleBuy-and-hold
Calendar 20082008-01-01 to 2008-12-310%5%
Calendar 20202020-01-01 to 2020-12-3112%25%
Calendar 20222022-01-01 to 2022-12-317%-1%
Buy-and-hold's drawdown 12011-08-22 to 2015-12-17-37%-46%
Buy-and-hold's drawdown 22008-03-17 to 2008-11-12-22%-29%
Buy-and-hold's drawdown 32026-01-29 to 2026-07-16-13%-26%

Calendar years are whole years inside the window. The other rows are buy-and-hold's three deepest drawdowns (peak to trough); the rule's return is over the same dates.

Costs, fills and cash

12/26 ruleCAGRSharpeMax drawdownEntries a year
0 bps a side8.5%0.52-37.5%4.2
5 bps a side (the page's basis)8.1%0.49-38.8%4.2
20 bps a side6.7%0.40-42.5%4.2
Trade one day later (fills at the next day's close)7.8%0.47-36.5%4.2
Cash at 0% and no risk-free rate (the backtester's basis)buy-and-hold on this basis: CAGR 10.3%, Sharpe 0.63, max drawdown -45.6%7.3%0.57*-38.9%4.2

Sharpe is in excess of 3-month T-bills, except the last row (*), which uses the backtester's basis: cash at 0% and no risk-free rate. Trading a day later means the signal from today's close is filled at tomorrow's close.

Check it in the backtester

Open this rule in the backtester (GLD, daily, 5 bps)

The backtester runs on data through today, so its figures move slightly as new days arrive; the hash below identifies this page's window. As of data through 2026-09-30, over the backtester's own window (2004-11-19 to 2026-09-30, 21.8 years, cash at 0%, no risk-free rate):

  • CAGR 7.3% (buy-and-hold 10.4%)
  • Sharpe 0.57 (buy-and-hold 0.63)
  • Max drawdown -38.9% (buy-and-hold -45.6%)
  • Days invested 57%; trades 91

The backtester's overfit check (settings one or two steps away on short window and long window) keeps 98% of the Sharpe (robust). Reproduce hash: 61e8de438a88cc92.

Developed markets ex-US (EFA)

Claim checked
"Holding while the MACD line is above zero beats buy-and-hold."
Partly (shallower drawdown, lower return)
EFA, 2001-08-28 to 2026-09-30 (25.0 years), 102 trades. "Beats" means a higher return or a higher risk-adjusted return, across nearby settings and out of sample. Shallower drawdown, lower return.
4.8%
CAGRbuy-and-hold 6.5%
-29.0%
Max drawdownbuy-and-hold -61.0%
0.30
Sharpe, excess over T-billsbuy-and-hold 0.32
robust at least 100% kept
Nearby settingsshare of the Sharpe kept by neighbours

12/26 setting against buying and holding EFA, 2001-08-28 to 2026-09-30 (25.0 years), cash earning 3-month Treasury bills. The backtester's own figures (cash at 0%, no risk-free rate) are in the box at the end.

What the numbers say about EFA

Verdict: Shallower drawdown, lower return. The 12/26 setting cut the worst drawdown by 32 points at a cost of 2 points of annual return.

12/26 against its neighbours

Sharpe of the 12/26-day EMA crossover (the MACD line above zero) on EFA by settingSharpe in excess of T-bills for each short ema (days) and long ema (days) on EFA, 2001-08-28 to 2026-09-30. Buy-and-hold: 0.32. The famous setting 12/26 scored 0.30.Long EMA (days)Short EMA (days)20232630354060.440.420.390.430.370.3980.410.390.390.400.380.36100.380.390.370.320.330.34120.380.330.300.350.310.27150.320.360.370.300.290.31180.400.340.330.340.300.31
Sharpe in excess of T-bills for each setting. Blue: above buy-and-hold's 0.32; orange: below; every value is printed. The famous 12/26 setting is outlined; hatched cells made fewer than 5 trades; blank cells cannot be expressed (short average not shorter than the long one). Rows: short ema (days); columns: long ema (days).
CAGR, max drawdown and trade count for every setting

CAGR

Short EMA (days) \ Long EMA (days)202326303540
66.6%6.5%6.0%6.6%5.8%6.0%
86.3%6.1%6.1%6.1%5.8%5.6%
106.0%6.1%5.8%5.1%5.2%5.3%
125.9%5.3%4.8%5.4%4.9%4.5%
155.1%5.6%5.8%4.8%4.7%5.0%
186.1%5.4%5.2%5.4%4.9%4.9%

Max drawdown

Short EMA (days) \ Long EMA (days)202326303540
6-28.9%-29.4%-28.3%-31.1%-31.0%-26.8%
8-26.6%-33.6%-32.5%-25.2%-28.2%-28.6%
10-29.1%-31.3%-26.3%-28.6%-28.2%-26.2%
12-29.3%-28.5%-29.0%-26.1%-24.3%-28.8%
15-27.7%-25.1%-22.8%-23.5%-26.5%-26.4%
18-23.2%-25.3%-22.0%-24.9%-26.3%-27.0%

Trades over the window

Short EMA (days) \ Long EMA (days)202326303540
6150134125114116101
81271181101049695
10115109102989282
12108102102888178
151019280827771
18898079726965

Highest Sharpe on the grid, chosen with hindsight: 6/20 (0.44). The famous setting is outlined; settings with fewer than 5 trades are hatched and left out of the neighbourhood and the shares.

Against buy-and-hold

2001-08-28 to 2026-09-3012/26 ruleBuy-and-hold
CAGR4.8%6.5%
Volatility (annualized)12.4%20.7%
Max drawdown-29.0%-61.0%
Sharpe, excess over T-bills (the page's basis)0.300.32
Sharpe with cash at 0% and no risk-free rate (the backtester's basis)0.400.41
Days invested65%100%
Trades over the window1021
Trades a year4.10
Worst calendar year2011 (-17%)2008 (-41%)
Growth of $1 in EFA: 12/26 rule against buy-and-holdLog-scaled growth of $1 from 2001-08-28 to 2026-09-30: the 12/26 rule ends at $3.25, buy-and-hold at $4.81.$1.0$2.0200120052009201320172021202512/26 ruleBuy-and-hold
Growth of $1 on a log scale, cash earning T-bills while the rule is out. Charts use sampled points (every 4 weeks); every number on the page uses daily data.
Drawdown of EFA: 12/26 rule against buy-and-holdDrawdown from the previous peak: the rule's deepest is -29.0%, buy-and-hold's -61.0%.-50%-40%-30%-20%-10%0%200120052009201320172021202512/26 ruleBuy-and-hold
Drawdown from the previous peak.

Walk-forward: choose in sample, judge out of sample

In each in-sample window of 10 years the setting with the highest Sharpe is chosen among settings with at least 3 trades in it, then held for the next 2 years out of sample. 7 windows, 2012-09-18 to 2026-09-30 (14.0 years); 260 earlier bars are not used. Switching settings at a window boundary is not charged.

#In sampleOut of sampleChosenIn-sample SharpeOut-of-sample Sharpe12/26 fixedBuy-and-hold
12002-09-17 to 2012-09-172012-09-18 to 2014-09-198/200.620.080.451.03
22004-09-17 to 2014-09-192014-09-22 to 2016-09-206/200.48-0.80-0.88-0.11
32006-09-18 to 2016-09-202016-09-21 to 2018-09-2015/260.210.590.581.01
42008-09-18 to 2018-09-202018-09-21 to 2020-09-2215/260.270.470.750.01
52010-09-20 to 2020-09-222020-09-23 to 2022-09-2218/200.26-0.31-0.220.01
62012-09-18 to 2022-09-222022-09-23 to 2024-09-256/300.230.700.601.03
72014-09-22 to 2024-09-252024-09-26 to 2026-09-308/260.310.590.670.73
Over 2012-09-18 to 2026-09-30CAGRSharpeMax drawdown
Walk-forward (chosen in sample)3.2%0.18-25.8%
12/26, fixed4.2%0.27-29.0%
Buy-and-hold7.8%0.43-34.2%
Walk-forward growth of $1 in EFAGrowth of $1 from 2012-09-18 to 2026-09-30: choosing the highest-Sharpe setting in sample each time ends at $1.56, the fixed 12/26 setting at $1.78, buy-and-hold at $2.87.$1.0$2.020122014201620182020202220242026Chosen in sample12/26, fixedBuy-and-hold
The out-of-sample stretches of the chosen settings, chained, against the fixed famous setting and buy-and-hold over the same years.

Mean in-sample Sharpe of the chosen settings 0.34, mean out-of-sample 0.19 (a drop of 0.15). 6 different settings were chosen in 7 windows. A 10-year window held a median of 42 trades of the famous setting.

Resampled histories

The rule's and buy-and-hold's daily returns are resampled together in circular 21-day blocks (so volatility clusters stay together and both series see the same days), 2,000 times, from the common window. Resampled histories, not a forecast: this measures how stable the gap is in the history we have, not the odds it repeats.

5th / 50th / 95th percentile12/26 ruleBuy-and-hold
CAGR0.8% / 4.8% / 9.0%0.1% / 6.6% / 13.4%
Sharpe, excess over T-bills-0.02 / 0.30 / 0.600.03 / 0.33 / 0.64
Max drawdown-49.7% / -30.8% / -21.0%-72.2% / -49.9% / -34.1%
Rule's Sharpe above buy-and-hold's42% of resamples
Rule's max drawdown shallower94% of resamples
Resampled growth of $1 in EFA: 12/26 ruleResampled histories of EFA: the 12/26 rule's 5th to 95th percentile of growth of $1 ends between $1.23 and $8.55; the actual path ends at $3.29; buy-and-hold's actual path ends at $4.97.$1.0$2.0$5.0200120052009201320172021202512/26 rule: 5th to 95th percentile12/26 rule, actual historybuy-and-hold, actualmedian of resamplesbuy-and-hold, resampled median
Growth of $1 on a log scale across 2,000 resampled histories, sampled every 8 weeks. Resampled histories, not a forecast.

Stress windows

Window12/26 ruleBuy-and-hold
Calendar 20082008-01-01 to 2008-12-31-2%-41%
Calendar 20202020-01-01 to 2020-12-3119%8%
Calendar 20222022-01-01 to 2022-12-31-7%-14%
Buy-and-hold's drawdown 12007-10-31 to 2009-03-09-22%-61%
Buy-and-hold's drawdown 22018-01-26 to 2020-03-23-8%-34%
Buy-and-hold's drawdown 32001-08-29 to 2003-03-12-7%-30%

Calendar years are whole years inside the window. The other rows are buy-and-hold's three deepest drawdowns (peak to trough); the rule's return is over the same dates.

Costs, fills and cash

12/26 ruleCAGRSharpeMax drawdownEntries a year
0 bps a side5.2%0.33-28.1%4.1
5 bps a side (the page's basis)4.8%0.30-29.0%4.1
20 bps a side3.5%0.20-36.5%4.1
Trade one day later (fills at the next day's close)5.5%0.35-24.6%4.1
Cash at 0% and no risk-free rate (the backtester's basis)buy-and-hold on this basis: CAGR 6.5%, Sharpe 0.41, max drawdown -61.0%4.2%0.40*-30.1%4.1

Sharpe is in excess of 3-month T-bills, except the last row (*), which uses the backtester's basis: cash at 0% and no risk-free rate. Trading a day later means the signal from today's close is filled at tomorrow's close.

Check it in the backtester

Open this rule in the backtester (EFA, daily, 5 bps)

The backtester runs on data through today, so its figures move slightly as new days arrive; the hash below identifies this page's window. As of data through 2026-09-30, over the backtester's own window (2001-08-28 to 2026-09-30, 25 years, cash at 0%, no risk-free rate):

  • CAGR 4.2% (buy-and-hold 6.4%)
  • Sharpe 0.40 (buy-and-hold 0.40)
  • Max drawdown -30.1% (buy-and-hold -61.0%)
  • Days invested 65%; trades 102

The backtester's overfit check (settings one or two steps away on short window and long window) keeps at least 100% of the Sharpe (robust). Reproduce hash: c9f6085fd2dc591b.

Frequently asked questions

Does the 12/26 EMA crossover beat buy-and-hold?
SPY: Trailed buy-and-hold. Sharpe 0.36 against 0.51, max drawdown -32% against -55%. QQQ: Shallower drawdown, lower return. Sharpe 0.44 against 0.44, max drawdown -34% against -83%. TLT: No reliable difference. Sharpe 0.19 against 0.17, max drawdown -22% against -48%. GLD: No reliable difference. Sharpe 0.49 against 0.53, max drawdown -39% against -46%. EFA: Shallower drawdown, lower return. Sharpe 0.30 against 0.32, max drawdown -29% against -61%.
Would nearby settings of the 12/26 EMA crossover have done the same?
SPY: 1 of 36 settings beat buy-and-hold's Sharpe; neighbours kept 99% of it. QQQ: 19 of 36 settings beat buy-and-hold's Sharpe; neighbours kept 100% of it. TLT: 11 of 36 settings beat buy-and-hold's Sharpe; the 12/26 setting's Sharpe was 0.19, so no ratio is computed. GLD: 0 of 36 settings beat buy-and-hold's Sharpe; neighbours kept 95% of it. EFA: 27 of 36 settings beat buy-and-hold's Sharpe; neighbours kept at least 100% of it.
Is the 12/26 result curve-fitting?
SPY: walk-forward Sharpe 0.59 against 0.56 for buy-and-hold; the rule's Sharpe led in 13% of resampled histories. QQQ: walk-forward Sharpe 0.63 against 0.90 for buy-and-hold; the rule's Sharpe led in 51% of resampled histories. TLT: walk-forward Sharpe 0.15 against -0.07 for buy-and-hold; the rule's Sharpe led in 53% of resampled histories. GLD: walk-forward Sharpe 0.47 against 0.61 for buy-and-hold; the rule's Sharpe led in 38% of resampled histories. EFA: walk-forward Sharpe 0.18 against 0.43 for buy-and-hold; the rule's Sharpe led in 42% of resampled histories.

Caveats

Methodology

Data
Daily total-return-adjusted closes from Yahoo Finance via MarketHeist (the fund's own history; no proxy splicing), through 2026-09-30 (the last trading day of the last complete month). Today's partial bar is always cut. Idle cash earns the FRED 3-month Treasury constant-maturity yield (DGS3MO), using the last observation dated before each bar's start.
The rule
Hold the fund while its 12-day exponential moving average is above its 26-day one (the MACD line above zero); hold cash otherwise. This is the MACD zero-line rule, not the MACD signal-line crossover, which the engine cannot express. Long-only, unlevered, one position size, 5 bps a side. A signal from a day's close is filled at that close (an idealized fill; the sensitivity table shows one day later).
Windows
Every comparison uses one common window per ETF: from the first bar at which every setting on the grid (and every sensitivity run) is measurable to the data end, so a long-lookback setting is never compared over a shorter sample than a short one. SPY: 1993-02-01 to 2026-09-30 (33.6 years); QQQ: 1999-03-11 to 2026-09-30 (27.5 years); TLT: 2002-07-31 to 2026-09-30 (24.1 years); GLD: 2004-11-19 to 2026-09-30 (21.8 years); EFA: 2001-08-28 to 2026-09-30 (25.0 years). Buy-and-hold is the same fund over the same window. A page needs a common window of at least 15 years containing whole calendar years 2008, 2020 and 2022. The backtester's own window (in the box at the end) starts at each setting's own first measured bar, so its figures differ slightly.
Metrics
The engine's own functions: Sharpe is the mean over the sample standard deviation of daily returns times the square root of 252, here in excess of the 3-month bill; CAGR is from bars over 252; maximum drawdown is on the compounded window. A trade is an entry. On the backtester's basis (cash at 0%, no risk-free rate) the same rules look better against buy-and-hold than they do after bills; both are shown.
Neighbourhood
The up to eight grid positions next to the famous setting, diagonals included. Settings with fewer than 5 trades over the window are not neighbours. The share of the Sharpe that neighbours keep is the median neighbour Sharpe over the famous setting's, computed only when the famous setting's Sharpe is at least 0.20; it is classed as the backtester's overfit badge is (robust at 70% or more, sensitive from 50%, fragile below).
Walk-forward
Rolling windows anchored to the data end: 10 years in sample, 2 out of sample, stepping 2 years; complete windows only (at least 4); in each in-sample window the setting with the highest Sharpe among those with at least 3 trades is chosen (ties go to the lowest grid index). The app's own walk-forward tool is not used here: it restarts the indicator inside each test slice.
Resampling
Paired circular moving-block bootstrap, 21-day blocks, 2,000 resamples, seeded from the reproduce hash so a regeneration on unchanged data is identical. It differs from the backtester's Monte Carlo panel, which reorders single days (every reordering ends at the same final value) or resamples single days (which destroys volatility clusters).
Verdict
One per ETF, first match wins: Trailed buy-and-hold (Sharpe at or below zero, or fewer than 25% of settings beat buy-and-hold's Sharpe while the famous one trails it by 0.10 or more); Sits on a spike (the famous setting beats buy-and-hold but its neighbours keep under 50% of its Sharpe); Held up in this test (Sharpe at least 0.10 above buy-and-hold's, at least 60% of settings above it, the walk-forward chain at or above buy-and-hold's out of sample, 80% of resamples, and the same gap with fills a day later and at 20 bps; at least 30 trades, and 10 entries by the walk-forward chain out of sample, otherwise Too few trades to call, or Held up only without frictions when only the frictions fail); Shallower drawdown, lower return (max drawdown shallower by 10 points or more with a lower CAGR); otherwise No reliable difference. The thresholds were fixed before the results were seen.
Generated
2026-10-13; engine 1.0.0. Every figure is computed and every sentence is rule-based over those figures; no language model is involved. Reproduce hash of the famous setting over the backtester's own window: SPY 265ad5fe1a391dea, QQQ 6033dc34e3e63262, TLT e339aae1cfa6b0a6, GLD 61e8de438a88cc92, EFA c9f6085fd2dc591b.
Related
All robustness checks · SPY in the backtester · QQQ in the backtester · TLT in the backtester · GLD in the backtester · EFA in the backtester · the ema crossover indicator

Other rules: 200-day moving average rule, 200-day moving average rule, 200-day moving average rule, 200-day moving average rule, 200-day moving average rule, golden cross, golden cross, golden cross, golden cross, golden cross, RSI(14) 30/70 rule

All robustness checks →

Historical simulation, not investment advice. Past results do not predict future results.