MOO→11:00 Engine v1 — validated layers

REAL backtests на existing 3y cache · 10 кандидатов проверено · 4 параллельных аудитора · Apr 27, 2026

Engine v1 — финальная спецификация (validated)

Entry / Exit (UNCHANGED)

# MOO 09:30 ET, SHORT direction, hard exit 11:00 ET
TP +7% · SL −1% · R:R 7:1 · breakeven WR 12.5%

Filters (base #1 + 3 ADDED layers)

price_open ≥ $0 AND price_open < $10 ← C5 EXPANDED from <$5
gap_pct ≥ +10%
vol_today / ADV20.shift(1) ≥ 3.0
pm_dollar_vol ≥ $5,000,000 ← C6 NEW (NOT $1M)
is_etf == False ← C8 NEW (exclude ALL ETFs)
vol_mult ∉ [5.0, 10.0) ← C7 BINARY skip dead-zone

Filters DROPPED (тестировались, не работают)

DROP: macro calendar skip (FOMC/CPI/PPI/NFP) — Sh −0.08
DROP: Friday DOW skip — Sh −0.44 (catastrophic)
DROP: SPY 5d ≥ +3% gate — Sh −0.12
DROP: TP-only no-SL overlay — current 1% SL правильный (Sh 5.35 vs 0.92)
DROP: LONG bounce hedge (gap−10..−5×pmd−5..−2) — 2023 OOS PF 0.76
DROP: vol-tier sizing ladder (3-5× / 5-10× / ≥10×) — non-monotonic, 5-10× dead
# Engine v1 pseudo-code def signal(ticker, date, pm_data): if not (pm_data.gap_pct >= 10): return None if not (pm_data.price_open < 10): return None # C5 layer if not (pm_data.vol / pm_data.adv20 >= 3): return None if not (pm_data.pm_dollar_vol >= 5_000_000): return None # C6 layer if pm_data.is_etf: return None # C8 layer vol_mult = pm_data.vol / pm_data.adv20 if 5 <= vol_mult < 10: return None # C7 binary skip return Signal(direction='SHORT', tp=0.07, sl=-0.01, hard_exit='11:00')

Backtest results — все 10 кандидатов

CandMechanismVerdictSh delta$/yr deltaReason
C1Macro calendar skipDROP−0.08−$219Macro days carry positive shorts; gate discards them
C2Friday exclusionDROP−0.44−$2,279Catastrophic — Fridays carry disproportionate alpha
C3SPY 5d ≥+3% skipDROP−0.12−$962Bull-rally days still produce profitable shorts
C4TP-only no-SL ablationDROP−4.43−$4,25276% trades hit 1% SL; removing unleashes −24.9% tail
C5px<$10 expansionADD+0.14+$5,721+45% N, Sh stable, capacity boost
C6pm_dvol ≥$5M floorADD+0.21−$5,417Slippage protection > nominal $/yr loss
C7Vol tiering ladderPARTIALNon-monotonic; replace with binary skip 5-10× dead-zone
C8Exclude all ETFsADD+0.09−$574Mechanical-rebalance noise removed, hygiene
C9VIX absolute level bandSKIPVIX 4y backfill needed (VIXY proxy rejected v5)
C10LONG bounce hedgeDROP−1.86 OOS2023 PF 0.76In-sample artifact; OOS LONG leg loses money

Charts

Top findings (что научились)

1. Memory v3 hedge stack (Sh 8.01) — IN-SAMPLE artifact. EXACTLY reproduced на 2025-09→2026-04 window, но 2023 pre-period: LONG leg PF=0.76 (теряет money). LOO ablation: combined Sh 8.01 vs SHORT-alone 7.86 = только +0.14 uplift (+1.8%, НЕ +66% как заявлено в memory). Memory claim был discovery-window selection. Engine v1 = SHORT-only. ✅ Lesson: in-sample claims без isolated OOS = unreliable.
2. TP-only no-SL finding из MOO-955 family НЕ переносится на pump-fade SHORT. Memory `research_moo955_sltp_overlay_apr27`: TP-only Sh 3.06→4.57 (+50%). Реальный backtest на #1: TP-only Sh **0.92** vs current Sh **5.35** (−83%). MaxDD 5× глубже. 76% трейдов касаются 1% SL within first bar (mean bar-0 high +2.76%). Volatility structural, not noise. Tight SL — это и есть edge.
3. Regime gates (FOMC/Friday/SPY-rally) — все hurt. Counter-intuitive но Friday skip −0.44 catastrophic. Implication: pump-fade alpha сильнее в "normal" дни (макро/Friday/rally), не слабее. Skipping = throw away winners. ❌ Не применять regime gates без honest ablation testing.
4. Universe expansion px<$10 — clear win. +45% N, Sh stable (3.27→3.41), $/yr +36%. Edge mechanics same в $5–$10 диапазоне. Cap там — $10–20 показывает Sh decay (1.09).
5. pm_dvol ≥$5M — slippage protection. $1M floor too lenient (drops 96 trades, Sh delta 0). $5M floor: $1M-$5M bin Sh 1.37 → drop, ≥$5M bin Sh 4.24. Cost −14% $/yr но реальный realized уйдёт меньше после 30bps OPEN slippage в low-pm_dvol bin.
6. Vol multiple non-monotonic. 3–5× Sh 1.31, 5–10× Sh **0.72** (worst), ≥10× Sh 3.20. Linear sizing ladder ❌. Лучше: binary skip 5–10× dead-zone, размер 1.0× для всех остальных.

Honest expected performance

Phase 1 ($15K BP) — Engine v1 standalone

  • N trades / yr: ~300 (vs ~150 baseline #1)
  • Daily Sh (honest): 4.0 ± 0.5
  • $/yr: $25–30K (vs $10–12K base #1)
  • MaxDD est: −$3–4K
  • WR: 21–24% (asymmetric)
  • $/yr per Sh: ~$7K (efficiency)

Caveats / надо ещё validate

  • Cache 2024-04→2026-04 (1.97y), 2023 isolated отдельно
  • Combined backtest (4 layers вместе) пока marginal — нужен joint run
  • Permutation test (within-ticker shuffle) — yet to run на C5/C6/C7/C8
  • Slippage stress 30/50bps — model assumed 5bps RT
  • P0 blocker: MOO routing fix (`session=OPG`)

Action plan — путь к live deploy

StepTaskEffortPriority
1P0: TradingApp MOO routing (`session=OPG`)1 day manualP0 BLOCKER
2Joint backtest #1 + C5+C6+C7+C8 combined (validate marginal × 4)~2hP1
3Within-ticker permutation test на surviving 4 layers~3hP1
4Slippage stress 30/50bps на final spec~1hP1
5Update broker/strategies/asym_pump_module.py с C5/C6/C7/C8 filters~2hP2
6Smoke test 4/4 + paper deploy 5 days~1dP2
7Live deploy Engine v1 на $15K BPafter P0+P1
Total ~8h research + 1d manual routing. Engine v1 = #1 + 4 layers, expected $25–30K/yr Phase 1.

Что осталось в backlog

C9 VIX absolute level band

SKIP (data unavailable) · Mechanism: regime gate · Priority P2

Skip когда VIX<12 (complacency squeeze) или VIX>35 (panic untested). Требует full 4y ^VIX historical (не VIXY decay-ETF proxy которая была rejected в v5 audit). yfinance backfill ~30min.

Joint #1 + (C5+C6+C7+C8) combined backtest

RESEARCH MORE · Each layer validated marginal — joint synergy unknown

Все 4 layer'а validated independently on different filter cuts. Combined может give Sh 4.0–4.5 (additive) ИЛИ может быть meaningful overlap (e.g., $5M pm_dvol filter уже исключает ETFs, so C8 redundant). Точные numbers только после 1-shot joint run.

Capacity / market impact analysis

RESEARCH MORE · Engine v1 ramp $15K → $50K → $250K

Memory v3 capacity plateau $250-500K (выше capital dilution 388%→139%). С px<$10 expansion universe ×2, plateau может сместиться выше. Нужен market impact model на pm_dvol bin.

Sources / data files used