Explore more topics
Historical strategy research · October 12, 2026

Walk-forward optimization: a retrospective TQQQ research loop

Three rounds of TQQQ variants, losing-trade inspections and rule repairs, followed by five walk-forward blocks. Compare matched-fold and continuous holding, inspect weaker periods and see which development dates overlap the tests.

As of 2026-10-12

Jump to a section

TL;DR

This TQQQ study tests variants, inspects losing trades and repairs the rules. Its eight-candidate menu was developed using 2011–2021, overlapping the first three test blocks; these are retrospective walk-forward results.

The chained folds returned +2,895% versus +2,750% for TQQQ held through the same fold windows; continuous TQQQ holding returned +2,982%. The bot beat TQQQ in one of five folds: 2018 to 2020 returned 17.78% versus 80.90%, while 2020 to 2022 returned 71.83% versus -43.41%. Worst fold drawdown was 55.52%. Inspect the weaker periods before copying the settings.

Walk-forward, 10y OOS
2,895%
TQQQ hold, same fold dates
2,750%
Fold 3: 2020–2022
+71.8% vs −43.4%
Champion max drawdown
49.07%

Ten years, five folds, one chart

Chained walk-forward equity: 2016-10-01 through 2026-09-30, indexed to 1003.3K83.32016-10-062026-09-30
Walk-forward chain (5 folds) 2026-09-30, 20:00:00 UTC
2,995.27
TQQQ buy and hold 2026-09-30, 20:00:00 UTC
3,081.88
Frozen 50-day rules 2026-09-30, 20:00:00 UTC
1,330.93
QQQ buy and hold 2026-09-30, 20:00:00 UTC
668.99
Walk-forward chain (5 folds)TQQQ buy and holdFrozen 50-day rulesQQQ buy and holdHistorical simulation

The folds

Animation: a chained $10,000 value line is drawn across five two-year test spans from October 2016 to September 2026. Each span is stamped with the rule selected from earlier dates, the bot's return and TQQQ buy and hold's return over that span, with a check mark where the bot did better (sma350 +221.38% versus TQQQ hold +233.08%, sma350 +17.78% versus TQQQ hold +80.90%, dual-300-200-slow +71.83% versus TQQQ hold -43.41%, dual-300-200-slow +135.91% versus TQQQ hold +279.05%, dual-300-200-slow +95.21% versus TQQQ hold +120.54%). The line ends at $299,527.
Chained across five two-year tests, $10,000 became $299,527. The bot beat TQQQ buy and hold in 1 of the 5 tests.
Walk-forward return versus TQQQ buy and hold per fold

Scale: −279.05 to +279.05 % · zero baseline

2016-10 – 2018-09

  • Walk-forward+221.38%
  • TQQQ hold+233.08%

2018-10 – 2020-09

  • Walk-forward+17.78%
  • TQQQ hold+80.9%

2020-10 – 2022-09

  • Walk-forward+71.83%
  • TQQQ hold-43.41%

2022-10 – 2024-09

  • Walk-forward+135.91%
  • TQQQ hold+279.05%

2024-10 – 2026-09

  • Walk-forward+95.21%
  • TQQQ hold+120.54%

Green: the procedure's chained folds. Purple: TQQQ buy and hold on the same dates.

Show the table · 5 rows, 6 columns

Scroll sideways to compare all columns. Select a heading to sort.

2016-10 – 2018-09sma350+221.38%32.02%+233.08%+23.58%
2018-10 – 2020-09sma350+17.78%55.52%+80.90%+248.80%
2020-10 – 2022-09dual-300-200-slow+71.83%32.45%-43.41%+2.26%
2022-10 – 2024-09dual-300-200-slow+135.91%42.69%+279.05%+124.85%
2024-10 – 2026-09dual-300-200-slow+95.21%32.98%+120.54%+32.31%

Same 8-variant grid every fold. Selection saw only dates before each test span; the winner then ran unchanged on the next two years.

Each fold selects using dates before its test block. However, the shared eight-candidate menu was developed and repaired on 2011–2021, which overlaps the first three displayed test blocks. Those blocks therefore cannot be treated as wholly unseen evidence for the menu itself.

The champion rules

Show the table · 5 rows, 2 columns
SettingRecorded choice
EntryQQQ above its 300-day AND 200-day calendar mean, while flat
ExitQQQ at or below its 300-day mean
PositionTQQQ, 95% of buying power, fractional shares, full exits
Costs0.05% of submitted notional per fill; dividends to cash
BaselineTQQQ buy and hold on matched dates; QQQ for context

Day observations, no interest on cash, no slippage model - identical contract to the incumbent study.

Round 1 — ten declared variants (2011–2021)

Scale: 0 to 2,614.9 % · zero baseline

Return

  • QQQ SMA250+2,614.93%
  • QQQ SMA200+1,513.34%
  • QQQ SMA50 (control)+1,392.80%
  • Enter QQQ > SMA50; exit <= SMA40+1,368.25%
  • Enter QQQ > SMA50; exit <= SMA30+1,241.24%
  • QQQ SMA20+1,210.30%
  • QQQ SMA150+1,001.20%
  • Enter QQQ > SMA50 and > SMA200; exit below either+636.99%
  • Enter QQQ > SMA100; exit <= SMA70+523.15%
  • QQQ SMA100+512.17%

Scale: 0 to 60.17 % · zero baseline

Maximum drawdown

  • QQQ SMA25060.17%
  • QQQ SMA20056.71%
  • QQQ SMA50 (control)43.28%
  • Enter QQQ > SMA50; exit <= SMA4045.61%
  • Enter QQQ > SMA50; exit <= SMA3044.17%
  • QQQ SMA2045.75%
  • QQQ SMA15053.85%
  • Enter QQQ > SMA50 and > SMA200; exit below either43.24%
  • Enter QQQ > SMA100; exit <= SMA7047.36%
  • QQQ SMA10045.74%

Scale: 0 to 285 · zero baseline

Closed trades

  • QQQ SMA25045
  • QQQ SMA20062
  • QQQ SMA50 (control)152
  • Enter QQQ > SMA50; exit <= SMA40209
  • Enter QQQ > SMA50; exit <= SMA30285
  • QQQ SMA20241
  • QQQ SMA15076
  • Enter QQQ > SMA50 and > SMA200; exit below either157
  • Enter QQQ > SMA100; exit <= SMA70211
  • QQQ SMA100103

Declared before results. TQQQ buy and hold on the same window: +13,811.92%.

Show the table · 10 rows, 5 columns

Scroll sideways to compare all columns. Select a heading to sort.

QQQ SMA250+2,614.93%60.17%451.73
QQQ SMA200+1,513.34%56.71%623.13
QQQ SMA50 (control)+1,392.80%43.28%1522.24
Enter QQQ > SMA50; exit <= SMA40+1,368.25%45.61%2092.26
Enter QQQ > SMA50; exit <= SMA30+1,241.24%44.17%2851.95
QQQ SMA20+1,210.30%45.75%2411.84
QQQ SMA150+1,001.20%53.85%762.31
Enter QQQ > SMA50 and > SMA200; exit below either+636.99%43.24%1572.00
Enter QQQ > SMA100; exit <= SMA70+523.15%47.36%2111.57
QQQ SMA100+512.17%45.74%1031.68

Declared before results. TQQQ buy and hold on the same window: +13,811.92%.

The losers

83.2% of round-1 losses lasted under 20 days. The five worst:

Show the table · 5 rows, 5 columns

Scroll sideways to compare all columns. Select a heading to sort.

2020-02-282020-03-0910-20.09%-$13,577.26
2019-03-112019-06-0384-9.98%-$5,610.43
2020-04-072020-04-070-8.41%-$4,281.49
2020-03-102020-03-111-7.04%-$3,844.42
2018-10-222018-10-231-5.61%-$3,651.46

Round 2 — the repairs

Scale: 0 to 3,923.4 % · zero baseline

Return

  • Enter > SMA300 & > SMA100; exit <= SMA300+3,923.39%
  • QQQ SMA300+3,055.96%
  • Enter > SMA250; exit <= SMA200+2,614.93%
  • Enter > SMA250 & > SMA50; exit <= SMA250+2,347.29%
  • Enter > SMA250 & > SMA100; exit <= SMA250+1,815.00%
  • Enter > SMA200; exit <= SMA150+1,513.34%
  • Enter > SMA200 & > SMA50; exit <= SMA200+1,372.88%
  • Enter > SMA200 & > SMA50; exit <= SMA50+861.14%
  • Enter > SMA250 & > SMA50; exit <= SMA50+826.74%
  • Enter > SMA250 & > SMA50; exit below either+689.17%

Scale: 0 to 62.15 % · zero baseline

Maximum drawdown

  • Enter > SMA300 & > SMA100; exit <= SMA30051.87%
  • QQQ SMA30055.88%
  • Enter > SMA250; exit <= SMA20060.17%
  • Enter > SMA250 & > SMA50; exit <= SMA25047.02%
  • Enter > SMA250 & > SMA100; exit <= SMA25062.15%
  • Enter > SMA200; exit <= SMA15056.71%
  • Enter > SMA200 & > SMA50; exit <= SMA20049.22%
  • Enter > SMA200 & > SMA50; exit <= SMA5043.25%
  • Enter > SMA250 & > SMA50; exit <= SMA5043.27%
  • Enter > SMA250 & > SMA50; exit below either43.27%

Scale: 0 to 154 · zero baseline

Closed trades

  • Enter > SMA300 & > SMA100; exit <= SMA30021
  • QQQ SMA30037
  • Enter > SMA250; exit <= SMA20045
  • Enter > SMA250 & > SMA50; exit <= SMA25033
  • Enter > SMA250 & > SMA100; exit <= SMA25029
  • Enter > SMA200; exit <= SMA15062
  • Enter > SMA200 & > SMA50; exit <= SMA20043
  • Enter > SMA200 & > SMA50; exit <= SMA50145
  • Enter > SMA250 & > SMA50; exit <= SMA50144
  • Enter > SMA250 & > SMA50; exit below either154

Controls from round 1: sma250 +2,614.93% (DD 60.17%), sma50 +1,392.80% (DD 43.28%).

Show the table · 10 rows, 5 columns

Scroll sideways to compare all columns. Select a heading to sort.

Enter > SMA300 & > SMA100; exit <= SMA300+3,923.39%51.87%215.38
QQQ SMA300+3,055.96%55.88%371.98
Enter > SMA250; exit <= SMA200+2,614.93%60.17%451.73
Enter > SMA250 & > SMA50; exit <= SMA250+2,347.29%47.02%332.60
Enter > SMA250 & > SMA100; exit <= SMA250+1,815.00%62.15%291.89
Enter > SMA200; exit <= SMA150+1,513.34%56.71%623.13
Enter > SMA200 & > SMA50; exit <= SMA200+1,372.88%49.22%434.34
Enter > SMA200 & > SMA50; exit <= SMA50+861.14%43.25%1452.19
Enter > SMA250 & > SMA50; exit <= SMA50+826.74%43.27%1442.12
Enter > SMA250 & > SMA50; exit below either+689.17%43.27%1542.00

Controls from round 1: sma250 +2,614.93% (DD 60.17%), sma50 +1,392.80% (DD 43.28%).

Repair verified

Measured loss repair in the development window

Scale: 0 to 60.17 % loss · zero baseline

Worst round trip

  • Round 1 winner+20.09% loss
  • Round 2 winner+10.54% loss

Maximum drawdown

  • Round 1 winner+60.17% loss
  • Round 2 winner+51.87% loss

Positive magnitudes show losses, not returns. These are the round-one and round-two winners selected on the same 2011 to 2021 development history; they do not establish later performance. All exact event dates and values remain in the table.

Show the table · 4 rows, 3 columns

Scroll sideways to compare all columns. Select a heading to sort.

Worst round trip-20.09% (2020-02-28 → 2020-03-09)-10.54%
Whipsaw share of losses83.2%60.8%
COVID tradeBought 2020-02-28, sold 2020-03-09No trade Feb–Mar 2020; next entry Apr 14, 2020
Max drawdown60.17%51.87%

Round 3 — the plateau, then stop

Scale: 0 to 4,126.9 % · zero baseline

Return

  • Enter > SMA300 & > SMA200; exit <= SMA300+4,126.87%
  • Enter > SMA300 & > SMA150; exit <= SMA300+3,905.71%
  • Enter > SMA300 & > SMA50; exit <= SMA300+3,337.64%
  • Enter > SMA350 & > SMA100; exit <= SMA350+3,204.34%
  • Enter > SMA300; exit <= SMA250+3,055.96%
  • QQQ SMA350+2,983.67%

Scale: 0 to 55.88 % · zero baseline

Maximum drawdown

  • Enter > SMA300 & > SMA200; exit <= SMA30049.07%
  • Enter > SMA300 & > SMA150; exit <= SMA30051.96%
  • Enter > SMA300 & > SMA50; exit <= SMA30051.43%
  • Enter > SMA350 & > SMA100; exit <= SMA35051.87%
  • Enter > SMA300; exit <= SMA25055.88%
  • QQQ SMA35055.52%

Scale: 0 to 37 · zero baseline

Closed trades

  • Enter > SMA300 & > SMA200; exit <= SMA30029
  • Enter > SMA300 & > SMA150; exit <= SMA30025
  • Enter > SMA300 & > SMA50; exit <= SMA30029
  • Enter > SMA350 & > SMA100; exit <= SMA35020
  • Enter > SMA300; exit <= SMA25037
  • QQQ SMA35036

Three rounds was the declared limit. Adjacent settings land within ~5%: a plateau, not a spike.

Show the table · 6 rows, 5 columns

Scroll sideways to compare all columns. Select a heading to sort.

Enter > SMA300 & > SMA200; exit <= SMA300+4,126.87%49.07%294.14
Enter > SMA300 & > SMA150; exit <= SMA300+3,905.71%51.96%255.16
Enter > SMA300 & > SMA50; exit <= SMA300+3,337.64%51.43%293.09
Enter > SMA350 & > SMA100; exit <= SMA350+3,204.34%51.87%205.82
Enter > SMA300; exit <= SMA250+3,055.96%55.88%371.98
QQQ SMA350+2,983.67%55.52%361.94

Three rounds was the declared limit. Adjacent settings land within ~5%: a plateau, not a spike.

2022 to 2024 comparison with previously studied dates

2022 to 2024 comparison with previously studied dates

Scale: −87.886 to +87.886 % · zero baseline

2022 – 2024

  • Champion+87.89%
  • Runner-up+68.61%
  • Incumbent 50-day+62.91%
  • TQQQ hold-2.18%
  • QQQ hold+30.72%
Show the table · 5 rows, 3 columns

Scroll sideways to compare all columns. Select a heading to sort.

dual-300-200-slow (champion)+87.89%42.69%
dual-300-100-slow+68.61%48.68%
Incumbent 50-day+62.91%45.68%
TQQQ hold-2.18%81.19%
QQQ hold+30.72%-

2022–2024 was the incumbent study's development window: fresh to this sweep, not to research history.

These dates were fresh to this variant sweep, but 2022–2024 had already been used to develop the incumbent strategy. This comparison is part of the research history rather than an untouched final test.

Retrospective walk-forward: $10,000 → $299,527

TQQQ held through the same five fold windows: $285,043.00. TQQQ held continuously: $308,188.00, because the chained folds each restart at their first open and skip the four overnight moves between folds. Incumbent 50-day: $133,093.00. QQQ: $66,899.00. Worst fold drawdown 55.5% against the fund's 82%.

The same rules, all fifteen years — in-sample, labeled

In-sample contrast: champion rules across 2011-10-03 through 2026-09-30, $10,000 starting capital3M8.6K2011-10-062026-09-30
Champion (in-sample) 2026-09-30, 20:00:00 UTC
1,409,812.52
TQQQ buy and hold 2026-09-30, 20:00:00 UTC
2,747,507.83
Frozen 50-day rules 2026-09-30, 20:00:00 UTC
328,235.66
Champion (in-sample)TQQQ buy and holdFrozen 50-day rulesHistorical simulation

+13,998.13% is training evidence from running the champion across the full window. The fold chart uses earlier-date selection within each block, but its candidate menu was developed using overlapping years. Both views belong to this retrospective research history.

Where it breaks

Show the table · 2 rows, 2 columns
BreakEvidence
Slow gate vs V-crashFold 2: +17.8% while the incumbent's 50-day filter took +248.8% through COVID
Dates carry history2022–2024 was the incumbent's development window; the 2026 reserved quarter sits inside fold 5

Recreate it

Start with the exact inactive draft below. To investigate your own variant, declare the alternatives, inspect losing trades and compare the changes over dated test periods. Keep a record of which dates informed each decision.

Continue exploring

Discussion

Sign in or create a free account to join the discussion.

No comments yet.

Aurora · AI research assistant

Try this in Aurora

Edit the request, then open it in Aurora. You choose when to send it.