Mixed

SPY / QQQ / TLT / GLD Momentum Rotation: Does Top-1 Concentration Beat Top-2 Diversification?

If a monthly rotation holds only the single strongest momentum ETF instead of the two strongest equally weighted (rebalanced monthly), does the extra concentration earn enough extra return to justify the deeper drawdowns?

Over 2011–2026, holding only the top-ranked ETF (SPY/QQQ/TLT/GLD, 12-month momentum, monthly) earned a modest extra ~1.0pp a year (12.3% vs 11.3% CAGR; $593k vs $513k on $100k) — but paid for it with a maximum drawdown of −41.3% vs −25.8% and a five-and-a-half-year underwater period starting in February 2015. Risk-adjusted, the Top-2 portfolio was clearly better: Sharpe 0.75 vs 0.63, Calmar 0.44 vs 0.30. The single-position portfolio kept switching its entire holding between QQQ, TLT and GLD across 2015–16 and again in 2019, buying high and selling low. Top-1’s extra return came almost entirely from two all-in years (2020 full QQQ, 2025 full GLD). The verdict is mixed: concentration bought more upside, but the diversification Top-2 gave up was worth more than the ~1.0pp it cost.

Strategy family
Momentum rotation — selection breadth (Top 1 vs Top 2)
Universe
SPY, QQQ, TLT, GLD
Data window
2011-01-03 → 2026-05-01 (evaluation window; 2010-01-04 → 2010-12-31 is the momentum warm-up)
Data cutoff
2026-05-01
Methodology
c2i-research-1.2 (strategy engine: canonical Strategy DSL — CrossSectionalRank/TopN/EqualWeight, RateOfChange 252, monthly_first_session, scheduled rebalance)
Last reviewed
2026-08-11

Short answer

Holding only the top-ranked ETF in a monthly SPY/QQQ/TLT/GLD momentum rotation earned a little more than holding the top two equally weighted and rebalanced monthly — 12.3% vs 11.3% a year over 2011–2026, $593,082 vs $513,439 on $100,000 — but the extra ~1.0pp of annual return came with a far worse ride: a maximum drawdown of −41.3% vs −25.8%, and a single-position portfolio that spent about five and a half years underwater starting in February 2015. On risk-adjusted measures the Top-2 portfolio was clearly better (Sharpe 0.75 vs 0.63; Calmar 0.44 vs 0.30). Top-1’s entire advantage came from two all-in years — full QQQ through the 2020 recovery (+47%) and full GLD through the 2025 gold rally (+62%).

Controlled comparison, not a recommendationThis study isolates one changed variable — how many ETFs the rotation holds — on one evaluation window with one set of execution assumptions. It is not investment advice.

Why this question matters

“How many positions should a momentum rotation hold?” is one of the first design decisions anyone building an ETF rotation faces. One position maximizes exposure to the strongest trend but bets everything on getting the ranking right; two positions dilute that bet but cut the damage when the top-ranked asset is a false signal. This is a selection-breadth question, tested as a controlled experiment: same universe, same lookback, same rebalance, one changed variable.

Hypothesis

Top-1 concentration may capture more of the strongest trend and therefore improve upside in persistent regimes, but it should also create greater concentration and path risk. Top-2 should diversify single-asset timing errors and may reduce drawdowns or failure severity, at the possible cost of diluted momentum exposure.

Baseline and changed variable

Controlled comparison — one variable changed (frozen before any run)
BaselineVariant
UniverseSPY · QQQ · TLT · GLDSPY · QQQ · TLT · GLD
Momentum lookback252 sessions (12 months)252 sessions (12 months)
RankingDescending by momentumDescending by momentum
Selection breadthTop 1Top 2
Weighting100% to the winner50% / 50%, rebalanced monthly
RebalanceMonthly (first trading session)Monthly (first trading session)
EligibilityAlways in (no gate/filter)Always in (no gate/filter)
Costs$0 commission$0 commission
Warm-up window2010-01-04 → 2010-12-312010-01-04 → 2010-12-31
Evaluation window2011-01-03 → 2026-05-012011-01-03 → 2026-05-01

Both sides are the same rotation rule — 12-month momentum, ranked descending, monthly rebalance — differing only in how many winners are selected: one (100%) or two (50/50, rebalanced back to 50/50 at every monthly decision). There is no absolute-momentum gate, no moving-average filter, no volatility filter and no optimizer anywhere in the design. When the top-ranked asset changes, the Top-1 portfolio sells its entire position and buys the new winner; the Top-2 portfolio swaps only the half of the portfolio whose holding dropped out of the top two, and each month trims the better-performing holding back toward 50/50.

Exact rules

  • Universe: SPY (S&P 500), QQQ (Nasdaq-100), TLT (20+ year US Treasuries), GLD (gold bullion), daily adjusted closes.
  • Momentum: 12-month (252-session) price change on the close, computed per ETF.
  • Baseline: hold the top-ranked ETF at 100%; rebalance on the first trading session of each month.
  • Variant: hold the top two ETFs at 50% each; rebalance on the same schedule, restoring 50/50 weights each month.
  • Decisions use the close of the day before the rebalance session; trades execute at the next session.
  • Long-only, unlevered. In this test, cash earns 0%. No leverage, no derivatives, no shorting.
  • No slippage or commissions in these runs; fee sensitivity is discussed in Limitations.
  • Both runs start 2010-01-01 (warm-up). Metrics are reported for the evaluation window 2011-01-03 → 2026-05-01 only.

Results and evidence

The metric grid, comparison table, annual returns and charts below are rendered directly from the study’s evidence file (real Agent Lab runs, evaluation window only). The annual returns show where the two strategies diverge: Top 1 dominated in 2020 (+47.1% vs +23.9%) and 2025 (+62.2% vs +40.4%) by being fully in the year’s hottest asset (QQQ, then GLD); Top 2 dominated in 2015 (+0.2% vs −16.0%), 2016 (−16.9% vs −23.5%) and 2019 (+14.8% vs +3.3%) by holding a second, less whipsawed asset.

CAGR
+12.3%+11.3%
Max drawdown
-41.4%-25.8%
Volatility
+18.5%+14.3%
Sharpe
0.630.75
Calmar
0.300.44
Avg cash
+0.4%+0.3%
Full metric comparison, evaluation window 2011-01-032026-05-01
MetricTop 1 (single winner)Top 2 (equal weight)
CAGR+12.3%+11.3%
Maximum drawdown-41.4%-25.8%
Annualized volatility+18.5%+14.3%
Sharpe ratio0.630.75
Calmar0.300.44
Final value of $100,000$593,082$513,439
Total trades127415
Trades per year8.327.1
Dollar turnover (% of avg. AUM / yr)+247.0%+174.2%
Average cash (% of portfolio)+0.4%+0.3%
Annual returns (%) — Top 1 (single winner) vs Top 2 (equal weight)
YearTop 1 (single winner)Top 2 (equal weight)Difference
2011+8.7%-9.2%-17.9
2012+2.0%+6.9%+4.9
2013+30.8%+28.3%-2.5
2014+19.2%+18.6%-0.6
2015-16.0%+0.2%+16.2
2016-23.5%-16.9%+6.7
2017+28.2%+27.3%-0.9
2018-0.1%-2.3%-2.2
2019+3.3%+14.8%+11.5
2020+47.1%+23.9%-23.2
2021+28.0%+24.8%-3.2
2022-17.8%-18.1%-0.4
2023+25.9%+21.9%-3.9
2024+19.5%+23.3%+3.8
2025+62.2%+40.4%-21.8
2026 (YTD)+6.8%+9.3%+2.5
05102011-01-032026-05-01Top 1 (single winner)Top 2 (equal weight)
Equity curve — net value, start = 1
-50%-40%-30%-20%-10%0%2011-01-032026-05-01Top 1 (single winner)Top 2 (equal weight)
Drawdown path (%)
-80%-40%0%40%80%11121314151617181920212223242526Top 1 (single winner)Top 2 (equal weight)
Annual returns (%)

Cash exposure stayed effectively near zero in this test — average 0.3%, highest year 1.0%.

Cash exposure (Top 2 (equal weight)) — daily sampled; values are in the evidence table.

Where each strategy failed — and where it helped

Top 1’s worst stretch: five and a half years underwater (Feb 2015 → Jul 2020)From its February 2015 peak, the single-position portfolio did not return to breakeven until July 2020 — a −41.3% drawdown that lasted about 5.5 years. The damage was concentrated in 2015–16: the top-ranked ETF switched its entire holding fourteen times between QQQ, TLT and GLD across those two years (QQQ → TLT in January 2015, TLT → QQQ in March, back and forth through 2015–16, into GLD in May 2016), with the portfolio buying highs and selling lows on nearly every switch. 2015 returned −16.0% and 2016 −23.5%. The Top-2 portfolio held a second position through the same period (QQQ+TLT in 2015, GLD+TLT in 2016), cutting 2015 to +0.2% and 2016 to −16.9%.
  • 2019 whipsaw: the single position switched between QQQ, TLT, SPY and GLD seven times in one year (TLT → SPY → QQQ → TLT → QQQ → GLD → TLT), returning +3.3% while the two-position version made +14.8% — the #1 rank was unstable and every switch was a full 100% round trip.
  • Turnover: the Top-1 portfolio turned over ~247% of assets per year (every switch is the whole portfolio) vs ~174% for Top-2. Top-2 actually trades more often (415 vs 127 executions — it rebalances monthly) but the trades are partial, so its dollar turnover is lower.
  • 2022: both portfolios survived reasonably by rotating out of QQQ — Top 1 into GLD and SPY (−17.8%), Top 2 into SPY+GLD (−18.1%). Diversification bought little here because the whole equity/growth complex fell together.
  • Where Top 1 clearly helped: full QQQ through the 2020 V-recovery (+47.1% vs +23.9%) and full GLD through the 2025 gold supercycle (+62.2% vs +40.4%) — the two years that generate most of its extra CAGR.
  • Holding pattern: Top 1 was in a single ETF ~99% of the window (QQQ 49% of days, GLD 25%, TLT 14%, SPY 11%); Top 2 held QQQ on 77% of days, SPY 61%, GLD 39%, TLT 22% — much of its time in a two-position mix.
Largest drawdown episodes (depth) — evaluation window (trough dates are the actual lowest point)
VariantStartTroughRecoveryDepth
Top 12015-02-032016-12-152020-07-31−41.3%
Top 12022-01-042022-09-262023-12-12−27.7%
Top 22022-01-042022-10-142023-12-26−25.8%
Top 22015-07-222016-12-152017-12-11−22.0%

Limitations and counter-evidence

Counter-evidence — the concentration hypothesis has a real, measurable upside. Top-1’s extra return is not noise: it came from being 100% in the strongest asset during two powerful sustained regimes (2020 tech, 2025 gold), and over the full window it compounded to $80,000 more on $100,000. The question this study answers is whether that upside was fairly priced: at 15.5pp more maximum drawdown, worse Sharpe and Calmar, and a five-year underwater period, the risk-adjusted answer is no — but an investor who can tolerate and time the concentration risk would have been paid for it.

  • Data constraint: the shared price source serves US daily data from 2010-01-01, so the 252-session momentum warm-up consumes 2010 and the evaluation window starts 2011-01-03. 2008-style collapses and pre-2010 bond/gold regimes are not observable here.
  • Single evaluation window: 2011–2026 contains two sustained single-asset regimes (2020 tech, 2025 gold) that flatter concentration; a different window could change the ranking of the two portfolios.
  • This tests one breadth change (1 vs 2) on one universe with one 12-month lookback. It is not a test of Top 3+, different lookbacks, weekly cadence, or momentum blends — all out of scope for this issue.
  • Fees would widen the gap against Top 1, not close it: at 247%/yr turnover vs 174%, real commissions and spreads hit the concentrated version harder. Fee sensitivity is future research.
  • Cash earns 0% in this test; both portfolios hold essentially no cash (≈0.5%), so there is no cash-drag distortion here.
  • Dividends are reinvested (adjusted prices). All four ETFs predate the window (SPY 1993, QQQ 1999, TLT 2002, GLD 2004), so there is no inception bias.
  • Backtest ≠ proof. Validation means executable, not trustworthy. Nothing here is investment advice.

Verdict

Verdict: mixed — Top-1 concentration paid, but not enough for the riskTop-1 did earn more (12.3% vs 11.3% CAGR, $593k vs $513k on $100k) and its two best years (2020, 2025) are genuine concentration wins. But the price was 15.5pp more maximum drawdown (−41.3% vs −25.8%), a 5.5-year underwater period, worse Sharpe (0.63 vs 0.75) and Calmar (0.30 vs 0.44), and ~70pp/yr more dollar turnover. Top-2’s diversification did not merely dilute returns — it bought real protection in 2015–16 and 2019, the whipsaw years where single-position ranking errors hurt most. On risk-adjusted terms the two-position rotation is the better trade-off; an investor choosing Top-1 is explicitly buying upside for deeper, longer drawdowns.

Reproducibility & assumptions

The rules, evidence and failure analysis above are the reader-facing research. This section preserves the audit trail needed to reproduce the experiment without making engine implementation details part of the main argument.

Reproducibility record
c2i-research-1.2

Adjusted daily OHLC via investOHLCProxy through MyInvestPilot Agent Lab (same canonical price path as the runs; US daily data served from 2010-01-01; data cutoff 2026-05-01).

  • Warm-up: both runs start 2010-01-01; 2010-01-04 → 2010-12-31 is the 252-session momentum warm-up (both runs all-cash in 2010) and is excluded from all reported metrics.
  • Evaluation window: 2011-01-03 to 2026-05-01 (3855 trading days), identical for both variants; NAV normalized to 1 at window start.
  • Monthly rebalancing on the first trading session of each month; decisions use the prior session’s close; trades execute at the next session. EqualWeight.rebalance_policy = scheduled (weights restored to target at every monthly decision).
  • The only changed variable is selection breadth: TopN = 1 (baseline, 100% to the winner) vs TopN = 2 (variant, 50/50 equal weight, rebalanced monthly). Eligibility is always true; no gate, filter or optimizer.
  • Long-only, unlevered; cash earns 0%; $0 commission, no slippage in these runs.
  • The exact run configs below are copied from the evidence file (_provenance.baseline_config / variant_config) — what was actually run.
Advanced: exact engine configurations

These JSON configs are preserved for auditability and Agent re-runs. Most readers do not need them to understand the study.

Top 1 (single winner) (Study #3 baseline: SPY/QQQ/TLT/GLD momentum rotation Top 1 (scheduled))
Exact baseline configuration recorded in study provenance.
{
  "name": "Study #3 baseline: SPY/QQQ/TLT/GLD momentum rotation Top 1 (scheduled)",
  "description": "Chat2Invest Study #3 (#71) baseline: hold the single top momentum ETF (12-month), monthly rebalance to target weights. Warm-up 2010, evaluation from 2011-01-03.",
  "symbols": [
    {
      "symbol": "SPY"
    },
    {
      "symbol": "QQQ"
    },
    {
      "symbol": "TLT"
    },
    {
      "symbol": "GLD"
    }
  ],
  "start_date": "2010-01-01",
  "end_date": "2026-05-01",
  "currency": "USD",
  "market": "US",
  "commission": 0,
  "strategy_definition": {
    "trade_strategy": {
      "indicators": [
        {
          "id": "momentum",
          "type": "RateOfChange",
          "params": {
            "periods": 252,
            "column": "Close"
          }
        },
        {
          "id": "zero",
          "type": "Constant",
          "params": {
            "value": 0
          }
        }
      ],
      "signals": [
        {
          "id": "always_eligible",
          "type": "GreaterThan",
          "inputs": [
            {
              "column": "Close"
            },
            {
              "ref": "zero"
            }
          ],
          "params": {}
        },
        {
          "id": "cadence",
          "type": "RebalanceCadence",
          "inputs": [],
          "params": {
            "frequency": "monthly_first_session",
            "bootstrap_on_first_session": true
          }
        },
        {
          "id": "rank",
          "type": "CrossSectionalRank",
          "inputs": [
            {
              "ref": "momentum"
            },
            {
              "ref": "always_eligible"
            },
            {
              "ref": "cadence"
            }
          ],
          "params": {
            "direction": "descending"
          }
        },
        {
          "id": "selected",
          "type": "TopN",
          "inputs": [
            {
              "ref": "rank"
            },
            {
              "ref": "cadence"
            }
          ],
          "params": {
            "n": 1
          }
        },
        {
          "id": "not_selected",
          "type": "Not",
          "inputs": [
            {
              "ref": "selected"
            }
          ],
          "params": {}
        },
        {
          "id": "weight",
          "type": "EqualWeight",
          "inputs": [
            {
              "ref": "selected"
            },
            {
              "ref": "cadence"
            }
          ],
          "params": {
            "rebalance_policy": "scheduled"
          }
        }
      ],
      "outputs": {
        "buy_signal": "selected",
        "sell_signal": "not_selected",
        "target_weight": "weight",
        "indicators": [
          {
            "id": "momentum",
            "output_name": "cross_sectional_feature"
          }
        ]
      }
    },
    "capital_strategy": {
      "name": "RebalancingCapitalStrategy",
      "params": {
        "initial_capital": 100000,
        "gross_exposure": 1
      }
    }
  }
}
Top 2 (equal weight) (Study #3 variant: SPY/QQQ/TLT/GLD momentum rotation Top 2 equal-weight (scheduled))
Exact variant configuration recorded in study provenance.
{
  "name": "Study #3 variant: SPY/QQQ/TLT/GLD momentum rotation Top 2 equal-weight (scheduled)",
  "description": "Chat2Invest Study #3 (#71) variant: hold the top two momentum ETFs equally weighted (12-month), monthly rebalance to 50/50. Warm-up 2010, evaluation from 2011-01-03.",
  "symbols": [
    {
      "symbol": "SPY"
    },
    {
      "symbol": "QQQ"
    },
    {
      "symbol": "TLT"
    },
    {
      "symbol": "GLD"
    }
  ],
  "start_date": "2010-01-01",
  "end_date": "2026-05-01",
  "currency": "USD",
  "market": "US",
  "commission": 0,
  "strategy_definition": {
    "trade_strategy": {
      "indicators": [
        {
          "id": "momentum",
          "type": "RateOfChange",
          "params": {
            "periods": 252,
            "column": "Close"
          }
        },
        {
          "id": "zero",
          "type": "Constant",
          "params": {
            "value": 0
          }
        }
      ],
      "signals": [
        {
          "id": "always_eligible",
          "type": "GreaterThan",
          "inputs": [
            {
              "column": "Close"
            },
            {
              "ref": "zero"
            }
          ],
          "params": {}
        },
        {
          "id": "cadence",
          "type": "RebalanceCadence",
          "inputs": [],
          "params": {
            "frequency": "monthly_first_session",
            "bootstrap_on_first_session": true
          }
        },
        {
          "id": "rank",
          "type": "CrossSectionalRank",
          "inputs": [
            {
              "ref": "momentum"
            },
            {
              "ref": "always_eligible"
            },
            {
              "ref": "cadence"
            }
          ],
          "params": {
            "direction": "descending"
          }
        },
        {
          "id": "selected",
          "type": "TopN",
          "inputs": [
            {
              "ref": "rank"
            },
            {
              "ref": "cadence"
            }
          ],
          "params": {
            "n": 2
          }
        },
        {
          "id": "not_selected",
          "type": "Not",
          "inputs": [
            {
              "ref": "selected"
            }
          ],
          "params": {}
        },
        {
          "id": "weight",
          "type": "EqualWeight",
          "inputs": [
            {
              "ref": "selected"
            },
            {
              "ref": "cadence"
            }
          ],
          "params": {
            "rebalance_policy": "scheduled"
          }
        }
      ],
      "outputs": {
        "buy_signal": "selected",
        "sell_signal": "not_selected",
        "target_weight": "weight",
        "indicators": [
          {
            "id": "momentum",
            "output_name": "cross_sectional_feature"
          }
        ]
      }
    },
    "capital_strategy": {
      "name": "RebalancingCapitalStrategy",
      "params": {
        "initial_capital": 100000,
        "gross_exposure": 1
      }
    }
  }
}

I want to test a variation

Custom experiments are not open yet. If you understand this study and want to change one thing, choosing below helps us decide what to build next.

© 2023–2026 Chat2Invest — evidence-first ETF strategy research.