v3 pump-fade — research cockpit
SHORT-only premarket→MOO 09:30. Lookahead-clean, 1-min. OOS 2026-03-31…05-22 (37d, 3 483 arms) · 6m 2025-11-24…05-22 (123d, 6 304 arms). Updated 2026-05-31. v3 = research scorer (not live; live=v2.5)
Bottom line — what to ship
| branch | decision | | evidence (OOS / 6m) |
|---|
| Entry timing | R0 — short immediately at signal | SHIP | Sh 14.85/10.77; waiting hurts every window/grade (p=0) |
| Tail-stop | A-grade only, −8% buy-stop; A+ none | SHIP | A Sh +2.7/+0.9; A+ stop hurts mean p<.001 |
| Entry window | Down-weight 08:15; favour 08:00 & 09:10 | SHIP | 08:15 Sh ~1.2 vs 08:00/09:10 ~13 |
| QQQ hedge | Drop it (or keep light for DD) | SHIP | unhedged +0.6..1.2 Sh; v3 is beta-free |
| Exit | Hold to MOO auction | SHIP | covering early strictly worse, monotonic |
| vwap_ext_rev | Diagnostic only — NOT a rule | WATCH | replacement Sh is non-causal; edge on A/micro |
| Scaling/avg-up | No | AVOID | vext-add dilutes Sharpe 13.3/9.6 < R0 |
| Raise vol-gate | No — keep 50K | AVOID | 100K→300K loses PnL+Sharpe, no edge gain |
| EXTREME flag | Can remove | AVOID | dormant lottery 0.1% trades, 0% PnL, fat tail |
| ext_at_S gate | No | AVOID | entry-time stretch cannot time wait-vs-now |
0 · Equity & daily PnL (OOS · R0 · $500×grade)
1 · Entry timing — short immediately (R0)
| rule | WR% | mean% | Sharpe |
|---|
| R0 immediate (=v3) SHIP | 62.7 | +0.420 | 14.85 |
| R1 first red | 57.0 | +0.246 | 10.74 |
| R2 two red | 55.9 | +0.208 | 8.88 |
| R3 lower-high | 57.5 | +0.262 | 11.67 |
| R4 peak (oracle) ORACLE | 80.4 | +1.425 | 19.75 |
Waiting for a reversal (R1/R2/R3) loses on every window & grade (sign-flip p=0). The prior "reversal wins" was a 5-min-bar lookahead. R4 = oracle ceiling.
2 · Tail-stop — A-grade only, −8%
| blanket stop | WR% | mean% | Sharpe | worst% | MaxDD$ |
|---|
| NONE | 62.6 | +0.417 | 14.85 | -54.1 | -637 |
| -2% | 57.6 | +0.316 | 14.18 | -12.1 | -629 |
| -3% | 60.1 | +0.346 | 14.23 | -12.1 | -651 |
| -5% | 61.6 | +0.375 | 14.85 | -12.1 | -637 |
| -8% | 62.2 | +0.386 | 13.85 | -12.1 | -637 |
| -10% | 62.3 | +0.384 | 13.91 | -12.1 | -637 |
| -20% | 62.6 | +0.390 | 14.83 | -20.4 | -637 |
Blanket stop ≈ Sharpe-neutral (confirms H6). The edge is grade-conditional:
| A grade | Sh OOS | Sh 6m | mean OOS | mean 6m | worst% |
|---|
| no-stop | 8.19 | 5.34 | +0.305 | +0.270 | -54.1 |
| -5% | 11.19 | 6.40 | +0.370 | +0.306 | -12.1 |
| -8% | 10.92 | 6.23 | +0.372 | +0.306 | -12.1 |
| A+ grade | Sh OOS | Sh 6m |
|---|
| no-stop | 13.76 | 10.52 |
| -5% | 13.57 | 10.66 |
| -8% | 12.48 | 10.03 |
A grade −8%: Sharpe +0.9 (6m) … +2.7 (OOS), mean unchanged, worst −54%→−12%. A+: stop hurts mean (p<.001 both) → no stop. Variance/tail fix, not a mean edge. Helper: v3_tailstop.py
3 · vwap_ext_rev — diagnostic, not a rule
| where R0 bleeds | R0 OOS | vext OOS | edge | R0 6m | vext 6m | edge |
|---|
| A grade | -1.84 | +0.66 | +2.49 | -1.26 | +0.81 | +2.07 |
| A+ grade | -0.03 | +0.82 | +0.85 | -0.13 | +0.67 | +0.79 |
| micro<300M | -0.37 | +1.90 | +2.27 | -0.37 | +1.90 | +2.27 |
| small | -1.05 | +1.21 | +2.27 | -1.00 | +1.21 | +2.21 |
| large>10B | +0.10 | +0.83 | +0.73 | -0.03 | +0.66 | +0.69 |
"Replacement" Sharpe (16.8/11.6) is non-causal (needs to know ex-ante which names stretch). Executable forms don't beat R0: pure-wait 9.4/6.3, add/scale 13.3/9.6. Use vwap_ext_rev only to locate the bleed (A-grade + micro/small, robust both periods) → motivates the A-tail-stop. Causal next: stop-then-reenter-on-reject.
4 · Siblings
VOL-GATE — don't raise (keep 50K)
| floor | N OOS | kept% | Sh OOS | N 6m | Sh 6m |
|---|
| 50K | 3483 | 100% | 14.85 | 6304 | 10.77 |
| 75K | 2888 | 83% | 13.82 | 5223 | 10.20 |
| 100K | 2525 | 72% | 13.16 | 4554 | 9.37 |
| 150K | 2039 | 58% | 12.53 | 3653 | 8.35 |
| 200K | 1726 | 50% | 12.17 | 3073 | 7.65 |
| 300K | 1303 | 37% | 9.64 | 2286 | 6.35 |
ENTRY-WINDOW — 08:00 & 09:10 money; 08:15 dead
| window | N OOS | mean OOS | Sh OOS | N 6m | mean 6m | Sh 6m |
|---|
| 08:00 BEST | 807 | +0.790 | 12.95 | 1619 | +0.844 | 11.31 |
| 08:15 DEAD | 509 | +0.087 | 1.18 | 868 | +0.129 | 1.69 |
| 08:30 | 531 | +0.302 | 7.19 | 1094 | +0.169 | 3.54 |
| 08:45 | 594 | +0.343 | 6.64 | 847 | +0.306 | 4.52 |
| 09:00 | 411 | +0.314 | 6.03 | 682 | +0.270 | 4.54 |
| 09:10 BEST | 299 | +0.559 | 13.78 | 565 | +0.400 | 8.41 |
| 09:20 | 332 | +0.327 | 6.47 | 629 | +0.129 | 2.15 |
QQQ HEDGE — drop it (hurts Sharpe)
| Sh OOS | DD OOS | Sh 6m | DD 6m |
|---|
| hedged QQQ 1:1 | 14.85 | -637 | 10.77 | -637 |
| unhedged (raw) | 16.02 | -640 | 11.41 | -921 |
5 · Exit-side — hold to MOO
| exit | Sh OOS | Sh 6m |
|---|
| 09:15 | 5.28 | 5.99 |
| 09:20 | 5.41 | 6.34 |
| 09:25 | 10.29 | 8.51 |
| 09:29 | 12.36 | 9.51 |
| MOO 09:30 BEST | 14.85 | 10.77 |
Covering before the open is strictly worse on both periods (monotonic). The fade fully realizes at the 09:30 auction.
Open / next
① stop-then-reenter on vwap_ext_rev reject (causal way to monetize the diagnostic) · ② combine ship-items (R0 + drop-hedge + skip-08:15 + A-tailstop) into one config & re-measure · ③ port/ship gate when v3 goes live (currently research-only).
Generated by build_v3_dashboard_2026_05_31.py · all numbers lookahead-clean, hedged unless noted