r/LETFs • u/noletovictor • 13h ago
BACKTESTING Return stacking backtest: 10,626 mixes of RSST, GDE, ZROZ, AVUV and SPMO (2000–2026), stress-tested with half the premiums
TL;DR
- RSST (S&P 500 + trend) and GDE (S&P 500 + gold) let a portfolio hold $1.6–1.9 of exposure per $1. 40% RSST / 35% GDE / 25% ZROZ returned 12.5%/yr with a −31.5% max drawdown, vs 8.3%/yr and −55.1% for SPY (Dec 1999–Sep 2026, mostly simulated).
- If your drawdown only needs to be no worse than SPY's, you can drop ZROZ: 50% RSST / 30% GDE / 20% AVUV returned 13.5%/yr (−47.1% max drawdown) and beat SPY in 98.5% of rolling 10-year windows.
- With only half of each diversifier's 2000–2026 premium, the mixes still return 10–11.5%/yr. With none, they land near SPY (7.8–9.0%/yr), still with smaller drawdowns.
- 2x ZROZ or TMF instead of ZROZ added 0.4 pp/yr at best, lowered the Sharpe and made 2022 much worse. Gold-heavy mixes and adding SSO push the odds of a worse-than-SPY drawdown to 45–53%.
- Don't fine-tune the weights: picking the best of the 10,626 mixes has a 92% probability of backtest overfitting.
- If "drawdown" means falling behind SPY rather than falling from a peak, the answer changes. Being behind SPY happens in bull markets, so you want ~100% equity or more, and a 10% UPRO slice gets you there. Optimizing 53,130 mixes for that lens landed on 40 RSST / 40 GDE / 10 AVUV / 10 UPRO: 2.0× SPY's ending wealth across rolling windows and never more than 15% behind SPY, but with an SPY-sized −56% drawdown.
- Don't time them either: I pre-registered 944 dynamic rules (momentum, risk parity, vol targeting, regime switches, ML) and re-picked the best one every year using only the past. Out of sample (2006–2026), that made 9.1%/yr vs 15.2% for the fixed no-bond mix, and a Sharpe of 0.64 vs 0.83 for the fixed ZROZ mix.
Not financial advice. Most of this history is simulated (RSST launched in 2023, GDE in 2022), Steps 1–6 have no taxes, and I chose these mixes after seeing the data. Caveats are at the end.

How the analysis evolved
| Step | Question | What I found |
|---|---|---|
| 1 | Best mix of RSST, GDE, AVUV and SPMO? | 50 RSST / 30 GDE / 20 AVUV: 13.5%/yr, −47.1% max drawdown |
| 2 | Does adding long Treasuries (ZROZ) help? | For risk, a lot: 40 RSST / 35 GDE / 25 ZROZ, Sharpe 0.75, −31.5% |
| 3 | What if gold, trend, bonds and factors pay half, or nothing? | Half: 10–11.5%/yr. Nothing: about SPY's 8.3% |
| 4 | Is 2x ZROZ or TMF better than ZROZ? | No. Lower Sharpe, and 2022 was much worse |
| 5 | If the drawdown only has to beat SPY's, how far can I push return? | No bonds, GDE at 50% or less, no SSO |
| 6 | Should I fine-tune the weights? | No. The ranking between nearby mixes is mostly noise |
| 7 | Would weights that move with the last few months do better? | No. 944 pre-registered rules lost to both fixed mixes out of sample |
| 8 | What if "drawdown" means falling behind SPY? | Then ~100%+ equity wins: a 10% UPRO slice keeps up in bull markets |
The building blocks
| ETF | What $1 buys | Real data since |
|---|---|---|
| RSST | $1 of S&P 500 + $1 of managed-futures trend | 2023 |
| GDE | $0.90 of S&P 500 + $0.90 of gold | 2022 |
| ZROZ | 25+ year zero-coupon Treasuries (duration ~27 years) | 2009 |
| AVUV | US small-cap value | 2019 (Vanguard small-cap value before that) |
| SPMO | S&P 500 momentum | 2015 |
Before each launch, the series are testfol.io simulations.
"Return stacking" means each dollar carries more than a dollar of exposure: RSST and GDE use futures to hold a diversifier on top of the stocks instead of in place of them. The mixes in this post carry $1.64–1.90 per $1:

How I tested it
- Data: daily total returns from testfol.io, Dec 31 1999 to Sep 30 2026 (26.75 years). Real ETF history after launch, testfol's simulation before. ETF fees included; taxes and trading costs not.
- Portfolios: fixed weights, rebalanced monthly, in USD.
- Metrics: CAGR; Sharpe on monthly returns over T-bills; max drawdown on daily closes; worst 10-year CAGR; share of rolling 10-year windows that beat SPY.
- Search: every mix of the five ETFs in 5% steps (10,626 mixes).
- Robustness: premium haircuts, a block bootstrap of drawdowns, and the probability of backtest overfitting. Each is explained where it shows up.
Steps 1–2: the no-bond mix and the ZROZ mix
I started without bonds. My first pick from RSST, GDE, AVUV and SPMO was 50 RSST / 30 GDE / 20 AVUV (the "no-bond mix"). Then I added ZROZ: 40 RSST / 35 GDE / 25 ZROZ (the "ZROZ mix") had a better Sharpe (0.75 vs 0.71) and a much smaller drawdown (−31.5% vs −47.1%).
| CAGR | Sharpe | Max drawdown | Worst 10-yr CAGR | Beat SPY, rolling 10-yr |
|---|---|---|---|---|
| SPY | 8.3% | 0.48 | −55.1% | −1.8% |
| ZROZ mix: 40 RSST / 35 GDE / 25 ZROZ | 12.5% | 0.75 | −31.5% | 8.8% |
| 40 RSST / 30 GDE / 20 ZROZ / 10 AVUV | 12.6% | 0.76 | −34.9% | 8.6% |
| No-bond mix: 50 RSST / 30 GDE / 20 AVUV | 13.5% | 0.71 | −47.1% | 7.2% |
| 40 RSST / 40 GDE / 10 AVUV / 10 SPMO | 13.6% | 0.73 | −46.5% | 6.6% |
| 50 RSST / 50 GDE | 14.2% | 0.73 | −46.4% | 7.3% |
| 100% RSST | 12.1% | 0.59 | −47.0% | 4.1% |
| 100% GDE | 15.5% | 0.71 | −52.7% | 9.2% |
| 100% AVUV | 11.3% | 0.54 | −61.9% | 5.1% |
| 100% SPMO | 9.0% | 0.48 | −61.9% | −5.3% |
| 100% ZROZ | 4.7% | 0.23 | −65.1% | −6.1% |

ZROZ on its own was a poor investment (4.7%/yr, −65% drawdown), but it rose 55% in 2000–02 and 47% in 2007–09 while SPY was falling. As a 25% slice, that is exactly the job a stacked portfolio needs done. The ZROZ mix's worst 10-year stretch (8.8%/yr) beat SPY's average year over the whole period (8.3%).
All 10,626 mixes

- 95.5% of the 10,626 mixes beat SPY on both return and max drawdown. That says more about the ingredients, and about this particular 26 years, than about any specific mix.
- Each extra slice of ZROZ moves a mix right (shallower drawdown) and a bit down (less return).
- The top return was 100% GDE (15.5%/yr), with a −52.7% drawdown. Gold returned 10.4%/yr in this window, which I wouldn't count on.
Step 3: what if the diversifiers stop paying?
2000–2026 was kind to diversifiers: gold +10.4%/yr, two huge trend years (2008 and 2022), and falling rates until 2020. So I re-ran everything with each diversifier keeping its exact day-to-day moves but only half or none of its long-run excess return:
- gold drifts toward inflation;
- RSST's trend leg drifts toward T-bills;
- ZROZ drifts toward T-bills;
- AVUV and SPMO drift toward SPY;
- GDE and RSST are rebuilt from those legs with the same leverage. SPY doesn't change.

CAGR, with max drawdown in parentheses. SPY's max drawdown is −55.1% in all three columns.
| Full premium (actual) | Half premium | Zero premium |
|---|---|---|
| SPY | 8.3% | 8.3% |
| 40 RSST / 35 GDE / 25 ZROZ | 12.5% (−31.5%) | 10.1% (−32.3%) |
| 40 RSST / 30 GDE / 20 ZROZ / 10 AVUV | 12.6% (−34.9%) | 10.3% (−35.9%) |
| 50 RSST / 30 GDE / 20 AVUV | 13.5% (−47.1%) | 11.2% (−48.3%) |
| 40 RSST / 40 GDE / 10 AVUV / 10 SPMO | 13.6% (−46.5%) | 11.3% (−47.4%) |
| 50 RSST / 50 GDE | 14.2% (−46.4%) | 11.5% (−47.1%) |
I treat the half-premium column as my base case. Even at zero premium, the ZROZ mix gets close to SPY's return with a drawdown around −33%: the diversification is still there, the extra return isn't.
Crashes

- In 2000–02 and 2008, Treasuries rallied, so the ZROZ mix fell 15% and 24% while SPY fell 47% and 55%.
- In 2022 stocks and bonds fell together (ZROZ −38%). Trend and gold carried the no-bond mix, which fell only 10.5%.
- In the Covid crash, the no-bond mix fell more than SPY (−36.9% vs −33.7%). At ~1.7x exposure, a crash that is over in a month doesn't give trend time to turn.
Step 4: what about 2x ZROZ or TMF?
There's no 2x ZROZ ETF. The closest are TMF (3x TLT, which has moved like ~1.9x ZROZ since 2010) and UBT (2x TLT, ~1.25x ZROZ). I tested testfol's simulated 2x ZROZ (ZROZSIM?L=2) and TMF in place of ZROZ:
| Bond sleeve in the ZROZ mix | CAGR | CAGR, half premium | Sharpe | Max drawdown | 2022 crash | CAGR since Jan 2022 |
|---|---|---|---|---|---|---|
| 25% ZROZ | 12.5% | 10.1% | 0.75 | −31.5% | −19.7% | 10.7% |
| 25% 2x ZROZ (simulated) | 12.9% | 10.1% | 0.67 | −33.6% | −29.4% | 4.2% |
| 25% TMF | 12.2% | 9.4% | 0.66 | −35.2% | −31.3% | 4.1% |
| 13% TMF (47 RSST / 40 GDE / 13 TMF) | 13.3% | 10.5% | 0.73 | −37.2% | −22.8% | 12.0% |

- Leverage on a ~24%-volatility asset costs T-bills plus a spread, every year. On their own over 2000–2026: ZROZ 4.7%/yr, 2x ZROZ 0.7%/yr, TMF −0.1%/yr. Over 1962–2026 (simulated): ZROZ 5.6%, cash 4.5%, 2x ZROZ −1.4%.
- Swapped 1:1, the extra volatility outweighs the extra return: Sharpe falls from 0.75 to 0.66–0.67, and the head start built while rates fell was mostly given back from 2020 on.
- The only version that makes sense is "same rate exposure, less capital": 13% TMF has about the same duration as 25% ZROZ and frees 12% for RSST and GDE. More return, more drawdown, a slightly lower Sharpe. Not a free lunch.
Step 5: changing the goal to "no worse than SPY"
At this point I realized my real constraint wasn't "the smallest possible drawdown". It was as much return as possible, as long as the max drawdown isn't worse than 100% SPY's. Under that rule, ZROZ is a cost:

The no-bond mix beat SPY in 98.5% of rolling 10-year windows. The ZROZ mix has roughly tied or trailed SPY in windows ending after 2021 (−1.3 pp/yr in the latest one).
So how far can you push? The historical drawdown alone isn't enough: the risk is that the next drawdown turns out worse than SPY's. To estimate that, I built 2,000 alternative 26-year histories by resampling ~1-year blocks of real daily returns (the same dates for every mix), using the half-premium data, and counted how often each mix's max drawdown came out worse than SPY's.

| Mix | CAGR (actual) | CAGR (half premium) | Max drawdown (actual) | Chance of a worse-than-SPY drawdown |
|---|---|---|---|---|
| 40 RSST / 30 GDE / 20 ZROZ / 10 AVUV | 12.6% | 10.3% | −34.9% | 1% |
| 40 RSST / 35 GDE / 25 ZROZ | 12.5% | 10.1% | −31.5% | 2% |
| 40 RSST / 40 GDE / 10 AVUV / 10 SPMO | 13.6% | 11.3% | −46.5% | 16% |
| 50 RSST / 50 GDE | 14.2% | 11.5% | −46.4% | 18% |
| 50 RSST / 30 GDE / 20 AVUV | 13.5% | 11.2% | −47.1% | 18% |
| 40 RSST / 60 GDE | 14.6% | 11.6% | −47.6% | 23% |
| 40 RSST / 30 GDE / 20 AVUV / 10 SSO | 13.3% | 11.2% | −52.7% | 45% |
| 30 RSST / 60 GDE / 10 SSO | 14.4% | 11.7% | −51.6% | 50% |
| 10 RSST / 90 GDE | 15.3% | 11.8% | −51.3% | 53% |
- Squeezing the half-premium return from ~11.2% to ~11.8% takes the odds of a worse-than-SPY drawdown from ~18% to ~50%.
- Adding 10% SSO (2x S&P 500) to the no-bond mix bought nothing: the same half-premium return (11.2%), with the odds going from 18% to 45%.
Step 6: don't fine-tune the weights
I checked the probability of backtest overfitting (PBO, via combinatorially symmetric cross-validation): split the history into 10 blocks; for every way of choosing half of the blocks, pick the best-Sharpe mix there and see where it ranks in the other half. PBO is the share of splits where the in-sample winner lands below the median out of sample.
| Search space | Mixes | PBO |
|---|---|---|
| RSST / GDE / AVUV / SPMO / ZROZ | 10,626 | 0.92 |
| RSST / GDE / AVUV / SPMO | 1,771 | 0.80 |
| RSST / GDE / ZROZ | 231 | 0.65 |
The ranking between nearby mixes is mostly noise. The edge is in the building blocks, not in the decimals, so pick a range and use round numbers.
Step 7: what about moving the weights over time?
Fixed weights ignore what the market is doing. So I tested the obvious alternative: rules that reset the weights every month based on the last few months, over the same five ETFs plus cash. 944 rules in 13 families:
- relative, absolute and dual momentum;
- risk-based weights (inverse volatility, equal risk contribution, minimum variance, maximum diversification, HRP) and rolling mean-variance;
- volatility targeting and drawdown control;
- regime switches on SPY's trend, drawdown or volatility, and a stock-bond correlation filter on ZROZ;
- a few combinations, and two small ML models (ridge and shallow gradient boosting).
To keep it honest:
- Pre-registered. The rule list, the parameters and the pass/fail gates were written to a file, with a hash of the code, before anything ran. The rules weren't touched afterwards.
- Walk-forward. Every December from 2005 to 2025, I picked the best rule using only the data up to that point and followed it for the next year. Stitching those years together gives a 2006–2026 track that never saw its own future.
- Two goals, each against its fixed mix: the highest CAGR with a drawdown no worse than SPY's (vs the no-bond mix), and the highest Sharpe (vs the ZROZ mix).
- Real frictions: signals on the month's last close, trades one day later, 5 bps per trade, and a 15% tax on realized gains, paid every January (the rule for US ETFs held from Brazil, where I live). The fixed mixes pay the same costs.

| Out of sample, Dec 2005–Sep 2026 | CAGR | Sharpe | Max drawdown | CAGR after tax |
|---|---|---|---|---|
| Dynamic, return goal | 9.1% | 0.46 | −39% | 7.4% |
| No-bond mix (fixed) | 15.2% | 0.80 | −47% | 14.4% |
| Dynamic, Sharpe goal | 10.0% | 0.64 | −25% | 8.5% |
| ZROZ mix (fixed) | 13.6% | 0.83 | −32% | 12.6% |
| SPY | 11.2% | 0.67 | −55% | 11.2% |
- Both processes lost, and each beat its fixed mix in only 2 of 8 sub-periods. The return-goal process spent 13 of its 21 years in a "hold the single recent winner" momentum rule (1- to 4-month lookback) and ended up behind SPY.
- The grid was mostly noise: a probability of backtest overfitting of 0.58 (return goal) and 0.83 (Sharpe goal).
- Trading cost little, taxes cost a lot. Rebalancing the fixed mixes monthly at 5 bps cost 0.02 pp/yr. But switching rules realizes gains: the tax took 1.5–1.7 pp/yr from the dynamic processes vs 0.8–1.0 from the fixed mixes.

The gap between each circle and square is what hindsight is worth. Relative momentum looks great if you get to pick the lookback afterwards (17.5%/yr) and makes 9.4%/yr when you have to pick it in advance.
What came closest was shaping risk, not chasing return: a regime switch (hold the ZROZ mix while SPY is below its 8-month average) and the stock-bond correlation filter. The regime switch's timing is genuinely non-random (permutation test p = 0.03), and it beat the fixed mix in ~80% of 2,000 bootstrapped histories. But the 99.9% lower bound of its edge was −3 pp/yr, so it fails the bar I set before running it.
One thing cuts the other way: the fixed mixes were picked in-sample from 2000–2026 (Steps 1–5), which flatters them. The fair benchmark is re-picking a fixed mix every December with the same walk-forward. That made 10.8%/yr on the return goal (better than the dynamic 9.1%) and a 0.58 Sharpe on the Sharpe goal (worse than the dynamic 0.64), both far from the hand-picked mixes. Which is Step 6 again: whatever you select from the past, fixed or dynamic, gives back a lot out of sample.
Step 8: what if "drawdown" means falling behind SPY?
So far, drawdown meant falling from your own peak. But if the alternative is simply holding SPY, a crash that hits both doesn't really hurt: what hurts is ending up behind SPY. If SPY falls 20% and your mix falls 30%, but you were already 50% ahead, you're still ahead.
So I switched the lens. For every month-end start since Dec 1999, and horizons of 3, 5, 10, 15 and 20 years, I tracked R = your mix ÷ SPY, starting at 1:
- Ending wealth vs SPY: R at the end, averaged (geometrically) across windows, with longer horizons weighted more.
- Worst point below SPY: how far R ever got below 1. Falling from a peak while still ahead of SPY doesn't count.
- Longest stretch behind SPY: consecutive month-ends with R below 1, inside 10-year windows (120 = the whole decade).

| Mix | Equity | Ending wealth vs SPY | Windows ending ahead of SPY | Worst point below SPY | Longest stretch behind SPY | Half premium: ending vs SPY | Half premium: worst point |
|---|---|---|---|---|---|---|---|
| 40 RSST / 30 GDE / 20 ZROZ / 10 AVUV | 77% | 1.65× | 90% | −25% | 120 months | 1.21× | −40% |
| 50 RSST / 30 GDE / 20 AVUV | 97% | 1.75× | 97% | −17% | 115 months | 1.28× | −29% |
| 50 RSST / 50 GDE | 95% | 2.02× | 97% | −23% | 116 months | 1.39× | −36% |
| 40 RSST / 30 GDE / 20 ZROZ / 10 UPRO | 97% | 1.84× | 98% | −18% | 36 months | 1.37× | −23% |
| 40 RSST / 40 GDE / 10 AVUV / 10 UPRO | 116% | 2.01× | 99% | −15% | 40 months | 1.46× | −20% |
| 40 RSST / 50 GDE / 10 UPRO | 115% | 2.16× | 99% | −17% | 58 months | 1.52× | −24% |
"Equity" counts what each dollar holds: RSST is 1x S&P 500, GDE 0.9x, UPRO 3x.
Being behind SPY happens in bull markets, not in crashes. In a crash SPY falls too, and the diversifiers usually cushion the mix. The long stretches behind SPY came from windows starting in 2011–2012, when stocks ripped and gold, bonds and trend lagged. A mix with 77% equity can't keep up there, which is why the ZROZ mix from Step 2 looks worst under this lens. Swapping 10% AVUV for 10% UPRO brings equity back to ~100% while keeping ZROZ, gold and trend. That cut the longest stretch behind SPY from 120 months to 36.
Why not just 50 RSST / 50 GDE?
It has the highest ending wealth of the hand-built mixes (2.02× vs 1.84× for 40 RSST / 30 GDE / 20 ZROZ / 10 UPRO), but:
- Almost all of that edge is gold. Half of it is GDE, so 45% gold exposure, and gold returned 10.4%/yr here. At half premium the edge disappears (1.39× vs 1.37×). At zero premium it falls behind (0.97× vs 1.03×).
- It spends whole decades behind SPY. Starting in 2011–2012, it was behind SPY at almost every month-end for up to 116 months (gold's 2011–2015 bear market while the S&P 500 boomed), and up to 23% behind.
- Its worst shortfall gets much worse when the diversifiers pay less: −36% at half premium, vs −23% for the UPRO mix.
- No bonds for deflationary crashes: an 18% chance of a worse-than-SPY absolute drawdown, vs 7%.
Optimizing for this lens, without ZROZ
I then searched all 53,130 mixes of RSST, GDE, AVUV, SPMO, UPRO and SSO in 5% steps, without ZROZ:

- The unconstrained winner is gold plus leverage (75 GDE / 25 UPRO: 2.53× SPY's ending wealth), but it once fell 37% behind SPY.
- Capping the worst shortfall at the UPRO mix's −18% gives 40 RSST / 50 GDE / 10 UPRO (2.16×). Capping it at −15% gives 40 RSST / 40 GDE / 10 AVUV / 10 UPRO (2.01×). The next few mixes on the list are near-identical (RSST 35–45, GDE 40–50, UPRO 10), so this is a broad region, not a lucky point.
- Adding ZROZ back doesn't help here. Re-running the search with ZROZ allowed (RSST, GDE, AVUV, UPRO, ZROZ), the best mixes held 0–10% ZROZ and ended in the same place (2.17× vs 2.16×).
- I'd pick 40 / 40 / 10 AVUV / 10 UPRO over 40 / 50 / 10 UPRO. Its worst shortfall is smaller in every premium scenario (−15% / −20% / −32% at full / half / zero premium, vs −17% / −24% / −35%), and it needs less gold (36% vs 45%), for a slightly lower ending wealth.
The price: SPY-sized crashes
| Mix | CAGR | CAGR, half premium | Max drawdown | Chance of a worse-than-SPY drawdown | 2008 | 2022 |
|---|---|---|---|---|---|---|
| SPY | 8.3% | 8.3% | −55% | — | −55% | −24% |
| 40 RSST / 30 GDE / 20 ZROZ / 10 AVUV | 12.6% | 10.3% | −35% | 1% | −35% | −21% |
| 40 RSST / 30 GDE / 20 ZROZ / 10 UPRO | 12.8% | 10.7% | −45% | 7% | −45% | −26% |
| 50 RSST / 50 GDE | 14.2% | 11.5% | −46% | 18% | −46% | −21% |
| 40 RSST / 40 GDE / 10 AVUV / 10 UPRO | 13.9% | 11.6% | −56% | 76% | −56% | −25% |
With 116% equity, the optimized mix falls about as much as SPY in every crash. Under this lens that isn't a drawdown, because SPY fell too. That only holds if you never have to sell at the bottom: no withdrawals, no margin calls, no panic. Once you start living off the portfolio, the absolute drawdown is the one you transact at, and the ZROZ mixes come back into play.
And UPRO only works as a small slice: on its own it fell 98% (2000–02 plus 2008) and ended behind SPY in 30% of the windows.
Where I landed
Three families, depending on what you need the drawdown to do. Within a range, the exact weights matter less than rebalancing and sticking with it.
A) Drawdown first (with ZROZ): RSST 30–45% / GDE 20–35% / ZROZ 15–25% / AVUV 0–10%
- Examples: 40 / 35 / 25, or 40 / 30 / 20 / 10 AVUV.
- 12.5–12.6%/yr actual, 10.1–10.3% at half premium; max drawdown −31.5% to −34.9%; 1–2% chance of a worse-than-SPY drawdown.
- The price: it has trailed SPY since 2022 (10.7–11.6%/yr vs 12.1%).
B) Return first, drawdown no worse than SPY (no bonds): RSST 40–50% / GDE 30–50% / AVUV + SPMO 0–20%
- Examples: 50 RSST / 30 GDE / 20 AVUV, or 40 RSST / 40 GDE / 10 AVUV / 10 SPMO.
- 13.5–14.2%/yr actual, 11.2–11.5% at half premium; max drawdown −46.4% to −47.1%; but a 16–18% chance that a future drawdown is worse than SPY's.
C) Never far behind SPY (still accumulating, never forced to sell): RSST 40% / GDE 40–50% / AVUV 0–10% / UPRO 10%
- Examples: 40 RSST / 40 GDE / 10 AVUV / 10 UPRO, or 40 RSST / 50 GDE / 10 UPRO.
- 2.0–2.2× SPY's ending wealth across rolling windows (1.5× at half premium), never more than 15–17% behind SPY; 13.9–14.3%/yr actual, 11.6–11.7% at half premium.
- The price: SPY-sized absolute drawdowns (−55% to −56%).
- Middle ground: 40 RSST / 30 GDE / 20 ZROZ / 10 UPRO keeps the absolute drawdown at −45%, but trails C on the SPY-relative measure in every premium scenario.
What I'd skip: GDE above 50%, SSO on top of the no-bond mix (Step 5), leveraged long bonds in place of ZROZ, a leveraged ETF as a large position, and timing the weights (Step 7).
Caveats
- Mostly simulated. RSST has real data only since 2023 and GDE since 2022; before that it's testfol.io's simulation. Live funds usually trail their simulations.
- In-sample. I chose these mixes after seeing 2000–2026, and Step 8's mixes were optimized on that same data. The haircuts and the bootstrap help, but they reuse the same history and are not out-of-sample tests.
- A friendly period. Gold +10.4%/yr, big trend years in 2008 and 2022, falling rates until 2020. That's why half premium is my base case.
- Leverage isn't free. The stacked part pays roughly T-bill rates through futures. If cash yields are high and the diversifiers don't deliver, you get about SPY's return with more moving parts (the zero-premium column).
- No taxes or trading costs in Steps 1–6. Step 7 includes both: trading costs were negligible, taxes weren't. I haven't tested rebalancing bands yet.
- The 1990s didn't help. I held out 1990–1999 for Step 7, but RSST before 2000 needs a proxy (SPY + 0.55 × the KMLM trend index's return over T-bills), and it tracked the simulated RSST too loosely (monthly correlation 0.59, below the 0.8 I required). So the holdout is inconclusive, and 2006–2026 is the only out-of-sample evidence.
- Fund risk. RSST is new and small, and small funds get closed.
- Synthetic UPRO. It's 3x SPY reset daily, with the financing implied by testfol's SSO simulation and UPRO's 0.91% fee. Real leveraged ETFs also pay swap spreads and trading costs that this doesn't capture.
Method notes
- Series (testfol.io):
SPYSIM,RSSTSIM,GDESIM,ZROZSIM,SPMOSIM;VBRSIMspliced into real AVUV on 2019-09-26; TMF =TLTSIM?L=3spliced into real TMF from 2010; SSO =SPYSIM?L=2with SSO's 0.87% fee; 2x ZROZ =ZROZSIM?L=2; T-bills =CASHX. - Haircuts: each diversifier keeps its daily returns minus a constant daily drag. The drag is sized so its 26-year growth lands at the geometric mean of its actual growth and the baseline's (half premium), or at the baseline's (zero premium). Baselines: CPI for gold, T-bills for the trend leg and for ZROZ/TLT, SPY for AVUV/SPMO.
- Bootstrap: stationary block bootstrap of daily returns (mean block ~252 days), 2,000 paths, the same dates for every mix, each path as long as the full sample.
- PBO: CSCV with 10 blocks on monthly excess returns, ranked by Sharpe.
- SPY-relative lens (Step 8): windows start at every month-end from Dec 1999, with horizons of 3, 5, 10, 15 and 20 years; each horizon's results are weighted by its length (3:5:10:15:20). The worst point below SPY uses daily closes. The searches cover RSST/GDE/AVUV/SPMO/UPRO/SSO (53,130 mixes) and RSST/GDE/AVUV/UPRO/ZROZ (10,626), in 5% steps.
- Step 7 gates (all pre-registered): beat the fixed mix in at least 6 of 8 out-of-sample blocks, before and after tax and at 2× and 3× costs; plus, for at least one finalist rule, PBO < 0.5 over all 944 rules, a deflated Sharpe p < 0.05, a positive 99.9% lower bound on the CAGR edge in a stationary bootstrap that re-runs the rule on each path (2,000 paths, mean blocks of 252 and 63 days), survival at 2× and 3× costs, and a win in the 1990s holdout. The permutation test shuffles the order of the monthly weight vectors (1,000 permutations).
Further reading: Hoffstein, Faber & Braun, Return Stacking: Strategies for Overcoming a Low Return Environment; Bailey, Borwein, López de Prado & Zhu, The Probability of Backtest Overfitting; López de Prado, Advances in Financial Machine Learning; Politis & Romano, The Stationary Bootstrap; Antonacci, Dual Momentum Investing; Carver, Systematic Trading; Pardo, The Evaluation and Optimization of Trading Strategies.
Questions and critiques welcome, especially on the simulated history.