QQQ Golden Cross Backtest: +238.5% vs +289.1% Buy-and-Hold (2019–2026)

· backtest, QQQ, golden cross, moving averages

QQQ Golden Cross Backtest: +238.5% vs +289.1% Buy-and-Hold

The golden cross — the 50-day moving average crossing above the 200-day — is one of the most quoted "bullish" signals in technical analysis. We tested it honestly on QQQ, long-only, from 2019-10-16 to 2026-09-18: fully invested when the 50-day is above the 200-day, in cash otherwise.

The headline numbers

Metric Golden-cross strategy Buy-and-hold QQQ
Total return +238.5% +289.1%
CAGR 19.3% 21.7%
Max drawdown −22.8% −35.1%
Trades 3, all winners —
Time in market 74.0% 100%

The strategy made money on every trade — and still lost to doing nothing. That's the uncomfortable part, and it's the whole point of backtesting.

The trades

# Entry Exit Return
1 2020-05-19 @ $218.63 2022-03-02 @ $337.43 +54.34%
2 2023-03-10 @ $282.48 2025-04-14 @ $454.30 +60.83%
3 2025-06-23 @ $528.55 2026-09-18 @ $720.70 (open) +36.35%

Three trades in nearly seven years. Every one a winner. It still underperformed buy-and-hold by about 50 percentage points.

Why this result is trustworthy

A backtest is only as honest as its execution rules. Ours:

No commissions, slippage, or taxes were modeled — real trading does worse by roughly those costs.

What we actually learn from this

  1. A 100% win rate can still lose. Win rate is a vanity metric; total return is the scoreboard.
  2. Timing strategies pay a "missed-upside" tax. The strategy sat in cash 26% of the time during one of the strongest QQQ stretches in history.
  3. It did smooth the ride. Max drawdown of −22.8% vs −35.1% for buy-and-hold is real — if you couldn't have stomached 2022, the cross would have kept you out of the worst of it.

Our verdict: the golden cross works as a trend filter, not as a return enhancer. On QQQ over this window, "always in" beat "in when the trend is up."

The correction we had to make

Our first published run of this backtest showed +273.2%. It was wrong — bought on a phantom first-bar signal and had a same-bar look-ahead flaw in the exit logic. We re-ran it from scratch with two independent implementations and published the corrected +238.5%, with the full discrepancy explained. We wrote up exactly what went wrong — because a backtest you can't trust is worse than no backtest at all.

Not financial advice. Past performance doesn't predict future results — it just helps you ask better questions.

← All posts