MOO-955: выход в 11:00 вместо 09:55

Полный ре-ресерч на 12m · 1502 stocks · после фикса look-ahead в prev_day_ret

⚡ Главное в 3 строки

  1. Exit в 11:00 даёт +4…+12 Sharpe над MOO/09:55 во всех сегментах → переключаем
  2. LONG grade (A+/A/B+) остаются сильными (Sh 6-8) → работают как есть
  3. SHORT S1 rule был поддельно сильным из-за бага в данных → отключить и тестировать на paper

Что делать с понедельника

Решения по правилам

LONG A+ grade (score ≥ 5.5)GO
N: 2,353 WR: 75.7% mean: +1.32% Sharpe: 7.70
12m honest · sizing $1,500 · exit 11:00
LONG A grade (score 3.0—5.5)GO
N: 4,253 WR: 72.1% mean: +1.01% Sharpe: 7.23
12m honest · sizing $1,000 · exit 11:00
LONG B+ grade (score 1.0—3.0)GO
N: 5,170 WR: 68.9% mean: +0.75% Sharpe: 6.10
12m honest · sizing $500 · exit 11:00
SHORT S1 (gap[-3,-1] & prev<-2)KILL → PAPER
3y: Sh 5.90 WR 64.7%honest Sh 0.09 WR 49.4% (N 6,535)
12m: Sh 10.51 WR 77.1%honest Sh -0.15 WR 49.4% (N 3,638)
Edge был inflated look-ahead. Отключить, перепроверить 20 paper-sessions.
Green-day continuation (prev≥5 & gap flat)RETRACTED
Sh 20+ WR 95%+honest Sh 0.3 WR 48%
Полностью фейковый edge из-за look-ahead. Не внедрять.
69 Earnings edges (moo_955 + pm_moo)0 / 69
Ни одно правило не прошло Sh≥3 WR≥60 N≥30 на ret_1100. SHORT edges инвертируются.
⭐ 24 Named ticker rules (NEW)ADD
Single-feature per-ticker, Sh≥3 N≥30 на honest 12m. Топ-10:
TickerFeatureBucketNWRmeanSh
CFgap_pctgap_0..33066.7%+1.25%10.09
PBRpm_drift_pctpm>12665.4%+0.74%7.67
ALMgap_pctgap_0..34173.2%+1.69%7.54
COINgap_pctgap>32166.7%+1.21%6.88
TMEprev_day_retprev>22070.0%+0.92%6.75
RELYpm_drift_pctpm<-12268.2%+1.17%6.71
BAXgap_pctgap_0..33669.4%+0.50%6.59
CCpm_drift_pctpm>12378.3%+1.15%6.51
ENVXpm_drift_pctpm>12171.4%+1.21%6.33
YMMpm_drift_pctpm>12070.0%+0.79%6.30
Показать все 24 →
TickerFeatureBucketNWRmeanSh
CFgap_pctgap_0..33066.7%+1.25%10.09
PBRpm_drift_pctpm>12665.4%+0.74%7.67
ALMgap_pctgap_0..34173.2%+1.69%7.54
COINgap_pctgap>32166.7%+1.21%6.88
TMEprev_day_retprev>22070.0%+0.92%6.75
RELYpm_drift_pctpm<-12268.2%+1.17%6.71
BAXgap_pctgap_0..33669.4%+0.50%6.59
CCpm_drift_pctpm>12378.3%+1.15%6.51
ENVXpm_drift_pctpm>12171.4%+1.21%6.33
YMMpm_drift_pctpm>12070.0%+0.79%6.30
GSgap_pctgap_0..36569.2%+0.41%6.25
NWLgap_pctgap_-3..02365.2%+0.73%6.15
INTRpm_drift_pctpm_flat5267.3%+0.63%6.04
GSATprev_day_retprev>22770.4%+1.74%5.89
CNCpm_drift_pctpm<-12466.7%+0.98%5.70
VNETgap_pctgap_-3..06070.0%+0.97%5.55
ELFprev_day_retprev<-24070.0%+0.91%5.55
SERVgap_pctgap>33865.8%+1.76%5.40
HOODgap_pctgap>32065.0%+1.11%5.25
Fgap_pctgap_0..36965.2%+0.38%5.18
CVEprev_day_retprev>22065.0%+0.51%4.98
SLBprev_day_retprev<-22065.0%+0.48%4.93
AEOprev_day_retprev<-23268.8%+0.58%4.91
PENNprev_day_retprev<-22171.4%+0.75%4.90
Боевое применение: $500 boost-size layer поверх grade entries.
Per-sector combos (3 strong)WATCH
SectorgapprevNWRSh
Basic Materials[-5,-3)[2,5)5168.6%7.64
Energy[0,0.5)[-2,0)8962.9%5.50
Technology[-2,-1)[-10,-5)9762.9%4.92
Basic Materials / Energy / Tech — узкие ниши, N 50-97. Мониторить.
TTN boost: contract_deal × gap<-5BOOST
N: 71WR: 59.2%mean: +1.18%Sh: 3.70
Добавить +0.5 к score при наличии news + gap-down.
ZAPAS 08:00 → 11:00 exitNEEDS DATA
gapdirNSh @MOOSh @11:00Δ
[-5,-2)LONG41-11.090.71+11.80
[2,5)SHORT47-9.06-3.64+5.42
[5,10)SHORT31-16.31-7.40+8.91
[-5,5)FLAT171-1.902.01+3.91
11:00 ≫ MOO везде, но N=267 sparse. Нужен полный pm_1m backfill перед внедрением.

Что за баг

Код: backfill_atr_rsi_5y.py:81 + update_daily_bars_cache.py:66

# БЫЛО (look-ahead):
df['prev_day_ret'] = df['close'].pct_change() * 100
  # СТАЛО (honest):
df['prev_day_ret'] = df['close'].pct_change().shift(1) * 100

Симптом: колонка "prev_day_ret" содержала today's close-to-close, не вчерашний. corr(prev_day_ret, today_cc) = 1.0000 → 0.0122 после фикса.

Scope: все offline backtest / research. Production daemon НЕ ПОСТРАДАЛ — считает из Polygon в runtime (data_collector.py:290-291).

Что пересчитано: daily_bars_cache.parquet (4.4M) + universe_scored_v4.parquet (215K). Backups: *_BACKUP_preFix.parquet.

research_results/research_1100/ · 24 named rules · 3 sector combos · generated 2026-04-23