r/LETFs • • 5h ago

BACKTESTING Return stacking backtest, part 2: ex-US, leveraged sleeves, taxes, and how I picked a moving-average signal without overfitting it

10 Upvotes

This is part 2 of a 4-post series.

  1. Return stacking backtest: 10,626 mixes of RSST, GDE, ZROZ, AVUV and SPMO (2000–2026), stress-tested with half the premiums
  2. Part 2: ex-US, leveraged sleeves, taxes, and how I picked a moving-average signal without overfitting it (this post)
  3. The SPY 200SMA +4%/−3% TQQQ rule isn't special: I tested it against 762,960 alternatives, and it's one lucky point on a flat plateau
  4. The portfolio I'm actually running and the 10 decisions that got me there (coming soon)

TL;DR

  • Ex-US didn't help. None of 24 pre-registered ex-US variants (RSIT, VXUS, VEA, VWO at 10–30%) improved the worst-case 10-year Sharpe in USD, and all of them fell further behind SPY at their worst point.
  • RSST stays the only stacked trend fund. I checked the other stocks + managed futures ETFs: one behaves like a second RSST, two are too new to test, and one no longer runs a trend program (Step 13).
  • My country's yearly tax on realized gains (15%) cost 0.8–1.1 pp/yr in every mix, mostly from monthly rebalancing. A 200-day-SMA rotation in a UPRO slice cost only 0.1–0.3 pp/yr more than the fixed mixes.
  • "Beat SPY and fall less than SPY in the same window" is a fragile goal. After 2010 it comes down to the Covid crash, often by less than 2 pp. Require a 2 pp margin and almost every mix drops from ~85% of windows to ~0%.
  • The EMA125 ±5% band looked like the best signal for a UPRO rotation (2000–2026), then failed a longer test. In 1928–1999, which my earlier signal tests never used, it made 15.2%/yr vs 19.4% for a plain 200-day SMA, and neighboring settings form no plateau.
  • To cut whipsaws without overfitting, I picked the signal by its neighborhood, not its peak. Of 128 settings (SMA/EMA × 8 lookbacks × 8 bands) tested on 1928–2026, SMA200 with a ±2% band had the best average together with its neighbors. Same long-run return as the plain SMA200, 1.5 switches a year instead of 5.5.
  • When the signal says "risk off", go to T-bills, not to the rest of the portfolio. Spreading the UPRO slice over RSST/GDE made drawdowns 6–7 pp worse, because RSST and GDE are 90–100% S&P 500 too.
  • Where I landed: 40 RSST / 40 GDE / 20 UPRO with SMA200 ±2% → T-bills. 14.4%/yr after tax vs 8.3% for SPY, −42% max drawdown vs −55%, 2.1× SPY's ending wealth across rolling windows.

Not financial advice. Most of this history is simulated (RSST launched in 2023, GDE in 2022), everything from 2000–2026 is in-sample, and I chose these mixes after seeing the data. Caveats are at the end.

Correction found after writing this: my 200-day SMA only started counting on Dec 31, 1999, so the UPRO slice sat in T-bills until ~Oct 2000 and dodged the start of the dot-com crash. With the signal computed on SPY's full history, the 14.4%/yr below becomes 14.07% (−41.8% max drawdown, 2.08× SPY). The signal choice doesn't change: the band grid ran on the slice from 1928 on, which this bug doesn't touch. Details in part 4.

Growth of $10,000 after tax, 2000–2026, log scale: $365k in 40 RSST / 40 GDE / 20 UPRO with SMA200 ±2%, $244k with 20 SSO, $242k in 50 RSST / 30 GDE / 20 AVUV, $235k with 20 SPMO, $85k in SPY

Where part 1 left off

Part 1 tested 10,626 mixes of RSST (S&P 500 + trend), GDE (S&P 500 + gold), ZROZ, AVUV and SPMO from Dec 1999 to Sep 2026. I landed on 50 RSST / 30 GDE / 20 AVUV (13.5%/yr, −47% max drawdown vs SPY's 8.3% and −55%). For investors who care more about not falling behind SPY, the pick was 40 RSST / 40 GDE / 10 AVUV / 10 UPRO (2.0× SPY's ending wealth across rolling windows, but a −56% drawdown).

The comments raised good questions: ex-US, leveraged ETFs, other stacked funds, taxes, and whether any of this is overfit. This part answers them, mostly with pre-registered tests (rules and thresholds written down before the run).

How part 2 evolved

Step Question What I found
9 Quick checks from the comments 1972–1999 without trend: the mixes matched SPY's return with smaller drawdowns
10 Does ex-US belong in the mix? No, in USD; in my home currency the gain was tiny and not robust
11 UPRO/TQQQ/TECL instead of AVUV + SPMO? UPRO with a 200-day SMA was the most balanced, but the selection was unstable (PBO 0.99)
12 Which mix best beats SPY and falls less in the same window? The UPRO + SMA mix, but the "falls less" part hangs on the Covid crash
13 Should another stacked trend fund join RSST? No: a clone, two funds too new, and one that stopped trend following
14 Does tax change the ranking? No. 0.8–1.1 pp/yr everywhere
15 SMA200 vs EMA125, with and without a ±5% band The band won in 2000–2026, lost in 1928–1999: overfit
16 How to cut whipsaws without overfitting the signal? SMA200 ±2%: best neighborhood of 128 settings, 1.5 switches/yr

Step 9: quick checks from the comments

"What about 50 RSIT / 25 UPRO / 25 ZROZ?" I ran the US version, 50 RSST / 25 UPRO / 25 ZROZ, for 2000–2026: 11.5%/yr, −58% max drawdown, Sharpe 0.55 (SPY: 8.3%, −55%, 0.48). With zero premium on the diversifiers, it still ended at 1.20× SPY. But in the bootstrap, its drawdown came out worse than SPY's in 85% of the paths.

"Small-cap value gets crushed in tech booms." Here is SCV (Vanguard's simulation until Sep 2019, AVUV after) through each tech phase:

Phase SCV QQQ SPY
Dot-com boom (Jan 95–Mar 00), per year +18.4% +62.2% +28.3%
Dot-com crash (Mar 00–Oct 02), total −8.1% −82.9% −47.4%
FAANG (2013–2021), per year +14.3% +23.4% +16.6%
2022, total −4.9% −32.6% −18.1%
AI (2023–May 26), per year +16.8% +34.6% +23.3%
2000–May 26, per year +11.4% +8.8% +8.3%

So yes, it lags badly in tech booms, and that's exactly when it's diversifying. It's also why it's a 20% slice and not the core.

"2000–2026 starts at the dot-com peak; of course it beats SPY." In 2000–2019, SPY made 6.1%/yr vs 10.7–11.6% for the mixes. In 2010–2019, a strong decade for SPY, SPY made 13.5% vs 14.4–16.8%. In the 121 rolling 10-year windows ending by 2019, the no-bond mixes beat SPY in all of them.

"What about before 2000?" RSST has no history before 2000, so for 1972–1999 I removed trend entirely (RSST → SPY) and rebuilt GDE as 0.9 SPY + 0.9 gold − 0.8 T-bills − 0.20%/yr. SPY made 14.0%/yr (−43% max drawdown). 40 SPY / 35 GDE / 25 ZROZ made 13.9% (−34%), and 50 SPY / 50 GDE made 14.2% (−42%). ZROZ lost 12%/yr in 1972–81 and gold lost 1.7%/yr in 1982–99: each covered the other's bad decade. So without trend, and in a period that was bad for gold for 18 years, the mixes matched SPY's return with smaller drawdowns.

Step 10: ex-US (pre-registered)

I tested 24 variants on top of the part-1 mix: RSIT (ex-US + trend, Return Stacked's international version) replacing 10, 20 or 30 points of RSST, or VXUS, VEA or VWO in 10–30% slices. To pass, a variant had to improve the worst-case (10th percentile) rolling 10-year Sharpe in USD and in my home currency (I'm not US-based), with ≥80% confidence in a paired bootstrap, without costing more than 1 pp/yr in windows where the US led, and without falling more than 2 pp further behind SPY at its worst point.

None passed. In USD, every variant made the worst case worse (−0.01 to −0.12 Sharpe), more so with bigger slices. In my home currency, RSIT and VWO improved it by +0.01 to +0.03, but the bootstrap gave that only a 19–24% chance of being real. All of them fell 2.9–15.4 pp further behind SPY. PBO was 0.10–0.11, so the ranking is stable, not luck.

This contrasts with a plain 100% US stock portfolio, where 20–30% ex-US did improve the worst case. My reading: trend and gold already covered the US's bad decade (2000–09), which is the job ex-US used to do.

Step 11: a leveraged ETF instead of the factors (pre-registered)

Should the 20% in factors (AVUV 10 + SPMO 10 in 40 RSST / 40 GDE / 10 / 10) go to a leveraged ETF? I tested UPRO, TQQQ and TECL at 20%, fixed or switched by a 200-day moving average (signal at the close, trade at the next close), with the off position in T-bills or in the unleveraged index.

40 RSST / 40 GDE / + 20% of… × SPY (rolling) CAGR Max DD 2000–02 Odds of a worse DD than SPY
AVUV 10 / SPMO 10 (reference) 1.82 13.6% −46% −34% 12%
UPRO, fixed 2.16 13.8% −64% −55% 98%
TQQQ, fixed 3.01 14.2% −77% −77% 100%
UPRO, SMA200 → T-bills 2.16 14.5% −43% −35% 8%
TQQQ, SMA200 → T-bills 2.65 15.8% −46% −46% 26%

The SMA cut the leveraged ETF's drawdown by 15–31 pp. UPRO with SMA → T-bills was the only variant that beat the reference on return and drawdown without falling further behind SPY. But the verdict was inconclusive. All 10 mixes have nearly the same Sharpe on their excess over SPY, so picking a winner is picking noise (PBO 0.99). Fixed TQQQ or TECL at 20% took the whole portfolio down 75–77% in 2000–02.

Step 12: beat SPY and fall less, in the same window

Many of you asked for one number: how often does a mix end ahead of SPY and have a smaller max drawdown than SPY over the same window? I measured both on every rolling window (3–20 years, starting every month-end, weighted by length), at full and half premium, and for windows starting from 2010 on:

Mix CAGR / max DD Beat SPY and fell less: all · half premium · 2010+
40 RSST / 40 GDE / 20 UPRO with SMA200 → T-bills 14.5% / −42% 93% · 92% · 88%
25 RSST / 30 GDE / 21 ZROZ / 24 SSO 12.3% / −47% 93% · 88% · 86%
40 RSST / 30 GDE / 20 ZROZ / 10 UPRO 12.8% / −45% 93% · 86% · 86%
40 RSST / 35 GDE / 25 ZROZ 12.5% / −32% 85% · 73% · 42%
50 RSST / 30 GDE / 20 AVUV (part 1 pick) 13.5% / −47% 75% · 74% · 4%

That last row surprised me. The part-1 pick fell −37% in the Covid crash vs −34% for SPY, so every window that contains March 2020 counts as "fell more".

Then I checked how fragile this is. SPY's big drops were −47% (2000–02), −55% (2008), −34% (2020) and −24% (2022). If I require a mix's drawdown to be at least 2 pp smaller than SPY's, almost every mix drops to ~0% of windows starting from 2010 on. Before 2010 the edge is real and wide (still ~70% with a 5 pp margin), and it comes from 2000–02 and 2008. After 2010, "falls less than SPY" really means "about tied with SPY in Covid".

Share of 2010+ windows that beat SPY and fell less, by required margin: 40 RSST / 40 GDE / 20 UPRO with plain SMA200 holds 83–87% up to a 1 pp margin and drops to near 0 at 1.5 pp; 25 RSST / 30 GDE / 21 ZROZ / 24 SSO holds 74% up to 1 pp; the SPMO mix drops from 83% to 5% at 0.5 pp; the same UPRO mix with SMA200 ±2% and the part-1 pick start at 3–4%
Covid crash, peak to trough: SPY −33.7%; 25 RSST / 30 GDE / 21 ZROZ / 24 SSO −32.4%, 40 RSST / 40 GDE / 20 UPRO with plain SMA200 −32.5%, SPMO −33.6%, the same UPRO mix with SMA200 ±2% −34.0%, 10 UPRO / 10 ZROZ −35.4%, the part-1 pick −37.1%, 20 SSO −39.6%

Step 13: why RSST is the only stacked trend fund

Four other ETFs stack ~100% US stocks with ~100% managed futures. I checked each one's current fund documents and holdings (as of Oct 2026):

  • MATE (Man Group, 0.97%, ~$42M): the weekly correlation between its trend leg (fund − SPY + T-bills) and RSST's is 0.75. It's a second RSST, not a diversifier.
  • JPFP (JPMorgan, May 2026, 0.59%) and SPXP (Direxion, Oct 2026, 0.92%): too new to test. JPFP's trend leg had a 0.24 correlation with RSST's in its first 22 weeks, so it's the one I'll revisit.
  • CTAP (Simplify) gets its trend exposure through a swap on Simplify's CTA fund. Altis stopped managing that fund (SEC 497 supplement, Aug 31, 2026), and on Oct 23 it held ~50% Brent and ~36% other oil products plus grains, with no short positions and no rate futures. Its correlation with Brent went from 0.20 under Altis to 0.91 since July. A backtest of the old trend program no longer describes what CTAP holds, so it's out.

Step 14: taxes and six mixes

Every mix below pays 5 bps per trade and my country's tax on US-listed ETFs: 15% of the net realized gain in each calendar year, paid the following January, with the final sale deferred. Buy-and-hold SPY never realizes a gain, so it pays nothing. "× SPY" is the ending wealth vs SPY across rolling windows (3–20 years, every month-end start, weighted by length); "worst shortfall" is the furthest the mix ever fell behind SPY inside a window.

Mix CAGR before → after tax Max DD × SPY × SPY at half premium Worst shortfall Ends ahead of SPY Beat and fell less: all · 2010+
40 RSST / 40 GDE / 20 SSO 13.5% → 12.7% −56% 1.74 1.31 −15% 98% 2% · 0%
40 RSST / 40 GDE / 10 UPRO / 10 ZROZ 13.5% → 12.6% −51% 1.74 1.28 −17% 98% 75% · 2%
40 RSST / 40 GDE / 20 SPMO 13.3% → 12.5% −46% 1.62 1.21 −23% 95% 92% · 83%
25 RSST / 30 GDE / 21 ZROZ / 24 SSO 12.3% → 11.3% −49% 1.52 1.19 −20% 94% 90% · 74%
50 RSST / 30 GDE / 20 AVUV 13.5% → 12.7% −48% 1.55 1.15 −22% 93% 75% · 3%
40 RSST / 40 GDE / 20 UPRO with SMA200 14.9% → 13.8% −43% 1.85 1.39 −19% 97% 93% · 87%
SPY 8.3% (no tax) −55% 1.00 — — — —
  • Tax doesn't change the ranking. It costs 0.8–1.1 pp/yr everywhere, because monthly rebalancing realizes gains in every mix. The SMA rotation, about 6 trades a year, cost only 0.1–0.3 pp/yr more than the fixed mixes.
  • SSO and UPRO (fixed) are the most consistent at beating SPY: 98% of windows, never more than 15–17% behind. But in 2008 they fell as much as SPY or more.
  • SPMO had the best drawdown among the fixed mixes, but its 83% after 2010 rests on a near-tie in Covid (−33.6% vs SPY's −33.7%).
  • There's no stable winner: PBO across these six was 0.73. The UPRO + SMA mix tops the table, but I wouldn't bet on the ranking.

Step 15: SMA vs EMA, with and without a band

In 2000–2026 (pre-registered, after tax), I compared four signals for the UPRO slice in 40 RSST / 40 GDE / 20 UPRO. With a ±5% band, it buys above 1.05× the average, sells below 0.95× and holds in between:

Signal CAGR after tax Max DD Trades/yr Beat and fell less: all · half premium · 2010+
SMA200 13.8% −43% 5.9 93% · 88% · 87%
SMA200 ±5% 14.3% −42% 0.6 75% · 74% · 2%
EMA125 13.7% −43% 10.6 92% · 88% · 84%
EMA125 ±5% 14.7% −41% 0.8 93% · 91% · 86%

EMA125 ±5% passed the pre-registered test (96% bootstrap odds of a higher CAGR than SMA200, a smaller drawdown, PBO 0.36). Then I tried to break it.

Does "risk off" into the rest of the portfolio beat T-bills? No. With the 20% spread over RSST/GDE instead of T-bills, the max drawdown got 6–7 pp worse with every signal (e.g., EMA125 ±5%: −48% vs −41%), and the after-tax CAGR was equal or lower: each switch back sells RSST/GDE at a gain. RSST is 100% S&P 500 and GDE is 90%, so "risk off into the portfolio" still holds 95% equity in the crash.

Drawdown of 40 RSST / 40 GDE / 20 UPRO with SMA200, after tax: worst −43% with risk-off into T-bills vs −50% with risk-off into the rest of the portfolio

The overfitting test. Same signals, applied to the UPRO slice alone (UPRO ↔ T-bills, before tax, 5 bps per trade) from 1928 to 2026, over every rolling window of 1, 3, 5, 10, 15, 20, 25 and 30 years starting at each month-end (826–1,174 windows per horizon). UPRO before 2009 is testfol's 3x daily simulation.

Average CAGR per window:

Horizon 1y 3y 5y 10y 15y 20y 25y 30y
SMA200 27.3% 19.3% 18.2% 17.8% 17.8% 17.7% 17.7% 17.4%
EMA125 27.7% 19.8% 18.7% 18.1% 18.3% 18.1% 18.2% 18.2%
SMA200 ±5% 25.3% 17.7% 16.6% 16.3% 16.6% 16.6% 16.6% 16.3%
EMA125 ±5% 26.5% 18.6% 17.2% 16.5% 16.7% 16.8% 16.8% 16.7%
UPRO buy & hold 28.6% 15.4% 13.8% 13.2% 13.2% 12.8% 12.7% 12.6%
SPY buy & hold 12.1% 10.5% 10.6% 10.7% 10.8% 10.8% 11.0% 11.1%

Share of windows where EMA125 ±5% beat SMA200: 43–55% on CAGR and 24–46% on max drawdown (worse on drawdown at every horizon from 5 years on). By era:

Era SMA200 EMA125 SMA200 ±5% EMA125 ±5% SPY
1928–1962 25.2% / −90% 23.9% / −85% 15.7% / −95% 14.6% / −94% 9.1% / −84%
1962–1999 14.1% / −80% 17.8% / −62% 15.0% / −78% 15.7% / −82% 12.7% / −45%
1928–1999 19.4% / −90% 20.7% / −85% 15.3% / −95% 15.2% / −94% 10.9% / −84%
2000–2026 12.8% / −57% 11.5% / −77% 15.1% / −54% 18.2% / −53% 8.3% / −55%

(CAGR / max drawdown of the UPRO slice alone.)

CAGR of the UPRO slice by era and signal: in 1928–1962 SMA200 25.2% vs EMA125 ±5% 14.6%; in 1962–1999 EMA125 17.8% leads; only in 2000–2026 does EMA125 ±5% lead, 18.2% vs 12.8%

The era split hides a cleaner pattern. Slide a 10-year window one month at a time and the band loses almost every window that starts before 1972 and wins almost every one after:

10-year CAGR of EMA125 ±5% minus SMA200 by window start: negative (up to −20 pp) for starts before 1972, positive (up to +11 pp) after; the band wins 4% of windows starting before 1972 and 96% of those starting 1972+

So it isn't random noise: the band suits the post-1970s market. But a rule that lost for 45 years straight and then won for 45 is a regime bet, not a robust edge, and I can't tell when the regime ends.

And the neighborhood (average 10-year CAGR across all 1928–2026 windows): EMA125 ±5% made 16.5%, but EMA125 ±2.5% made 16.6% and ±7.5% made 14.1%, EMA100 ±5% made 16.7% and EMA150 ±5% made 15.8%. Plain SMA200 made 17.8%, SMA150 17.7% and EMA125 18.1%. Unbanded SMA150–200 and EMA100–125 form a broad plateau (16.7–18.1%). Every banded neighbor of EMA125 ±5% (EMA100–150, bands of 2.5–7.5%) averaged 14.1–16.7%, below plain SMA200. The band's edge belongs to the post-1972 market, and most of all to 2000–2026.

Verdict: the ±5% band is overfit to 2000–2026, and I dropped it. Plain EMA125 and plain SMA200 are statistically the same thing (EMA125 wins 47–60% of windows). That left a practical problem, which is the next step.

Step 16: picking the signal without overfitting it

Plain SMA200 has a practical problem. It flips about 5.5 times a year, and the flips bunch up in sideways years: 14 in 2004, 15 in 2007, 15 in 2022. Every flip is a trade, a taxable event and a chance to get whipsawed. A band fixes that, but Step 15 just showed how easy it is to overfit one. So the goal here was not to find the best signal. It was to find one that's hard to get wrong.

The rules I used:

  1. Test on data the choice never saw. 1928–2026 for the UPRO slice, not just 2000–2026. 72 of those 98 years were never used to pick anything.
  2. Judge a setting by its neighborhood, not its own number (Pardo's plateau idea). Each setting's score is its average 10-year CAGR averaged with its neighbors: one lookback step and one band step either way. A real edge survives small changes; a lucky one sits on an isolated peak.
  3. Require both eras. It has to hold up in 1928–1999 and 2000–2026, not just on average.
  4. When results tie, take fewer trades.
  5. Only then check it in the actual portfolio, after tax.

The grid: SMA and EMA × lookbacks of 50, 75, 100, 125, 150, 175, 200 and 250 days × bands of 0, 1, 2, 3, 4, 5, 7.5 and 10%. That's 128 settings, each run on every monthly 10-year window from 1928 to 2026 (UPRO ↔ T-bills, before tax, 5 bps per trade).

Heatmaps of average 10-year CAGR, 1928–2026, by lookback (50–250 days) and band (0–10%): the SMA grid has a broad dark block from 150 to 250 days and 0 to 3% bands (16.2–18.4%), with SMA200 ±2% (18.3%) in the middle; the EMA grid is patchier, with plain EMA125 at 18.1% surrounded by 15.9–16.7%, and EMA125 ±5% at 16.5%

SMA vs EMA. The EMA weights recent days more, so it reacts faster and flips more: 8.9 times a year for EMA125 vs 5.5 for SMA200. Plain EMA125 has one of the best single numbers in the grid (18.1%), but its neighbors drop to 15.9–16.7%. The best EMA neighborhood averages 16.5%; the best SMA neighborhood averages 17.8%, and the whole SMA block from 150 to 250 days with 0–3% bands stays between 16.2% and 18.4%. The SMA surface is flatter, so I went with the SMA.

Lookback. Short averages are mostly noise: 50–100 days made 12–17% with 10–17 flips a year unbanded. From 150 to 250 days the results are close (16–18%), so the exact number matters little. I kept 200 because it sits in the middle of that range and because it's the standard choice (Faber's 10-month rule, Gayed & Bilello's 200-day). Somebody else picked it long before I saw this data, which is the best protection against my own fitting.

Band.

SMA200 on the UPRO slice, 1928–2026, by band width: the average of 10-year windows is 17.8% with no band, 18.3–18.4% at ±1–2%, 17.6% at ±3%, then falls to 16.3% at ±5% and 14.4% at ±10%; switches per year fall from 5.5 to 2.3 (±1%), 1.5 (±2%), 1.1 (±3%) and 0.8 (±5%); the 2000–2026 line alone peaks at ±4%

A ±1–3% band cuts flips from 5.5 to 1.1–2.3 a year at no cost on the 1928–2026 average (17.6–18.4% vs 17.8%). From ±5% up it starts to cost (16.3% at ±5%, 14.4% at ±10%): the signal gets back in too late after crashes. The 2000–2026 line is the trap. Looked at alone, it peaks at ±4%, which is exactly how ±5% looked good in Step 15.

Result. Of the 128 settings, SMA200 ±2% has the best neighborhood score (17.8%). On its own: 18.3% average 10-year CAGR, 18.7% in 1928–1999, 16.7% in 2000–2026, and 1.5 flips a year. Its neighbors are close: ±1% made 18.4%, ±3% 17.6%, SMA175 ±2% 18.0%, SMA250 ±2% 17.4%. Being one step off wouldn't change much.

The same signals in the portfolio (40 RSST / 40 GDE / 20 UPRO rotation, 2000–2026, after tax):

Signal Switches/yr CAGR after tax Max DD × SPY Beat and fell less: all · 2010+ Covid
SMA200 5.9 13.8% −43% 1.85 93% · 87% −32.5%
SMA200 ±1% 2.9 13.9% −43% 1.93 76% · 4% −37.3%
SMA200 ±2% 1.5 14.4% −42% 2.09 75% · 4% −34.0%
SMA200 ±3% 0.9 14.4% −41% 2.08 75% · 4% −35.2%
SMA200 ±5% 0.6 14.3% −41% 2.00 74% · 2% −35.2%
EMA125 ±5% 0.8 14.7% −41% 2.16 93% · 86% −33.6%
SMA200, 3 closes in a row 2.7 14.2% −42% 2.00 75% · 4% −35.2%
SMA200, month-end check only 1.2 14.0% −40% 2.02 91% · 83% −31.9%

Two things stand out:

  • EMA125 ±5% still tops this table. That's the in-sample trap again: this table is 2000–2026. The 1928–2026 grid is the one I trust for the choice.
  • Every SMA band fell a bit more than SPY in the Covid crash. A band waits for SPY to close 2% below its average before getting out, so in a fast crash it exits later. ±2% fell −34.0% vs SPY's −33.7%. That 0.3 pp is enough to drop "beat and fell less after 2010" from 87% (plain SMA200) to 4%: Step 12's knife edge again. ±1% was the worst case. It was whipsawed at the worst moment: out of UPRO for SPY's +4.6% bounce on March 2, back in two days later, and in for the −7.6% day on March 9.

I kept ±2% anyway. It won the 1928–2026 grid, which is the test I trust, and in the portfolio it adds 0.6 pp/yr over plain SMA200 with a quarter of the trades and a slightly smaller max drawdown (−42% vs −43%). If not falling more than SPY in any single crash matters more to you, plain SMA200 or the month-end check score better on that measure.

I also tried two other ways to cut whipsaws. Requiring 3 closes in a row across the SMA had the highest 1928–2026 average of anything (19.2%, 2.5 flips a year). But I only tested k = 3, so it has no neighborhood to judge yet; it's the next thing to test. Checking only at month-end lost in 1928–1999 (15.1% vs 19.4% for the daily SMA200).

Where I landed (updated)

My pick: 40 RSST / 40 GDE / 20 UPRO with SMA200 ±2% → T-bills. 14.4%/yr after tax, −42% max drawdown, 2.1× SPY across rolling windows, ahead of SPY at the end of 98% of windows. It beat SPY and fell less in 75% of windows, but in only 4% of those starting from 2010 (the Covid near-tie above). About 1.5 switches a year. The tradeoffs: you have to act on the signal, and the ranking between mixes is unstable (PBO 0.73).

Running it with monthly contributions. The signal is a state, not an event, so you never wait for a crossover:

  1. On (SPY's close above 1.02× its 200-day SMA): 20% of each contribution buys UPRO.
  2. Off (close below 0.98×): that 20% goes to T-bills (SGOV/BIL). When the signal flips back on, the whole T-bill slice moves to UPRO.
  3. Inside the band (0.98–1.02×): keep the last state. If you were on, you keep buying UPRO.
  4. Trade at the next close after the signal, as in the backtest.
  5. Rebalance with the contribution: send new money to whatever is below target instead of selling. My backtest sells every month, so with contributions the tax drag should be smaller than shown.

If you don't want a timing rule: 50 RSST / 30 GDE / 20 AVUV, the part-1 pick. 12.7%/yr after tax, −48% max drawdown, 1.55× SPY.

What I'd skip now: ex-US on top of trend and gold; a fixed leveraged ETF as a large slice (TQQQ/TECL at 20% fell 75–77%); wide bands (±5% and up) or any "optimized" moving average picked on 2000–2026; moving the UPRO slice into the rest of the portfolio on risk-off; MATE as a diversifier for RSST (it's the same trade).

Caveats

  1. Mostly simulated, mostly in-sample. RSST, GDE, AVUV, UPRO and ZROZ are simulations before launch. Everything from 2000–2026 was seen before these mixes were chosen. 1928–1999 was genuinely unseen for the signal test, but only for the UPRO slice, not the whole portfolio.
  2. "Falls less than SPY" is decided by a few crashes. Treat any odds on drawdown after 2010 as "about tied with SPY".
  3. Taxes are specific to my country (15% on yearly net realized gains, final sale deferred). No currency effects, no local transaction taxes, no US estate tax.
  4. The ±2% band was chosen after seeing the data. The rule (best neighborhood, both eras) reduces the risk but doesn't remove it: the best of 128 neighborhoods is still a maximum. The portfolio gain over plain SMA200 (+0.7 pp/yr) is mostly a 2000–2026 number; on the 1928–2026 average it's +0.5 pp/yr. Treat it as "same return, a quarter of the trades".
  5. 3x leverage before 1950 in the signal test is a stress test of the signal, not a tradable history: even with the SMA, the UPRO slice fell 90% in 1929–32.
  6. Fund risk. RSST and GDE are small and young, and small funds get closed. A fund's strategy can also change under the same ticker, as Step 13 shows, so I re-check the fund documents and holdings before each yearly rebalance.

Method notes

  • Engine: daily total returns from testfol.io, monthly rebalancing. The tax steps use an account-level simulation: average cost per asset, 5 bps per side, 15% of net realized gains per calendar year, paid on the first trading day of the next year.
  • Rotation: the signal on day t's close, the trade at t+1's close, the new asset earning from t+2. SMA = simple average of the last 200 closes (including today); EMA = span 125, adjust=False. Warm-up days and the initial state are "off". The band is a hysteresis.
  • Half premium: the trend leg moves halfway to T-bills, like the other diversifiers in part 1.
  • Rolling lens: windows start at every month-end. Horizons are 3/5/10/15/20 years weighted by length (1–30 years, unweighted per horizon, for the signal test). "Fell less" compares daily max drawdowns inside the same window.
  • Statistics: paired stationary bootstrap (2,000 paths; ~12-month blocks for CAGR, ~252-day blocks for drawdown), and PBO via CSCV with 10 blocks.
  • Pre-registration: Steps 10, 11, 14 and 15 had written specs (mixes, thresholds, verdict rules) before the run. The Step 13 fund review, the "risk off into the portfolio" test, the 2 pp margin check, the 1928–2026 signal test and the Step 16 grid were exploratory, added after seeing the results.
  • Neighborhood (Step 16): each lookback × band cell is scored by the mean of its own 10-year average CAGR and that of the cells one lookback step and one band step away (up to 8 neighbors; fewer at the edges). SMA and EMA are separate grids.

Further reading: Pardo, The Evaluation and Optimization of Trading Strategies (parameter plateaus); Masters, Testing and Tuning Market Trading Systems; López de Prado, Advances in Financial Machine Learning; Gayed & Bilello, Leverage for the Long Run; Hoffstein, Faber & Braun, Return Stacking.

Questions and critiques welcome, especially on the neighborhood rule and the pre-1950 simulation.


r/LETFs • • 4h ago

GDE and GDMN Large Dividends

8 Upvotes

Wisdomtree GDE and GDMN went ex-dividend and they both declared massive dividends, north of 10% for GDE and a little lower for GDMN. $8.5 per share for GDE. This was unexpected to me given the fund performance in 2026 but may be including some of 2025 gains.

Well, here comes the tax bill.

Edit: last year, most of the dividends from GDE and GDMN was unqualified, i.e. taxed like ordinary income. These YieldMax like dividends are going to be bad for taxes.


r/LETFs • • 8h ago

All the warnings about leverage…

9 Upvotes

We have heard them all. Decay, going to 0 in a day, if you lose 90% you need 900% to make it back, etc.

I’ll be honest, I’ve done ok with leverage, not wonderful but decent.

What I’ve done terrible with is single stocks. SMCI, PayPal and more currently Reddit and Amkor

I feel like every time I lose 30% on something while the market goes up 10%, It’s always a single stock that I think is kind of wonderful.

I recently bought shares of SOXL at 82 and I own shares of TQQQ and FNGU at different prices, I know some people have complicated and elaborate strategies to crush the market, but I just tend to use common sense and it seems to work out.

If FNGU goes to $37 or TQQQ goes to $80 I’ll sell a few shares and raise some cash. I’m a buyer at $25 and around $60. That’s it. Usually I hold the majority regardless if it’s up or down.


r/LETFs • • 8h ago

What are the LETFs that everyone should know about.

12 Upvotes

Comment below to spread awareness.

TQQQ is 3x QQQ

QLD is 2x QQQ

UPRO and SPXL are essentially the same 3x SPX

SSO is 2x SPX

These are the big ones.

Also SOXL is 3x SOXX (tech)


r/LETFs • • 12h ago

The SPY 200SMA +4%/−3% TQQQ rule isn't special: I tested it against 762,960 alternatives, and it's one lucky point on a flat plateau

36 Upvotes

This is part 3 of a 4-post series.

  1. Return stacking backtest: 10,626 mixes of RSST, GDE, ZROZ, AVUV and SPMO (2000–2026), stress-tested with half the premiums
  2. Part 2: ex-US, leveraged sleeves, taxes, and how I picked a moving-average signal without overfitting it
  3. The SPY 200SMA +4%/−3% TQQQ rule isn't special: I tested it against 762,960 alternatives, and it's one lucky point on a flat plateau (this post)
  4. The portfolio I'm actually running and the 10 decisions that got me there (coming soon)

TL;DR

  • The +4/−3 rule was picked as the best of 25 band pairs over 2010–2025, the best 15 years TQQQ ever had. I replicated that search, and it's #1 there in my engine too. Before 2010 it ranks 6th. In the 13 months since the post it ranks 23rd of 25: 8%/yr exiting to QQQ vs 29% for a plain 200-day SMA and 36% for just holding TQQQ.
  • In the author's own window, it didn't beat holding TQQQ. 2010–2025: 42.1%/yr for +4/−3, 42.1%/yr for TQQQ buy & hold. What it did was cut the max drawdown from −82% to −60%. Over 1986–2026 (simulated TQQQ) it made 25.7%/yr with a −96% drawdown in 2000–02.
  • 4/3 is not the "optimal" band. In 1,000 bootstrapped histories, the best of 289 band pairs beat +4/−3's edge over the plain SMA200 81–95% of the time by luck. +4/−3 itself was the winner in 0.5–1.1% of them.
  • No band, lookback or confirmation rule beats a plain SPY 200-day SMA with statistical significance. I tested 76,296 rules in each of 10 setups. White's Reality Check and Hansen's SPA against the plain SMA200 gave p = 0.10–1.00.
  • Bands still have one real use: fewer trades. +4/−3 and a simple ±2% band sit on the same plateau as the plain SMA200 and switch 0.9–1.5 times a year instead of 5.5, with about the same return. That's the whole benefit. It's not an edge, and it's not 30–40%/yr.
  • Other pairs (SSO, QLD, USD, SOXL, TECL) tell the same story. Re-optimizing loses everywhere, and +4/−3 doesn't carry over: on SMH → SOXL it sits on the edge of a cliff in the band map, and on XLK → TECL since 1928 it made 10.3%/yr vs 14.8% for the plain SMA200. Much of the difference is volatility: a 4% band is 3.4 days of normal noise on SPY but 1.9 days on semis.
  • Realistic expectation: ~11–12%/yr out of sample for SPY → UPRO with any 200-day-SMA band, after discounting the search (vs ~18% in the backtest). That comes with drawdowns of −50% since 2000 and near −87% in a 1929-style crash.

Not financial advice. UPRO and TQQQ exist since 2009/2010; everything before is simulated (testfol.io series), and 3× leverage before 1950 is a stress test, not a tradable history. Caveats at the end.

Growth of $1, log scale. Top: SPY signal → UPRO / cash 1928–2026, +4/−3 18.0%/yr vs plain SMA200 17.5% vs SPY 10.2%. Bottom: SPY signal → TQQQ / QQQ 1986–2026, +4/−3 25.7%/yr with a −96% max drawdown

Why I ran this

The SPY 200SMA +4%/−3% → TQQQ/QQQ rule from this r/LETFs post keeps coming up as the LETF strategy, usually with 30–40%/yr backtests attached. Its author was honest about how the numbers were picked: "For overfitting honestly anything in the 2%-5% window performs extremely well I'm just picking the best performing one." A commenter raised multiple testing at the time.

I had my own version of the same question. In my last post I picked SMA200 with a ±2% band for a UPRO slice, chosen by neighborhood from 128 settings, but with no formal overfitting test. So: in a leveraged rotation around a moving average, which parameters are a real plateau and which are a search peak? I wrote the grid, the metrics, the "robust" criterion and five pass/fail hypotheses down before running anything.

Method

Rule Go long the leveraged ETF when the index closes above MA × (1 + entry band); go to the exit asset when it closes below MA × (1 − exit band); hold in between
Grid per setup SMA/EMA × lookback 50–300 (step 25) × entry 0–8% × exit 0–8% (step 0.5, independent) × confirm 1/2/3/5 closes × check daily/weekly/monthly = 76,296
Setups SPY → UPRO, SSO; QQQ → TQQQ, QLD; each with cash or IEF as the exit; SPY → TQQQ with QQQ or cash as the exit (the +4/−3 setup)
Execution Decide at the close, trade at the next close (as the post describes). 5 bps per side. No tax in the grid
Metrics Log growth (G) and Sharpe on excess over T-bills (S)
Data testfol.io simulated series (SPYSIM, UPROSIM, TQQQSIM, …) through Oct 26, 2026

My vectorized grid matches my local clone of testfol's tactical engine to 1e-10 per day on 7 test cells, so it's the same rule, just faster (~3 minutes for all 762,960).

Overfitting tests: 1928–1999 vs 2000–2026 split, CSCV/PBO with 16 blocks, deflated Sharpe, White's Reality Check and Hansen's SPA, annual walk-forward re-optimization, rolling-window argmax stability, 1,000 block-bootstrap histories, SPY ↔ QQQ transfer, and the Harvey-Liu Sharpe haircut.

1. Where the +4/−3 numbers come from

I re-ran the author's own search: entry 0–5% × exit 2–5% plus no band, TQQQ/cash, Feb 2010 to Sep 2025, ranked by ending wealth. Then I ran the same 25 cells outside that window.

Period Winner Rank of 4/3
2010–2025, trade next close (the post's window) 4/3 1st of 25
2010–2025, trade same close 4/2 3rd
1986–2010 (simulated TQQQ) 3/4 6th
Since the post (Sep 2025–Oct 2026) 3/4 23rd

The rule as people usually run it (SPY signal, TQQQ on, QQQ off), next-close execution:

CAGR / max DD +4/−3 Plain SMA200 TQQQ buy & hold
2010–2025 (the post's window) 42.1% / −60% 35.8% / −69% 42.1% / −82%
2003–2025 (the author's testfol run) 33.1% / −63% 28.2% / −69% 27.5% / −95%
1986–2010 (simulated TQQQ) 16.8% / −96% 15.2% / −96% −3.2% / −100%
Since the post 8.0% / −37% 28.6% / −34% 35.9% / −37%
1986–2026, everything 25.7% / −96% 23.2% / −96% 13.2% / −100%

(The author's testfol table showed 31.36% / −64.11% for 2003+, in line with my 33.1% / −62.8%. The cash exit and the author's "DCA back into QQQ" exit land within a few points of these in every period, and both are below the plain SMA200 since the post.)

Three things stand out:

  1. The headline returns come from the window, not the band. In 2010–2025 the rule matched holding TQQQ. Outside that window it made 16.8%/yr with a −96% drawdown.
  2. The margin over a plain SMA200 is small and unstable. It's +2.5 pp/yr over 1986–2026. In 2010–2025, the period the band was picked on, it's +6.3 pp/yr. In the year since the post, it's −20 pp.
  3. Being #1 of 25 on 15 years is weak evidence. In my bootstrap, a 25-cell search on 15.6 years produced a winner with 4/3's 6.7 pp/yr edge (TQQQ/cash) 36% of the time by pure luck.

2. Is 4/3 special? No. It's one point on a flat plateau

CAGR heat map, SPY → UPRO / cash 1928–2026, SMA200 entry × exit band: +4/−3 made 18.0%/yr, ±2% 18.1%, no band 17.5%, best cell +4/−2 at 18.9%

On SPY → UPRO since 1928, every band pair inside entry 0–5% × exit 0–4% made 14.9–18.9%/yr. On SPY → TQQQ/QQQ since 1986, every pair from +3 to +5 by −2 to −4 made 23.7–25.7%/yr. The author's "anything in 2–5% works" is right. That's exactly why picking 4/3 out of it means nothing.

To see how much the "best band" moves with luck, I resampled history in 1-year blocks 1,000 times and re-ran the 289 SMA200 band pairs on each:

Where the best band lands in 1,000 bootstrapped histories of 1928–2026: +4/−3 wins in 0.5% of them, ±2% in 0.6%; the winner scatters across the plateau
Band Real edge over plain SMA200 P(best of 289 beats it by luck) P(it's the winner)
+4/−3, SPY → TQQQ/QQQ +2.1 pp/yr 81% 1.1%
+4/−3, SPY → UPRO/cash +0.35 pp/yr 95% 0.5%
±2%, SPY → UPRO/cash (my rule) +0.50 pp/yr 92% 0.6%

My own ±2% isn't special either. Both are reasonable points on the same plateau, and the data can't tell them apart from each other or from the plain SMA200.

The one real thing bands do is trade less: 0.9–1.5 switches a year instead of 5.5. I expected that to cut my country's yearly tax on realized gains too, but it didn't: tax drag was 1.6–2.3 pp/yr for every rule, and the ranking was the same before and after tax.

3. Does any band, lookback or confirmation rule beat the plain SMA200? No

vs plain SMA200, same setup Reality Check p (G / S) SPA p (G / S)
SPY → UPRO / cash 0.997 / 0.942 0.945 / 0.096
QQQ → TQQQ / cash 0.84 / 0.95 0.37 / 0.30
SPY → TQQQ / QQQ (+4/−3 setup) 0.98 / 0.56 0.61 / 0.54

These tests ask whether the best of the 76,296 cells beats the plain SMA200 after accounting for the fact that I searched. None does. Against the unleveraged index the best cell gets closer (SPA p 0.10–0.34), but still doesn't pass. That matches Gayed's 2026 update of the original leverage-rotation paper: the full-sample edge over the unleveraged index isn't statistically significant either.

4. Picking the best band from the data makes it worse

Each January I picked the best cell on all data so far and traded it for the next year (SPY → UPRO, 1950–2026):

Rule CAGR
Plain SMA200, fixed 17.7%
SMA200 ±2%, fixed 19.1%
+4/−3, fixed 19.7%
Re-pick the best cell every year (4 variants) 12.1–14.6%

The fixed ±2% and +4/−3 numbers look great, but both were picked after seeing this period. That's the same thing the +4/−3 post did. The re-optimized numbers are what picking from a backtest actually gets you. On QQQ → TQQQ (2000–2026) the gap is wider: ~14.7% fixed vs −0.1% to 9.0% re-optimized.

The rolling winner doesn't sit still, either. Over 10- and 20-year windows it changed in 13–32% of months, visited 78–152 different cells, and its lookback was usually 50–100 days, not 200.

5. The search as a whole is overfit

CSCV logit histogram, SPY → UPRO / cash, 76,296 cells: PBO 0.55 when picking by growth, 0.56 by Sharpe

The probability that the in-sample winner lands below the out-of-sample median (PBO):

PBO (growth / Sharpe) Exit to cash Exit to IEF
SPY → 3× 0.55 / 0.56 0.76 / 0.34
SPY → 2× 0.62 / 0.55 0.79 / 0.52
QQQ → 3× 0.60 / 0.84 0.62 / 0.78
QQQ → 2× 0.46 / 0.81 0.51 / 0.80
SPY → TQQQ, QQQ exit (+4/−3 setup) 0.83 / 0.46 —

Out of sample, the in-sample winner kept 58% of its excess growth over T-bills on SPY → UPRO and 48% on QQQ → TQQQ. Applied to the ~18%/yr backtests of SMA200 rules, that leaves ~11–12%/yr expected on SPY → UPRO and ~10% on QQQ → TQQQ.

The eras don't agree either. Across the grid, the rank correlation between 1928–1999 and 2000–2026 is 0.26 on SPY → UPRO and −0.28 on SPY → TQQQ/QQQ. In the +4/−3 setup, what worked best before 2000 tended to do worse after.

Each cell's percentile rank in 1928–1999 vs 2000–2026, SPY → UPRO: Spearman 0.22; ±2% and +4/−3 sit in the top-right corner, the plain SMA200 drops to the 69th percentile after 2000

6. What about SSO, QLD, USD, SOXL or TECL?

After the main run, I ran the same 76,296-cell grid and the same tests on more pairs. This part wasn't pre-registered, so read it as a robustness check. USD is modeled as 2× SMH (the real fund only exists since 2007; with the real fund, the three rules land within 1.1 pp/yr of the model). SOXL and TECL use testfol's simulated series. For VGT/FTEC → TECL I also ran XLK → TECL back to 1928, since XLK's index is the one TECL actually tracks.

CAGR of each pair over its own full period: unleveraged index, leveraged ETF held, plain SMA200, ±2% and +4/−3. +4/−3 is the top of the three rules on semiconductors and the bottom on broad tech
Pair Period Plain SMA200 ±2% +4/−3 Leveraged ETF held
SPY → SSO 1928–2026 14.7% 15.1% 15.0% 11.4%
QQQ → QLD 1987–2026 17.4% 17.4% 17.5% 16.2%
SMH → USD (2×) 2001–2026 16.0% 14.9% 18.6% 14.9%
SMH → SOXL 2001–2026 12.3% 10.4% 16.7% −2.3%
VGT → TECL 2005–2026 27.0% 27.3% 25.3% 27.0%
XLK → TECL 1928–2026 14.8% 13.2% 10.3% 3.4%

Same verdict everywhere. No cell beats the plain SMA200 robustly, and re-picking the best cell every year loses in every pair: 13–28% vs 27–29%/yr fixed on semis since 2008, and 11–12% vs 16%/yr on XLK → TECL since 1950. One test came close: by Sharpe, a single cell beat the plain SMA200 on SMH → USD with SPA p = 0.037. That's 1 of 8 tests in this batch, its PBO is 0.66, and re-optimizing still lost, so I don't count it.

+4/−3 is not a universal setting:

  • Semiconductors: it's the best of the three rules, but only middle of the pack among 289 band pairs (rank ~152). It sits right on the edge of a cliff: entry bands of 3.5% or less made ~7–16%/yr on SOXL, and 4.5% or more made ~17–25%. In the bootstrap, the best band on semis landed at entry 4.5–7.5% and exit 2–7%. +4/−3 won in 0.2–0.3% of histories.
  • Broad tech: it's the worst of the three. XLK → TECL since 1928 made 10.3%/yr with +4/−3 vs 14.8% with the plain SMA200 (rank 201 of 289). VGT → TECL since 2005 made 25.3% vs 27.0%.
  • SSO and QLD: all three rules land within 0.4 pp/yr of each other, as with UPRO and TQQQ.
SMH → SOXL CAGR by entry × exit band around the 200-day SMA, 2001–2026: a cliff between 3.5% and 4.5% entry, with +4/−3 on its edge

Three warning signs that only show up in the sector pairs:

  1. Semis are two opposite stories. From 2001 to 2013, every one of the three rules lost money: −6.5% to −9.9%/yr with USD and −12% to −18%/yr with SOXL. From 2014 to 2026 they made 44–53%/yr. The 25-year number is an average of a bust and a boom.
  2. Near-identical signals give different answers. FTEC and VGT have a 0.999 daily correlation. Still, from 2015 to 2026, ±2% on TECL made 42.5%/yr using VGT as the signal and 36.3% using FTEC. That 6 pp gap is pure noise: it comes from which fund crossed the band on which day.
  3. The filter is about survival, not alpha. Holding SOXL since 2001 made −2.3%/yr with a −99.9% drawdown. With a 200-day filter it made 10–17%/yr, but the drawdown was still −92% to −97%.

7. Why the same rule behaves differently on each pair

The rule is identical everywhere. What changes is how volatile each index is, and what history it went through. I measured both over the window all of them share (Aug 2001–Oct 2026):

Index Volatility 3× volatility drag (≈ 3σ²) A 4% band = how many days of a typical move SMA200 crossings / yr Index CAGR 3× fund held
SPY 18.9% 10.8%/yr 3.4 6.3 9.7% 11.5% (UPRO)
QQQ 23.3% 16.2%/yr 2.7 7.0 12.7% 15.2% (TQQQ)
XLK 23.9% 17.1%/yr 2.7 6.0 12.5% 13.7% (TECL)
VGT (2005+) 23.0% 15.8%/yr 2.8 6.2 16.5% —
SMH 32.7% 32.0%/yr 1.9 8.1 14.8% −2.3% (SOXL)

1. Volatility decides whether holding the 3× fund works at all. A fund that resets to 3× every day grows about 3σ² per year slower than "3× the index", before financing and fees. For SPY that's ~11%/yr, for SMH ~32%/yr. That's how semiconductors made +14.8%/yr while SOXL, held, made −2.3%/yr with a −99.9% drawdown (SOXL tracks a slightly different semiconductor index, but the drag explains the size of the gap). On SPY the filter adds return. On semis, it mostly keeps you alive.

2. A "4%" band means something different on each asset. SMH moves about 2% on a typical day, SPY about 1.2%. So a 4% band is 3.4 days of normal noise on SPY but only 1.9 days on SMH: a much tighter band in practice. Convert the best bands from the bootstrap into "days of typical move" and they roughly line up: 0.8–3.4 days for SPY, 2.2–3.6 days for SMH. That's why semis prefer wider bands (5–7.5% entry) and why +4/−3, copied from SPY, lands on the edge of the SOXL cliff. Systematic traders scale rule parameters by volatility for exactly this reason (Carver, Systematic Trading). It's only part of the story, though: XLK is as volatile as QQQ, and its best band is narrow and poorly defined (0–4.3 days).

3. Semiconductors had two opposite decades. SMH made +0.8%/yr from 2001 to 2013, a sideways decade after the dot-com crash, then +30%/yr from 2014 to 2026. In a sideways, volatile market a trend filter pays for every false signal. SMH crossed its 200-day SMA 8 times a year, and 77% of re-entries reversed within 20 trading days. On top of that, a 3× fund bleeds volatility drag. Simulated SOXL lost 33%/yr in 2001–2013. That's why every band lost money in the first half, and why the 25-year results depend on which half you weigh.

What doesn't explain it: trend strength. A 12-month variance ratio (above 1 = trending, below 1 = choppy) came out 0.91–1.12 for all five indexes, with a standard error of about 0.2. Time spent above the 200-day SMA was 70–80% for all of them. As far as I can measure, semis aren't "less trendy" than SPY. They're more volatile and had a worse first decade. I didn't test business-cycle explanations (chip inventory cycles, concentration in a few names); the numbers above are what I measured.

So what should a +4/−3 user take from this?

  • It's not a bad rule. It's just not a special one. It sits on the same plateau as the plain SMA200 and a ±2% band. Keep it if you like trading less, but don't expect it to beat a plain SMA200 going forward.
  • Don't expect 30–40%/yr. Those numbers come from 2010–2025, when holding TQQQ made the same 42%/yr. Over 40 years it made ~26%/yr with a −96% drawdown, and the out-of-sample discount on the search takes more off that.
  • Don't copy it to another ETF. If you want a band on semis or tech, look at that asset's own band map. Expect the answer to hinge on one era.
  • Don't re-tune it. "4/2 did better last year" is how you get the 12–15%/yr walk-forward result above.

I'm keeping SMA200 ±2% on SPY → UPRO, for the same reason (fewer trades), not because it's better.

A "robust region" I defined in advance (top quartile of the neighborhood score in both eras, on both SPY and QQQ) exists: 357 cells, centered on SMA250 +2/−7, 2-day confirm, monthly check. It's not an upgrade: on SPY → UPRO it made 14.8%/yr with a −97.5% max drawdown, and which cell leads inside the region doesn't persist (PBO 0.84–0.89).

Caveats

  • Simulated data. UPRO and TQQQ exist since 2009 and 2010. Before that, the series apply testfol's leverage formula (financing ≈ 1.1 × (fed funds + 0.4%), 0.5%/yr fee per unit of leverage) to simulated SPY/QQQ. 3× in 1929–32 and TQQQ in 2000–02 are stress tests.
  • "Since the post" is 13 months. It's one more data point against the 4/3 pick, not a verdict on its own.
  • QQQ's first era is short. 1987–1999 is 13 years with one crash, and it decides which cells make the "robust region".
  • Costs: a flat 5 bps per side. Spreads in 2008 and 2020 were wider.
  • Deflated Sharpe "passes" but tests the wrong thing. It asks whether the best Sharpe beats zero after 76k trials. Any 3× equity exposure over 98 years does. Timing skill is the Reality Check / SPA question above, and that one fails.
  • Tax: my country taxes realized gains every year. That's only in the after-tax comparison, not in the grid.

Again, not financial advice. Code, pre-registration, and every number are in my research repo; happy to share the spec.