Полный ре-ресерч на 12m · 1502 stocks · после фикса look-ahead в prev_day_ret
n_contract_deal ≥ 1 & gap < -5%| Ticker | Feature | Bucket | N | WR | mean | Sh |
|---|---|---|---|---|---|---|
| CF | gap_pct | gap_0..3 | 30 | 66.7% | +1.25% | 10.09 |
| PBR | pm_drift_pct | pm>1 | 26 | 65.4% | +0.74% | 7.67 |
| ALM | gap_pct | gap_0..3 | 41 | 73.2% | +1.69% | 7.54 |
| COIN | gap_pct | gap>3 | 21 | 66.7% | +1.21% | 6.88 |
| TME | prev_day_ret | prev>2 | 20 | 70.0% | +0.92% | 6.75 |
| RELY | pm_drift_pct | pm<-1 | 22 | 68.2% | +1.17% | 6.71 |
| BAX | gap_pct | gap_0..3 | 36 | 69.4% | +0.50% | 6.59 |
| CC | pm_drift_pct | pm>1 | 23 | 78.3% | +1.15% | 6.51 |
| ENVX | pm_drift_pct | pm>1 | 21 | 71.4% | +1.21% | 6.33 |
| YMM | pm_drift_pct | pm>1 | 20 | 70.0% | +0.79% | 6.30 |
| Ticker | Feature | Bucket | N | WR | mean | Sh |
|---|---|---|---|---|---|---|
| CF | gap_pct | gap_0..3 | 30 | 66.7% | +1.25% | 10.09 |
| PBR | pm_drift_pct | pm>1 | 26 | 65.4% | +0.74% | 7.67 |
| ALM | gap_pct | gap_0..3 | 41 | 73.2% | +1.69% | 7.54 |
| COIN | gap_pct | gap>3 | 21 | 66.7% | +1.21% | 6.88 |
| TME | prev_day_ret | prev>2 | 20 | 70.0% | +0.92% | 6.75 |
| RELY | pm_drift_pct | pm<-1 | 22 | 68.2% | +1.17% | 6.71 |
| BAX | gap_pct | gap_0..3 | 36 | 69.4% | +0.50% | 6.59 |
| CC | pm_drift_pct | pm>1 | 23 | 78.3% | +1.15% | 6.51 |
| ENVX | pm_drift_pct | pm>1 | 21 | 71.4% | +1.21% | 6.33 |
| YMM | pm_drift_pct | pm>1 | 20 | 70.0% | +0.79% | 6.30 |
| GS | gap_pct | gap_0..3 | 65 | 69.2% | +0.41% | 6.25 |
| NWL | gap_pct | gap_-3..0 | 23 | 65.2% | +0.73% | 6.15 |
| INTR | pm_drift_pct | pm_flat | 52 | 67.3% | +0.63% | 6.04 |
| GSAT | prev_day_ret | prev>2 | 27 | 70.4% | +1.74% | 5.89 |
| CNC | pm_drift_pct | pm<-1 | 24 | 66.7% | +0.98% | 5.70 |
| VNET | gap_pct | gap_-3..0 | 60 | 70.0% | +0.97% | 5.55 |
| ELF | prev_day_ret | prev<-2 | 40 | 70.0% | +0.91% | 5.55 |
| SERV | gap_pct | gap>3 | 38 | 65.8% | +1.76% | 5.40 |
| HOOD | gap_pct | gap>3 | 20 | 65.0% | +1.11% | 5.25 |
| F | gap_pct | gap_0..3 | 69 | 65.2% | +0.38% | 5.18 |
| CVE | prev_day_ret | prev>2 | 20 | 65.0% | +0.51% | 4.98 |
| SLB | prev_day_ret | prev<-2 | 20 | 65.0% | +0.48% | 4.93 |
| AEO | prev_day_ret | prev<-2 | 32 | 68.8% | +0.58% | 4.91 |
| PENN | prev_day_ret | prev<-2 | 21 | 71.4% | +0.75% | 4.90 |
| Sector | gap | prev | N | WR | Sh |
|---|---|---|---|---|---|
| Basic Materials | [-5,-3) | [2,5) | 51 | 68.6% | 7.64 |
| Energy | [0,0.5) | [-2,0) | 89 | 62.9% | 5.50 |
| Technology | [-2,-1) | [-10,-5) | 97 | 62.9% | 4.92 |
| gap | dir | N | Sh @MOO | Sh @11:00 | Δ |
|---|---|---|---|---|---|
| [-5,-2) | LONG | 41 | -11.09 | 0.71 | +11.80 |
| [2,5) | SHORT | 47 | -9.06 | -3.64 | +5.42 |
| [5,10) | SHORT | 31 | -16.31 | -7.40 | +8.91 |
| [-5,5) | FLAT | 171 | -1.90 | 2.01 | +3.91 |
Код: 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