Ranked by %B ascending — which names are on sale — not by momentum. Measured on the AI complex over the 2023+ wave, forward 60 days: buying dips beat simply holding by +3.47 pts, while buying strength lost 2.65 pts and top-quartile 12-month momentum lost 3.01 pts. Owning the complex at all was worth +17.95%, which is roughly five times what the timing overlay adds. These are daily entries on the names as they stand today (in-sample, overlapping); the quarterly portfolio test further down did not confirm the dip rule.
Descriptive only. Nothing on this page was measured by regime, so it does not change a verdict. Broad risk-off = QQQ below its 200-day with VIX ≥ 25 or up 20% in 5 days; sector washout = SOXX below its 200-day or under 40% of the AI list above theirs.
Descriptive only; no verdict reads it. A theme leads for a few years and then hands over (the COVID winners kept dipping through late 2021 H2 and did not recover; a one-off analysis, not a committed result). "Breaking" = the theme's equal-weight basket is under its own 200-day while at least 40% of its names sit in the dip band at once; that threshold is a display choice, not a tested rule.
| Theme | Names | Basket vs 200d | Basket 20d | Names above 200d | In dip band | State |
|---|---|---|---|---|---|---|
| AI compute | 9 | +13.2% | -12.6% | 67% | 9/9 | leading |
| AI memory | 4 | +8.4% | -20.7% | 50% | 4/4 | mixed |
| Chip equipment | 8 | -6.5% | -12.7% | 25% | 8/8 | breaking |
| AI networking | 3 | +1.3% | -10.7% | 67% | 2/3 | leading |
| AI power | 5 | -7.6% | -7.9% | 0% | 4/5 | breaking |
| AI platforms | 6 | +11.7% | +0.1% | 83% | 2/6 | leading |
| Humanoid supply chain | 16 (15 in basket) | -2.8% | -2.6% | 40% | 6/16 | weak |
| Magnets & materials | 4 | -22.5% | -15.0% | 25% | 4/4 | breaking |
%B says where price sits inside its normal trading channel. Below 0.20 means it has pulled back to the bottom of that channel — on sale. Above 1.00 is extended: too stretched to buy, and it returned 2.65 pts below simply holding.
Two studies disagree, so this is not a filter the verdict column applies. 46 large caps, 15y, fwd 60d: dips above the 200-day hit 71% vs 68% below — better odds, but below-200d averaged slightly more (+7.16% vs +6.96%). The AI complex, 2023+: dips below the 200-day were the best bucket of all, +7.49 pts vs the null. The Meta trade in the box below was 11.8% below its 200-day. Above = steadier; below = bigger and lumpier. Pick per your tolerance.
Both halves are gates, and 2y pos is often the binding one. p10 is the 10th-percentile outcome across past 2-year holds — your unlucky-but-realistic case; a −50% p10 means one in ten 2-year holds halved. These are the exact thresholds the verdict column applies, not a rule of thumb.
| %B < 0.20 dip rule | 2026-08-21 @ 549.47 | +35.4% | 18 days before the launch, and META was 11.8% below its 200-day |
| move + volume spike | 2026-09-09 @ 653.17 | +13.9% | the day after the launch |
| follow the analyst | 2026-09-21 @ 741.25 | +0.4% | the move was over |
The 3x pair moves with SOXX, so read SOXX's %B and size with SOXL/SOXS's ATR. SOXS is inverse: its %B means the opposite.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | 60d dips | size | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SOXX semis ETF semis_etf |
501.93 | +1.73% | 0.01 | -9.9% | +7.2% | 61% | 3.6% | 4.0B | 95% 4w | +7.3% | 72% of 29 med +5% · CVaR -18% |
$981 14% | — | BUY ZONE |
| SOXL semis ETF semis_etfleveraged |
98.65 | +5.32% | 0.02 | -29.2% | -19.3% | 25% | 13.0% | 7.9B | 76% 4w | -52.2% | 62% of 29 med +5% · CVaR -57% |
— | — | leveraged · not rated |
| SOXS semis ETF semis_etfleveragedinverse |
46.63 | -5.28% | 1.00 | +31.5% | -72.8% | 2% | 8.5% | 2.5B | 0% 4w | -98.7% | 17% of 36 med -25% · CVaR -65% |
— | — | leveraged · not rated |
The ten holdings behind SOXX, their fund weight, and how much of the day each one contributed (fund weight × its move, so together they explain about 61% of the fund).
| Ticker | Fund wt | 1d | Contrib | Trend | vs 20d |
|---|---|---|---|---|---|
| NVDA | 9.43% | +1.38% | +0.130% | BELOW 20d | |
| MU | 8.91% | +2.97% | +0.264% | BELOW 20d | |
| AMD | 8.23% | +1.76% | +0.145% | BELOW 20d | |
| AVGO | 7.48% | +1.78% | +0.133% | BELOW 20d | |
| INTC | 5.09% | +2.43% | +0.123% | BELOW 20d | |
| MRVL | 4.66% | +4.06% | +0.189% | BELOW 20d | |
| TSM | 4.65% | +1.84% | +0.086% | BELOW 20d | |
| AMAT | 4.59% | +0.93% | +0.043% | BELOW 20d | |
| LRCX earnings in 1 session | 4.27% | +3.13% | +0.134% | BELOW 20d | |
| KLAC | 4.12% | +0.40% | +0.016% | BELOW 20d |
Breadth is context, not a trigger. Reproduce every number here with scripts/soxx_breadth_study.py (8 years of SOXX, entry at the next open). Broad strength has no edge: top-10 weight above its 20-day > 80% was +0.04 pts vs the null at 20 days (n=727; +0.00 at 5d, −0.03 at 1d). Weakness in the holdings (breadth < 20%, or their composite %B < 0.20) pointed the same way as SOXX's own dip signal but smaller (about +0.7 to +0.9 pts vs +1.3) and rests on a few hundred overlapping observations, so treat it as noise-level: it adds nothing you cannot read off SOXX's own %B. Use this table to see why SOXX moved, broad or one name, and take the direction call from SOXX's %B. SOXL and SOXS are daily-reset products and are not rated on this page.
META, GOOGL, MSFT, AAPL, AMZN, NFLX — tracked every day whether or not they signal.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | 60d dips | size | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| METAearnings in 1 session platform ndx100ai_platformmegacap |
705.44 | -0.55% | 0.08 | -3.9% | +11.7% | 71% | 3.5% | 11.1B | 79% 4w | -28.1% | 57% of 30 med +3% · CVaR -25% |
$1,004 14% | — | DIP · FAILS HOLD |
| GOOGL platform ndx100ai_platformmegacap |
344.18 | +1.05% | 0.41 | -0.5% | +1.0% | 62% | 2.5% | 8.1B | 90% 4w | -0.1% | 71% of 31 med +5% · CVaR -9% |
$1,385 20% | — | neutral |
| MSFT platform ndx100ai_platformmegacap |
533.52 | +0.84% | 0.71 | +2.2% | +22.8% | 95% | 2.2% | 11.0B | 96% 4w | +10.0% | 70% of 27 med +7% · CVaR -13% |
$1,400 20% cap | — | neutral |
| AAPL megacap ndx100megacap |
342.94 | -0.15% | 0.81 | +1.6% | +17.2% | 99% | 1.9% | 12.6B | 99% 4w | +16.2% | 69% of 26 med +6% · CVaR -17% |
$1,400 20% cap | — | neutral |
| AMZN megacap ndx100megacap |
262.45 | +4.98% | 0.95 | +3.6% | +8.1% | 75% | 2.5% | 8.7B | 79% 4w | -25.5% | 72% of 29 med +6% · CVaR -22% |
$1,400 20% cap | — | neutral |
| NFLXearnings today megacap ndx100megacap |
69.85 | -0.96% | 0.45 | -0.4% | -15.6% | 5% | 2.7% | 2.4B | 76% 4w | -39.2% | 74% of 31 med +7% · CVaR -37% |
$1,311 19% | — | neutral |
Any symbol, priced now. The browser cannot call Yahoo directly (no CORS), so this
goes through this site's own /api/quote and then applies the same formulas as the
nightly table, ported from the Python — so a live check and the tables cannot disagree.
Cached 10 minutes.
%B below 0.2, liquid, and passes the 1–3 year hold gate (≥80% of rolling 2-year windows positive with a 10th percentile above -10%).
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | 60d dips | size | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ETN power ai_power |
391.50 | +0.06% | -0.07 | -8.3% | -0.4% | 53% | 3.7% | 780M | 99% 4w | +14.0% | 75% of 28 med +8% · CVaR -14% |
$937 13% | 0 | BUY ZONE |
| AMD compute ndx100ai_computesoxx_top10 |
538.05 | +1.76% | -0.03 | -11.3% | +35.9% | 76% | 5.0% | 11.0B | 89% 4w | -2.7% | 55% of 31 med +4% · CVaR -28% |
$693 10% | 30 | BUY ZONE |
| PANW ndx100 |
346.95 | +1.45% | -0.03 | -11.0% | +32.7% | 74% | 5.4% | 2.0B | 97% 4w | +16.7% | 78% of 32 med +11% · CVaR -17% |
$651 9% | 2 | BUY ZONE |
| AXON ndx100 |
383.09 | -1.84% | -0.02 | -8.7% | -21.5% | 9% | 5.3% | 429M | 98% 4w | +20.1% | 56% of 32 med +20% · CVaR -28% |
$665 9% | 0 | BUY ZONE |
| KLAC equipment ndx100ai_equipmentsoxx_top10 |
166.40 | +0.40% | -0.02 | -12.2% | -8.0% | 30% | 4.9% | 1.8B | 100% 4w | +31.3% | 80% of 30 med +8% · CVaR -13% |
$720 10% | 2 | BUY ZONE |
| SOXX semis ETF semis_etf |
501.93 | +1.73% | 0.01 | -9.9% | +7.2% | 61% | 3.6% | 4.0B | 95% 4w | +7.3% | 72% of 29 med +5% · CVaR -18% |
$981 14% | — | BUY ZONE |
| AMAT equipment ndx100ai_equipmentsoxx_top10 |
413.11 | +0.93% | 0.02 | -15.3% | -5.9% | 39% | 5.0% | 3.1B | 92% 4w | +1.6% | 68% of 31 med +14% · CVaR -17% |
$697 10% | — | BUY ZONE |
| SMH index benchmark |
548.46 | +1.61% | 0.02 | -8.4% | +7.1% | 65% | 3.0% | 3.7B | 97% 4w | +11.3% | 71% of 28 med +6% · CVaR -15% |
$1,149 16% | — | BUY ZONE |
| QQQ index benchmark |
718.36 | +1.21% | 0.03 | -3.1% | +6.6% | 80% | 1.5% | 23.7B | 91% 4w | +0.6% | 74% of 27 med +7% · CVaR -11% |
$1,400 20% cap | — | BUY ZONE |
| LRCXearnings in 1 session equipment ndx100ai_equipmentsoxx_top10 |
272.20 | +3.13% | 0.06 | -13.0% | -3.5% | 45% | 5.3% | 2.6B | 93% 4w | +7.4% | 64% of 28 med +6% · CVaR -18% |
$657 9% | — | BUY ZONE |
| JBL humanoid humanoid_disclosed |
282.06 | +1.37% | 0.06 | -6.9% | -7.7% | 46% | 5.0% | 339M | 95% 4w | +8.4% | 61% of 31 med +6% · CVaR -14% |
$706 10% | — | BUY ZONE |
| APH humanoid humanoid_association |
80.28 | +1.17% | 0.07 | -5.0% | +7.2% | 71% | 3.4% | 931M | 98% 4w | +14.3% | 72% of 29 med +7% · CVaR -16% |
$1,027 15% | — | BUY ZONE |
| AVGO compute ndx100ai_computesoxx_top10 |
334.59 | +1.78% | 0.07 | -5.5% | -8.8% | 22% | 3.5% | 7.8B | 100% 4w | +27.3% | 69% of 29 med +8% · CVaR -15% |
$1,013 14% | — | BUY ZONE |
| MRVL compute ndx100ai_computesoxx_top10 |
237.09 | +4.06% | 0.08 | -9.5% | +34.3% | 67% | 6.8% | 4.7B | 86% 4w | -7.7% | 59% of 32 med +5% · CVaR -31% |
$516 7% | — | BUY ZONE |
| PWR power ai_power |
618.41 | -2.13% | 0.09 | -6.9% | -0.1% | 55% | 4.3% | 604M | 93% 4w | +4.6% | 73% of 30 med +7% · CVaR -12% |
$812 12% | — | BUY ZONE |
| ASML equipment ndx100ai_equipment |
1,647.12 | +0.34% | 0.09 | -6.3% | +4.4% | 67% | 3.3% | 2.3B | 93% 4w | +5.5% | 78% of 32 med +10% · CVaR -18% |
$1,076 15% | — | BUY ZONE |
| ORCL platform ai_platform |
129.59 | +1.06% | 0.10 | -6.2% | -18.4% | 9% | 5.3% | 3.8B | 97% 4w | +13.7% | 60% of 30 med +3% · CVaR -23% |
$660 9% | — | BUY ZONE |
| NVDA compute ndx100ai_computesoxx_top10 |
217.09 | +1.38% | 0.10 | -4.6% | +7.0% | 70% | 2.7% | 24.9B | 95% 4w | +9.5% | 79% of 29 med +11% · CVaR -26% |
$1,281 18% | — | BUY ZONE |
| MPWR ndx100 |
1,253.66 | +3.53% | 0.16 | -7.2% | -3.7% | 48% | 4.6% | 886M | 97% 4w | +22.7% | 74% of 31 med +9% · CVaR -24% |
$762 11% | — | BUY ZONE |
A move of 5%+ on 2×+ the 20-day average volume. This is a reaction, not a setup — something happened, and the rule does not know what or which direction it resolves.
Nothing in this group today.
Dips that fail the hold gate, plus names with no measured edge either way.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | 60d dips | size | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| VRT power ai_power |
206.08 | -0.16% | -0.07 | -14.1% | -23.2% | 25% | 5.5% | 1.1B | 80% 4w | -25.9% | 77% of 26 med +17% · CVaR -28% |
$635 9% | 13 | DIP · FAILS HOLD |
| MSTR ndx100 |
136.02 | -0.59% | -0.07 | -12.1% | +0.4% | 24% | 6.9% | 2.7B | 65% 4w | -40.8% | 50% of 32 med +3% · CVaR -42% |
$506 7% | 30 | DIP · FAILS HOLD |
| SMCI compute ai_compute |
32.10 | +1.49% | -0.06 | -20.5% | -1.2% | 34% | 7.7% | 1.3B | 77% 4w | -40.1% | 55% of 31 med +6% · CVaR -34% |
$454 6% | 30 | DIP · FAILS HOLD |
| COHR equipment ai_equipment |
232.02 | -0.38% | -0.01 | -21.3% | -21.3% | 37% | 9.4% | 1.9B | 68% 4w | -43.5% | 52% of 29 med +4% · CVaR -26% |
$371 5% | 5 | DIP · FAILS HOLD |
| ALNT humanoid humanoid_association |
93.68 | +1.12% | -0.00 | -14.2% | +15.6% | 65% | 5.8% | 22M | 70% 4w | -31.0% | 58% of 31 med +2% · CVaR -30% |
$608 9% | 0 | DIP · FAILS HOLD |
| BOTZ humanoid ETF humanoid_etf |
33.35 | +1.00% | 0.01 | -4.9% | -9.3% | 14% | 1.9% | 22M | 69% 4w | -28.2% | 55% of 29 med +4% · CVaR -21% |
$1,400 20% cap | 0 | DIP · FAILS HOLD |
| ANET network ai_network |
182.95 | +3.37% | 0.01 | -10.0% | +12.3% | 66% | 4.6% | 1.0B | 86% 4w | -12.2% | 77% of 31 med +18% · CVaR -17% |
$761 11% | — | DIP · FAILS HOLD |
| ARKQ humanoid ETF humanoid_etf |
113.51 | +1.13% | 0.01 | -6.7% | -9.1% | 29% | 2.5% | 12M | 76% 4w | -33.3% | 59% of 29 med +3% · CVaR -19% |
$1,400 20% cap | — | DIP · FAILS HOLD |
| NOVT humanoid humanoid_disclosed |
131.52 | +2.12% | 0.02 | -7.4% | -7.0% | 46% | 4.9% | 51M | 75% 4w | -21.8% | 66% of 32 med +10% · CVaR -22% |
$721 10% | — | DIP · FAILS HOLD |
| TERearnings in 5 sessions equipment ndx100ai_equipment |
335.53 | +3.24% | 0.05 | -14.6% | -2.8% | 57% | 6.3% | 920M | 75% 4w | -19.2% | 61% of 28 med +9% · CVaR -30% |
$553 8% | — | DIP · FAILS HOLD |
| MU memory ndx100ai_memorysoxx_top10 |
904.90 | +2.97% | 0.06 | -11.8% | +25.6% | 70% | 5.4% | 26.3B | 80% 4w | -13.6% | 59% of 29 med +6% · CVaR -19% |
$645 9% | — | DIP · FAILS HOLD |
| INTC ndx100soxx_top10 |
92.03 | +2.43% | 0.07 | -17.1% | +8.5% | 54% | 6.3% | 10.0B | 49% 4w | -37.8% | 56% of 32 med +2% · CVaR -24% |
$553 8% | — | DIP · FAILS HOLD |
| STXearnings in 5 sessions memory ndx100ai_memory |
660.81 | +3.41% | 0.08 | -19.8% | -2.2% | 51% | 7.7% | 3.4B | 80% 4w | -13.2% | 70% of 30 med +12% · CVaR -21% |
$457 7% | — | DIP · FAILS HOLD |
| METAearnings in 1 session platform ndx100ai_platformmegacap |
705.44 | -0.55% | 0.08 | -3.9% | +11.7% | 71% | 3.5% | 11.1B | 79% 4w | -28.1% | 57% of 30 med +3% · CVaR -25% |
$1,004 14% | — | DIP · FAILS HOLD |
| TSM compute ai_computesoxx_top10 |
420.22 | +1.84% | 0.09 | -6.9% | +6.7% | 69% | 3.0% | 4.4B | 83% 4w | -16.0% | 75% of 32 med +12% · CVaR -18% |
$1,182 17% | — | DIP · FAILS HOLD |
| LITE network ndx100ai_network |
834.51 | +1.26% | 0.09 | -15.0% | +7.0% | 69% | 8.3% | 3.9B | 66% 4w | -46.0% | 62% of 32 med +7% · CVaR -28% |
$421 6% | — | DIP · FAILS HOLD |
| ALB materials humanoid_materials |
94.64 | -0.88% | 0.09 | -8.9% | -37.8% | 6% | 4.1% | 262M | 48% 4w | -62.4% | 56% of 32 med +2% · CVaR -27% |
$856 12% | — | DIP · FAILS HOLD |
| WDCearnings in 2 sessions memory ndx100ai_memory |
352.21 | +6.09% | 0.13 | -15.2% | -14.4% | 37% | 7.2% | 3.2B | 53% 4w | -43.6% | 47% of 30 med -2% · CVaR -28% |
$486 7% | — | DIP · FAILS HOLD |
| ENTG equipment ai_equipment |
144.52 | +4.17% | 0.15 | -7.3% | +6.3% | 66% | 5.3% | 305M | 73% 4w | -20.8% | 62% of 32 med +9% · CVaR -20% |
$656 9% | — | DIP · FAILS HOLD |
| FCXearnings in 5 sessions materials humanoid_materials |
69.75 | +0.30% | 0.20 | -2.4% | +8.2% | 76% | 3.7% | 830M | 71% 4w | -27.3% | 55% of 31 med +5% · CVaR -32% |
$937 13% | — | DIP · FAILS HOLD |
| ROK humanoid humanoid_association |
424.47 | -0.41% | 0.22 | -2.4% | +0.1% | 54% | 2.5% | 317M | 85% 4w | -3.3% | 65% of 31 med +8% · CVaR -22% |
$1,392 20% | — | neutral |
| QCOM ndx100 |
173.53 | +0.83% | 0.24 | -5.0% | +3.2% | 40% | 4.1% | 1.8B | 75% 4w | -13.6% | 52% of 29 med +0% · CVaR -22% |
$851 12% | — | neutral |
| VTI index benchmark |
375.54 | +0.39% | 0.24 | -0.7% | +5.5% | 89% | 0.9% | 1.1B | 93% 4w | +1.4% | 79% of 29 med +5% · CVaR -12% |
$1,400 20% cap | — | neutral |
| CIEN network ai_network |
344.20 | +3.45% | 0.24 | -9.6% | -14.1% | 39% | 7.8% | 901M | 76% 4w | -15.6% | 60% of 30 med +5% · CVaR -20% |
$448 6% | — | neutral |
| TEL humanoid humanoid_association |
212.33 | -0.15% | 0.25 | -1.4% | -0.0% | 35% | 2.5% | 374M | 83% 4w | -7.9% | 66% of 32 med +5% · CVaR -20% |
$1,392 20% | — | neutral |
%B above 1.00 — the stall zone, −2.65 pts vs the null at 60 days. Not a short signal; a not-today signal.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | 60d dips | size | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FANG ndx100 |
203.12 | -0.41% | 1.00 | +6.9% | +9.4% | 89% | 2.5% | 398M | 68% 4w | -49.1% | 53% of 30 med +3% · CVaR -34% |
$1,374 20% | — | extended |
| LIN ndx100 |
503.44 | +1.01% | 1.01 | +4.5% | +3.3% | 74% | 1.5% | 977M | 100% 4w | +17.3% | 72% of 32 med +6% · CVaR -8% |
$1,400 20% cap | — | extended |
| WDAY ndx100 |
195.20 | +2.30% | 1.01 | +3.2% | +25.4% | 62% | 3.8% | 561M | 67% 4w | -28.7% | 73% of 33 med +8% · CVaR -34% |
$933 13% | — | extended |
| ORLY ndx100 |
89.07 | -0.22% | 1.03 | +3.3% | -1.7% | 33% | 2.0% | 433M | 100% 4w | +27.7% | 70% of 30 med +8% · CVaR -27% |
$1,400 20% cap | — | extended |
| CCEP ndx100 |
111.87 | -0.47% | 1.05 | +7.8% | +12.9% | 98% | 1.8% | 170M | 94% 4w | +5.4% | 57% of 30 med +2% · CVaR -13% |
$1,400 20% cap | — | extended |
| IDXX ndx100 |
555.80 | -0.81% | 1.05 | +5.7% | -4.0% | 20% | 2.4% | 281M | 77% 4w | -13.7% | 66% of 32 med +7% · CVaR -22% |
$1,400 20% cap | — | extended |
| MAR ndx100 |
390.70 | +0.68% | 1.06 | +7.5% | +11.1% | 92% | 1.9% | 509M | 90% 4w | -0.2% | 72% of 29 med +4% · CVaR -24% |
$1,400 20% cap | — | extended |
| PEP ndx100 |
133.57 | +1.58% | 1.10 | +4.4% | -7.1% | 24% | 2.1% | 1.1B | 77% 4w | -11.6% | 61% of 31 med +2% · CVaR -8% |
$1,400 20% cap | — | extended |
| MNST ndx100 |
46.80 | +2.34% | 1.13 | +7.5% | +9.6% | 81% | 2.3% | 429M | 95% 4w | +3.8% | 67% of 33 med +7% · CVaR -13% |
$1,400 20% cap | — | extended |
Buy the dip names at each quarter-end, hold to the next, versus the same number of names drawn at random from the same list (2000 draws), after 0.20% costs. Thresholds were written before each run. Neither variant cleared them, so nothing here changes the verdicts above. The universe is today's AI leaders, which flatters dip entries; the mean is carried by one quarter (2026-03-31) in v1.
| Test | signal qtrs | mean net excess | qtrs positive | ex best qtr | p vs random | result |
|---|---|---|---|---|---|---|
| v1 · dip (%B < 0.20) | 23 | +4.2 pts | 52% | +1.0 pts | 0.071 | not promoted (failed: P1, P4) |
| v2 · dip + above 200-day | 18 | +3.3 pts | 39% | -4.8 pts | 0.259 | not promoted (failed: P1, P3, P4, P5, P6) |
The 1–3 year durability gate cannot be tested point-in-time on 10 years of data (needs 2016 prior sessions); it is judged forward only. Method and thresholds: docs/experiments/2026-09-24-preregistration-qr-s1-v{1,2}.md.
Daily entries at the next open on the 34 AI stocks over 10 years, edge vs every session for the same names. The rule was fixed before this ran: the grid can only demote the default, never pick a different cell. Result: not demoted — it sits on a plateau. Deeper dips test a little better and every cell is positive, but the default edge is +1.31 pts over 10 years, well below the +3.47 pts measured on 2023+ alone.
| edge vs null, pts | 20d | 40d | 60d | 90d |
|---|---|---|---|---|
| %B < 0.10 | +1.24 | +1.52 | +1.72 | +1.34 |
| %B < 0.15 | +1.13 | +1.35 | +1.52 | +1.09 |
| %B < 0.20 | +0.98 | +1.17 | +1.31 | +0.63 |
| %B < 0.25 | +0.85 | +1.05 | +1.28 | +0.57 |
| %B < 0.30 | +0.77 | +1.00 | +1.31 | +0.59 |
By year (default cell): 2016 +0.5% · 2017 +2.2% · 2018 +2.1% · 2019 +4.1% · 2020 +8.1% · 2021 +3.2% · 2022 +3.8% · 2023 +4.4% · 2024 +3.5% · 2025 -3.3% · 2026 +4.2%
By market: QQQ above 200 +0.72% · QQQ below 200 +2.16%
Same rule on indices since 1999 (no hand-picked names): QQQ +0.58% · SPY +0.85% · XLK +0.39% — positive on at least 2 of 3. Episodes are counted per name, and the names dip together, so the independent count is far lower than the raw one. Source: scripts/quarterly_rotation/robustness.py.