📅 Earnings MOO 09:30 -> 09:55 — Pattern Research
Window hard-locked: Entry MOO 09:30 auction, Exit 09:55 (live MOO-955 constraint).
Universe: earnings reporters where CC закончилось до 09:30:
• BMO reporter → trade same day 09:30-09:55
• AMC reporter (вчерашний after close) → trade next day 09:30-09:55
Data: universe_scored_v4 × earnings_5y_ttn_enriched, 2023-01 to 2026-04, liquid 2M+ ADV, mcap ≥ $300M, |ret|<15%.
Split: train 2023-2024 / test 2025-2026. Pass filter — sign-consistent, mean_tr/te > +0.05%, WR_te ≥ 58%, Sh_te ≥ 0.3, N_te ≥ 30.
Events: 3,166 total merged (train 1,475 / test 1,691).
PART 1 — Feature-based patterns (8 edges)
🟢 KEY FINDING: Moderate DOWN gap (-5%..-2%) in 09:30-09:55 window → LONG bounce. Edge holds в Financials, Q4 earnings, SPY_flat regime, BMO reporters. Mean +0.6-0.9% on Sh 4.5-5.7 / 25-min trade.
Contra intuition (после down-gap stock должен продолжить падение), но на 25-мин окне reversion dominates.
| Scan | direction | Filter | N_tr | WR_tr | mean_tr | Sh_tr | N_te | WR_te | mean_te | Sh_te |
|---|
| gap × sector | LONG | gap-5..-2, Financials | 34 | 50.0 | 0.102 | 0.86 | 38 | 60.5 | 0.848 | 5.65 |
| gap × quarter | LONG | gap2..5, Q1 | 45 | 62.2 | 0.228 | 2.13 | 72 | 65.3 | 0.807 | 5.42 |
| bmo_amc × gap × spy_gap | LONG | BMO, gap-5..-2, SPY_flat | 65 | 56.9 | 0.312 | 2.56 | 102 | 60.8 | 0.739 | 5.11 |
| gap × spy_gap | LONG | gap-5..-2, SPY_flat | 89 | 56.2 | 0.431 | 4.25 | 130 | 60.0 | 0.741 | 5.07 |
| gap × sector | LONG | gap2..5, Technology | 23 | 65.2 | 0.713 | 5.81 | 38 | 60.5 | 0.96 | 5.01 |
| gap × spy5d | LONG | gap-5..-2, SPY5d_flat | 100 | 51.0 | 0.149 | 1.31 | 163 | 58.9 | 0.656 | 4.69 |
| gap × bmo_amc | LONG | gap-5..-2, BMO | 106 | 50.0 | 0.107 | 0.95 | 149 | 59.7 | 0.642 | 4.6 |
| gap × quarter | LONG | gap-5..-2, Q4 | 31 | 51.6 | 0.493 | 4.66 | 40 | 65.0 | 0.471 | 3.75 |
PART 2 — Per-ticker named setups (37 signatures)
⚠️ Small N per ticker (N_tr 5-9, N_te 3-5). Sh_te inflated at low N (MAD tiny when 5/5 same direction). Use как watch-list, not blind auto-trade. Паттерн: ticker consistently moves in same direction в MOO 09:30-09:55 post-earnings.
LONG signatures (23 tickers)
Торгуем LONG на MOO 09:30 если ticker reports AMC (yesterday) or BMO (today).
| ticker | sector | N_tr | WR_tr | mean_tr | Sh_tr | N_te | WR_te | mean_te | Sh_te |
|---|
| SCHW | Financials | 8 | 62.5 | 1.424 | 8.89 | 5 | 100.0 | 1.469 | 62.36 |
| KO | Consumer Staples | 8 | 75.0 | 0.295 | 9.28 | 5 | 80.0 | 0.419 | 29.19 |
| PSTG | Technology | 8 | 75.0 | 1.157 | 9.64 | 5 | 80.0 | 0.908 | 21.33 |
| DVN | Energy | 7 | 71.4 | 0.166 | 10.3 | 5 | 80.0 | 1.193 | 19.69 |
| LRCX | Technology | 8 | 62.5 | 0.059 | 0.59 | 5 | 80.0 | 1.126 | 16.29 |
| TFC | Financials | 8 | 75.0 | 0.64 | 12.99 | 5 | 80.0 | 1.505 | 15.47 |
| HD | Consumer Discretionary | 8 | 75.0 | 0.627 | 9.82 | 5 | 60.0 | 1.094 | 13.94 |
| EBAY | Consumer Discretionary | 8 | 87.5 | 0.809 | 21.57 | 5 | 80.0 | 0.787 | 12.7 |
| MNST | Consumer Staples | 5 | 80.0 | 0.489 | 4.0 | 5 | 60.0 | 0.364 | 12.51 |
| HIMS | Consumer Staples | 8 | 62.5 | 0.836 | 7.49 | 5 | 80.0 | 2.336 | 12.09 |
| MS | Financials | 8 | 62.5 | 0.853 | 6.1 | 5 | 80.0 | 2.007 | 11.97 |
| MCD | Consumer Discretionary | 8 | 62.5 | 0.472 | 4.27 | 5 | 60.0 | 1.047 | 11.55 |
| ADBE | Technology | 6 | 66.7 | 0.112 | 2.12 | 5 | 80.0 | 0.945 | 11.3 |
| NDAQ | Financials | 8 | 75.0 | 0.458 | 2.98 | 5 | 60.0 | 1.047 | 9.62 |
| BTI | Consumer Staples | 9 | 66.7 | 0.053 | 1.0 | 5 | 80.0 | 0.304 | 7.26 |
| ELAN | Health Care | 7 | 71.4 | 4.034 | 31.98 | 5 | 60.0 | 2.236 | 7.07 |
| SU | Energy | 6 | 83.3 | 0.829 | 18.76 | 5 | 80.0 | 0.556 | 6.51 |
| APP | Communications | 6 | 66.7 | 1.038 | 2.65 | 5 | 80.0 | 1.12 | 6.39 |
| CFG | Financials | 8 | 87.5 | 1.821 | 14.93 | 5 | 60.0 | 0.964 | 6.05 |
| CAT | Industrials | 8 | 62.5 | 0.368 | 1.85 | 5 | 80.0 | 1.125 | 5.54 |
| KR | Consumer Staples | 8 | 75.0 | 2.041 | 20.18 | 5 | 60.0 | 1.193 | 4.17 |
| NRG | Utilities | 7 | 71.4 | 2.226 | 13.08 | 5 | 60.0 | 0.816 | 2.98 |
| CCL | Consumer Discretionary | 8 | 75.0 | 0.471 | 3.89 | 5 | 60.0 | 0.252 | 0.67 |
LONG paste list (Sh_te > 3, basket import)
SCHW, KO, PSTG, DVN, LRCX, TFC, HD, EBAY, MNST, HIMS, MS, MCD, ADBE, NDAQ, BTI, ELAN, SU, APP, CFG, CAT, KR
SHORT signatures (14 tickers)
Торгуем SHORT на MOO 09:30 если ticker reports AMC (yesterday) or BMO (today).
| ticker | sector | N_tr | WR_tr | mean_tr | Sh_tr | N_te | WR_te | mean_te | Sh_te |
|---|
| BAX | Health Care | 8 | 62.5 | 0.719 | 3.35 | 5 | 80.0 | 0.699 | 75.09 |
| CAVA | Consumer Discretionary | 5 | 60.0 | 0.184 | 0.78 | 5 | 100.0 | 2.639 | 64.67 |
| IBKR | Financials | 6 | 66.7 | 0.064 | 1.16 | 5 | 80.0 | 0.524 | 14.87 |
| XOM | Energy | 8 | 62.5 | 0.538 | 6.15 | 5 | 60.0 | 1.129 | 9.86 |
| AEG | Financials | 6 | 66.7 | 0.192 | 3.69 | 5 | 80.0 | 0.422 | 7.53 |
| PAA | Energy | 6 | 66.7 | 0.392 | 8.77 | 5 | 60.0 | 1.082 | 6.85 |
| GS | Financials | 8 | 62.5 | 0.651 | 10.87 | 5 | 60.0 | 0.448 | 6.6 |
| CELH | Consumer Staples | 6 | 100.0 | 1.54 | 22.16 | 5 | 80.0 | 0.484 | 6.54 |
| AMGN | Health Care | 8 | 62.5 | 0.7 | 5.64 | 5 | 80.0 | 0.527 | 4.71 |
| HOOD | Financials | 8 | 75.0 | 0.51 | 9.25 | 5 | 60.0 | 0.854 | 3.16 |
| FITB | Financials | 8 | 62.5 | 0.675 | 3.78 | 5 | 60.0 | 0.128 | 2.97 |
| BE | Industrials | 7 | 71.4 | 0.121 | 0.74 | 5 | 80.0 | 0.471 | 2.85 |
| PYPL | Financials | 8 | 62.5 | 0.658 | 5.0 | 5 | 60.0 | 0.211 | 1.27 |
| MOS | Materials | 7 | 71.4 | 0.418 | 3.05 | 5 | 80.0 | 0.078 | 0.83 |
SHORT paste list (Sh_te > 2)
BAX, CAVA, IBKR, XOM, AEG, PAA, GS, CELH, AMGN, HOOD, FITB, BE
PART 3 — How to deploy
- Every trading day premarket: pull list of reporters where (AMC yesterday) OR (BMO today).
- Cross-reference with per-ticker signature table → если ticker в списке → queue MOO order.
- Feature overlay: если ticker НЕ в signature list, check gap buckets:
- Gap ∈ [-5, -2]% + Financials / Q4 / BMO → LONG MOO
- Gap ∈ [+2, +5]% + Q1 / Technology → LONG MOO
- Exit: 09:55 MOC exit (hard-locked, existing MOO-955 plumbing).
- Size: $5K per position. 2-5 reporters/day avg.
PART 4 — Expected P&L (rough)
- Feature baskets (8 edges × 30-160 trades/year × 0.6-0.9% mean): ~$3-8K/year на basket × 8 = $25-65K/year total.
- Per-ticker signatures (37 tickers × ~3 events/year × 0.4-1.5% mean × $5K): ~$10-25K/year (overlap with feature edges → effective $5-15K incremental).
- Realistic total (after slippage/correlation): ~$20-50K/year on $5K positions.
- Still NOT primary edge — MOO-955 M10R S1 / ZAPAS в 5-10x мощнее. Earnings day = seasonal overlay decoration.
PART 5 — Caveats
- N_te=3-5 для per-ticker = exploratory. Monitor в shadow mode 6 месяцев перед live.
- 2025-2026 это bull-ish regime; в bear (2022) edges могут перевернуться.
- Sh_te annualized inflates at low N → focus on mean + WR as primary signal.
- Feature edges более робустные (N_te 30-163), пер-ticker нужны N ≥ 10 для confidence (не хватает в 3.3y).
- Не combining in same trade — одно направление per ticker.
Files
revalidation_apr22/earnings_moo955_research.py
revalidation_apr22/earnings_moo955_features.parquet — 8 feature edges
revalidation_apr22/earnings_moo955_ticker_setups.parquet — 37 per-ticker signatures
revalidation_apr22/earnings_moo955_merged.parquet — 3,166 full merged events