A parameter sweep over the (fast-in, slow-out) moving-average hysteresis band for the TQQQ trend-timing strategy: hold TQQQ (3× daily-leveraged QQQ) when QQQ is in an uptrend by a fast/slow MA gate, otherwise sit in cash. This is the TQQQ analog of the QU100 gate-tuning study — we search 124 (fast, slow) pairs to ask whether any band beats the reference 22/55 and 22/44, and whether the "best" band sits on a robust plateau or an isolated overfit spike. TQQQ is the only held instrument — no QU100 basket, no N dimension. Start $100,000. Gross of trading costs (0 bp), cash earns 0%.
Window: 2020-10-01 → 2026-06-04 · 1,402 ranking-days (~5.7 yrs) on the QU100 ranking-day calendar · QQQ & TQQQ = yfinance adjusted close (auto_adjust=False; folds in TQQQ's Jan-2022 split). QQQ MAs seeded from 2020-06 so all SMAs are valid on the first ranking-day. Fills at same-day close (no look-ahead).
invested flag, start flat). For a pair (fast, slow), fast < slow:QQQ_close ≥ QQQ_SMA(fast) → RISK-ON → hold 100% TQQQQQQ_close < QQQ_SMA(slow) → RISK-OFF → sell, hold cash (0%)SMA(slow) ≤ close < SMA(fast) (the band) → HOLD previous statefast ∈ {20, 22, 30} × slow ∈ {40, 44, 55, 65} block all clusters at Sharpe ≈ 1.00–1.10 (see the heatmap — it is a genuine contiguous plateau, not a point). 22/44 (Sharpe 1.10, +807%) sits right in that plateau and remains the practical pick — it captures essentially all the robust edge with a sensible exit, while the slow-200 corner is a one-crash artifact you should not trust out-of-sample. Fast bands (fast ≤ 10) are whipsaw-prone and cost-sensitive: they flip 80–130+ times and deliver the worst Sharpes in the grid — on a 3× instrument every extra flip is amplified cost drag. Net: do not chase (22, 200); stay on the 22/44–22/65 plateau and validate costed + out-of-sample before trusting any of it.
| fast \ slow | 5 | 8 | 10 | 13 | 15 | 20 | 22 | 30 | 40 | 44 | 55 | 65 | 80 | 100 | 150 | 200 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 0.34 | 0.25 | 0.25 | 0.20 | 0.30 | 0.46 | 0.45 | 0.44 | 0.60 | 0.64 | 0.59 | 0.53 | 0.55 | 0.67 | 0.73 | 0.77 |
| 3 | 0.42 | 0.35 | 0.37 | 0.31 | 0.42 | 0.60 | 0.56 | 0.47 | 0.69 | 0.75 | 0.71 | 0.61 | 0.67 | 0.75 | 0.89 | 0.93 |
| 5 | 0.55 | 0.54 | 0.49 | 0.56 | 0.70 | 0.65 | 0.55 | 0.75 | 0.83 | 0.78 | 0.71 | 0.75 | 0.73 | 0.85 | 0.89 | |
| 8 | 0.58 | 0.56 | 0.63 | 0.77 | 0.78 | 0.57 | 0.78 | 0.81 | 0.76 | 0.71 | 0.69 | 0.70 | 0.84 | 0.89 | ||
| 10 | 0.47 | 0.55 | 0.64 | 0.66 | 0.51 | 0.76 | 0.79 | 0.75 | 0.74 | 0.66 | 0.66 | 0.84 | 0.87 | |||
| 13 | 0.66 | 0.74 | 0.74 | 0.62 | 0.88 | 0.92 | 0.87 | 0.82 | 0.78 | 0.70 | 0.87 | 0.92 | ||||
| 15 | 0.58 | 0.62 | 0.53 | 0.79 | 0.83 | 0.78 | 0.77 | 0.72 | 0.67 | 0.84 | 0.91 | |||||
| 20 | 0.92 | 0.83 | 1.04 | 1.09 | 1.02 | 1.03 | 0.97 | 0.89 | 1.07 | 1.16 | ||||||
| 22 | 0.89 | 1.08 | 1.1044 | 1.0555 | 1.08 | 1.01 | 0.93 | 1.10 | 1.18 | |||||||
| 30 | 1.0030/40 | 0.96 | 1.01 | 1.00 | 0.98 | 0.85 | 1.01 | 1.04 |
Rows = fast (entry) leg, columns = slow (exit) leg; blank lower-left = invalid (fast ≥ slow). Two high zones stand out: a broad plateau at fast 20–30 × slow 40–65 (Sharpe ~1.0–1.1) and an isolated bright corner at slow = 200, fast 20–22 (Sharpe 1.16–1.18). The corner is the global max but stands alone; the plateau is wide and robust. The whole bottom-left (fast ≤ 10) is dim — fast entry legs whipsaw and underperform.
| fast \ slow | 5 | 8 | 10 | 13 | 15 | 20 | 22 | 30 | 40 | 44 | 55 | 65 | 80 | 100 | 150 | 200 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 26% | -4% | -6% | -19% | 9% | 74% | 71% | 63% | 165% | 201% | 161% | 113% | 132% | 233% | 305% | 352% |
| 3 | 60% | 29% | 38% | 14% | 58% | 163% | 135% | 81% | 251% | 316% | 269% | 174% | 229% | 330% | 552% | 660% |
| 5 | 124% | 121% | 91% | 136% | 248% | 207% | 128% | 319% | 431% | 363% | 273% | 316% | 303% | 475% | 564% | |
| 8 | 140% | 130% | 179% | 309% | 315% | 140% | 331% | 369% | 310% | 255% | 238% | 252% | 448% | 547% | ||
| 10 | 84% | 125% | 186% | 202% | 102% | 303% | 340% | 297% | 288% | 211% | 212% | 440% | 497% | |||
| 13 | 195% | 267% | 271% | 175% | 453% | 523% | 460% | 378% | 333% | 256% | 493% | 604% | ||||
| 15 | 145% | 172% | 114% | 330% | 384% | 331% | 313% | 268% | 220% | 447% | 581% | |||||
| 20 | 441% | 344% | 672% | 810% | 669% | 708% | 611% | 483% | 934% | 1280% | ||||||
| 22 | 414% | 732% | 807%44 | 716%55 | 779% | 676% | 537% | 982% | 1305% | |||||||
| 30 | 552%30/40 | 521% | 605% | 593% | 586% | 405% | 732% | 852% |
Return peaks even more sharply at the slow=200 corner (the rarely-exiting bands keep more leveraged upside) — which is exactly why a return-max search overfits hardest here. Note the plateau bands give up raw return for the lower drawdown and steadier ride that the gate is supposed to buy.
| (fast, slow) | Sharpe | Total return | CAGR | Max DD | Ann vol | TiM | Flips |
|---|---|---|---|---|---|---|---|
| (22, 200)best | 1.175 | +1305.1% | +59.3% | -42.2% | 52.0% | 86% | 26 |
| (20, 200) | 1.161 | +1279.8% | +58.8% | -52.8% | 52.6% | 86% | 30 |
| (22, 44) | 1.102 | +807.3% | +47.5% | -39.8% | 45.3% | 72% | 76 |
| (22, 150) | 1.096 | +982.0% | +52.2% | -43.5% | 50.9% | 83% | 36 |
| (20, 44) | 1.091 | +809.7% | +47.6% | -50.9% | 46.2% | 73% | 80 |
| (22, 40) | 1.077 | +732.3% | +45.3% | -45.1% | 44.7% | 71% | 84 |
| (22, 65) | 1.076 | +778.9% | +46.7% | -41.1% | 46.4% | 74% | 62 |
| (20, 150) | 1.073 | +933.7% | +50.9% | -49.1% | 51.6% | 83% | 40 |
| (22, 55) | 1.049 | +715.6% | +44.8% | -45.3% | 46.2% | 73% | 66 |
| (30, 200) | 1.043 | +851.8% | +48.8% | -58.7% | 51.7% | 85% | 26 |
| TQQQ-gated (22, 44) prior pick | 1.102 | +807.3% | +47.5% | -39.8% | 45.3% | 72% | 76 |
| TQQQ-gated (22, 55) original | 1.049 | +715.6% | +44.8% | -45.3% | 46.2% | 73% | 66 |
| TQQQ buy & hold | 0.780 | +420.9% | +33.8% | -81.7% | 66.4% | 100% | 0 |
| QQQ buy & hold | 0.916 | +171.6% | +19.3% | -35.1% | 22.3% | 100% | 0 |
| SPY buy & hold | 1.031 | +142.5% | +16.9% | -24.5% | 16.8% | 100% | 0 |
The Sharpe leaderboard is dominated by the slow=200 corner (top 2) then the 20–22 × 40–65 plateau. Reference cells: 22/44 ranks #3, 22/55 ranks #9. Baselines (amber) and buy-and-hold shown for context.
| (fast, slow) | Sharpe | Total return | CAGR | Max DD | Ann vol | TiM | Flips |
|---|---|---|---|---|---|---|---|
| (22, 200)best | 1.175 | +1305.1% | +59.3% | -42.2% | 52.0% | 86% | 26 |
| (20, 200) | 1.161 | +1279.8% | +58.8% | -52.8% | 52.6% | 86% | 30 |
| (22, 150) | 1.096 | +982.0% | +52.2% | -43.5% | 50.9% | 83% | 36 |
| (20, 150) | 1.073 | +933.7% | +50.9% | -49.1% | 51.6% | 83% | 40 |
| (30, 200) | 1.043 | +851.8% | +48.8% | -58.7% | 51.7% | 85% | 26 |
| (20, 44) | 1.091 | +809.7% | +47.6% | -50.9% | 46.2% | 73% | 80 |
| (22, 44) | 1.102 | +807.3% | +47.5% | -39.8% | 45.3% | 72% | 76 |
| (22, 65) | 1.076 | +778.9% | +46.7% | -41.1% | 46.4% | 74% | 62 |
| (22, 40) | 1.077 | +732.3% | +45.3% | -45.1% | 44.7% | 71% | 84 |
| (30, 150) | 1.007 | +732.1% | +45.3% | -55.5% | 50.6% | 82% | 32 |
The return leaderboard is even more concentrated at slow=150/200 — high time-in-market keeps leveraged upside. But several of these carry deeper drawdowns (e.g. 20/200 at -52.8%, 30/200 at -58.7%) than the plateau bands, the tell that they are riding leverage, not timing it.
The best (22/200) line (blue) tracks TQQQ B&H (red) almost everywhere — it barely exits — then diverges hard in 2022 when its slow-200 leg finally trips and it sits in cash through the leverage-decay blender. That single divergence is the entire edge of the corner spike; everywhere else it is buy-and-hold. The 22/55 gate (green) flattens through 2022 the same way but exits/re-enters more, sacrificing some peak for a steadier path.
| Sharpe within … | # cells | slow legs spanned | fast legs spanned |
|---|---|---|---|
| 0.03 of best | 2 | {200} | {20, 22} |
| 0.05 of best | 2 | {200} | {20, 22} |
| 0.08 of best | 4 | {44, 150, 200} | {20, 22} |
| 0.10 of best | 7 | {40, 44, 65, 150, 200} | {20, 22} |
The global best is a spike, not a plateau. Within 0.05 Sharpe of (22, 200) there are only 2 cells, both pinned at slow=200 — an isolated corner. You have to widen the tolerance to 0.10 before the broad 20–22 × 40–65 region joins in. The lesson: the slow-200 corner is fragile (one crash, one exit), but the 40–65 slow-leg plateau is genuinely contiguous and robust — neighboring cells there all score within a hair of each other, so a small mis-pick costs little. That plateau — where 22/44 and 22/55 live — is the part of this surface you can actually trust.