MOO-955 EXIT 11:00 — Full Re-Cross-Check

Apr 26, 2026 · Сверка всех 12 факторов на baseline 9362 trades 2023-2026 (deployed M11_APR25 за вчера)
🚨 КРИТИЧЕСКАЯ НАХОДКА — M11 DEPLOYED OVER-RESTRICTIVE

Re-cross-check показал что deployed stack B+C1M+D4+F+noRsi30+noS12+noAVOID СОКРАЩАЕТ capacity на 91% (N 9362→845) ради marginal Sh trade-off, при этом BACKTEST Sh ниже базового (10.33 vs 14.17 для LIGHT-варианта).

Hard data: M11 2026 Sh = 3.50 ($2,065/yr), LIGHT 2026 Sh = 11.55 ($17,769/yr). LIGHT_LONG_only 2026 Sh = 20.70.

Recommendation: Откатить избыточные фильтры C+D, оставить только F (no_macro) + noRsi30 LONG forbid + noBREAK_DN_LONG. Это и есть suboptimization из Apr 25 sprint — стек был fit-on-train для inflated Sh не daily-aggregated.

📊 TL;DR — Joint Sharpe at EXIT 11:00 (daily-aggregated)

M11 Deployed (yesterday)
Sh 10.33
N=845 · $22.5K/yr · 2026 Sh 3.50 ⚠️
LIGHT (only no_macro)
Sh 14.17
N=7926 · $160K/yr · 2026 Sh 11.55 ✓
LIGHT_LONG_only
Sh 13.45
N=4096 · $117K/yr · 2026 Sh 20.70 🏆
RAW Baseline
Sh 13.92
N=9362 · $191K/yr · 2026 Sh 11.91

1. Per-Factor Effects (ALL_3y, sorted by Sharpe)

FactorNWR%Mean%Sharpe (daily ann)$/yr@$5KVerdict
F (no macro day)775569.9+1.21814.14$157,418KEEP
F skip FOMC/PPI only867570.0+1.24913.96$180,531KEEP (lighter)
noRsi<30 LONG932069.6+1.22413.94$190,160KEEP
BASELINE (no filter)936269.6+1.22713.92$191,417
B drop BREAK_DN_LONG932669.6+1.22413.87$190,270KEEP (free)
E no_earnings (drop)909169.7+1.21313.74$183,792KEEP
LONG only471677.7+1.79213.35$140,872STRONG
D drop sector_worst (rank≤10)550067.8+1.22512.54$112,259KEEP (gentle)
B BREAK_UP LONG14882.4+1.57512.13$3,884SCORE BOOST
BREAK_UP_B (all)33182.5+1.46311.43$8,071BOOST OK
C dvol≥1M333966.0+1.25710.41$69,966DROP — −Sh, −2/3 N
D sector_top4225670.4+1.39210.40$52,334DROP — −Sh
D sector_top3170770.7+1.43010.13$40,692DROP
P twist top25 LONG99374.4+1.8008.91$29,782SCORE BOOST
SHORT_S1 only242355.5+0.3786.50$15,256marginal
SHORT_S12 only9956.6+0.5013.52$826DROP (deployed)
B BREAK_DN SHORT17458.6+0.5293.44$1,535weak

2. Per-Year Stability — M11 vs LIGHT vs LIGHT_LONG

Variant2023202420252026Last_6mALL_3y
RAW baseline (no filter) Sh 16.83 N=2562 Sh 12.99 N=1608 Sh 13.18 N=3598 Sh 11.91 N=1594 Sh 12.88 N=2745 Sh 13.92 N=9362
LIGHT (no macro) Sh 16.83 N=2562 Sh 13.26 N=1393 Sh 13.18 N=2751 Sh 11.55 N=1220 Sh 13.29 N=2043 Sh 14.17 N=7926
🏆 LIGHT_LONG_only Sh 13.68 N=2165 Sh 16.72 N=679 Sh 11.65 N=1008 Sh 20.70 N=244 Sh 13.22 N=507 Sh 13.45 N=4096
LIGHT_SHORT_only Sh 13.25 N=397 Sh 8.40 N=714 Sh 9.59 N=1743 Sh 8.27 N=976 Sh 9.76 N=1536 Sh 9.82 N=3830
⚠️ M11 DEPLOYED (B+C1M+D4+F+...) N=0 Sh 9.97 N=169 Sh 12.54 N=531 Sh 3.50 N=183 Sh 6.60 N=304 Sh 10.33 N=845
📉 M11 vs LIGHT 2026 разрыв: M11 в 2026 даёт Sh 3.50 и $2,065/yr против LIGHT'а Sh 11.55 и $17,769/yr — 8.6× меньше прибыли при 3.3× худшем Sharpe. Фильтры C/D уменьшили N в 6.7× а Sh упал в 3.3×. Это over-fit.

3. Pairwise Interaction Matrix (Sh)

Sharpe joint = mask1 ∩ mask2. Diagonal = solo factor. Большая часть пар: Sh ≈ solo (фильтры orthogonal, можно складывать без cost). Но C1M/D4 везде режут Sh.

BC1MD4EFQPnoRsi30noS12noAVOID
B13.8710.3810.2813.6914.109.8510.7813.8913.8313.87
C1M10.3810.4110.4710.2410.434.517.3210.4510.0610.41
D410.2810.4710.4010.2110.546.518.9510.3810.4810.40
E13.6910.2410.2113.7414.019.7310.7113.7613.7013.74
F14.1010.4310.5414.0114.149.6910.8014.1714.0914.14
Q9.854.516.519.739.699.859.859.859.839.85
P10.787.328.9510.7110.809.8510.8310.8610.7910.83
noRsi3013.8910.4510.3813.7614.179.8510.8613.9413.9013.94
noS1213.8310.0610.4813.7014.099.8310.7913.9013.8813.88
noAVOID13.8710.4110.4013.7414.149.8510.8313.9413.8813.92

📌 Pattern: F + noRsi30 ячейка 14.17 = глобальный максимум. C1M/D4 строки и столбцы везде <11 — они системно режут Sh при любых партнёрах.

4. Greedy Stack Search (start = baseline, add factor that maximizes Sh)

StepAddSelectedNSh$/yrNote
0BASELINE936213.92$191,417start
1FF775514.14$157,418+0.22 Sh
2noRsi30F+noRsi30772414.17$156,443+0.03 Sh ⭐ OPTIMAL
3noAVOIDF+noRsi30+noAVOID772414.17$156,4430 effect (no rows)
4B+B769714.12$155,514−0.05 Sh
5noS12+noS12761914.07$154,896−0.05 Sh
6E+E743113.94$150,312−0.13 Sh
7P+P418910.66$58,860−3.28 Sh ⚠️
8Q+Q35929.58$40,163−1.08 Sh
9D4+D48806.65$10,601−2.93 Sh ⚠️ capacity collapse
10C1M+C1M (full M11+P+Q)2945.62$2,929−1.03 Sh
✓ Greedy optimum: Step 2 — F + noRsi30 — Sh 14.17, N=7724, $156K/yr at $5K basket. Каждый последующий фильтр уменьшает Sharpe. P/Q/D4/C1M катастрофически режут capacity.

5. M11 Deployed — Compare to Optimal

StackNWR%Mean%Sh$/yr2026 ShVerdict
OPTIMAL: F+noRsi30 (LIGHT)772469.7+1.21414.17$156,44311.55🏆 keep simple
LIGHT_LONG_only409677.4+1.71713.45$117,20320.70🏆 strengthening 2026
M11_APR25 deployed84572.5+1.59810.33$22,5053.50⚠️ over-restricted
M11 + P boost56367.18.46$10,910worse
M11 + Q boost29559.05.62$2,924much worse

6. Hedge Comparison (NO_HEDGE vs SPY vs QQQ) at EXIT 11:00

HedgeNWR%Sh (daily)$/yr@$5KNote
NO_HEDGE621765.712.24($568M raw)highest gross
QQQ_1to1 (deployed)621764.712.10($538M raw)good — risk reduce
SPY_1to1 (was)621764.612.15($533M raw)

📌 QQQ vs SPY разница ≈ 0.05 Sh = noise. Smart Apr 25 рекомендация QQQ остаётся корректной (не вредит). NO_HEDGE даёт +0.14 Sh но больше MaxDD — trade-off оставлен.

7. Recommendation — Откат M11 → LIGHT

🎯 Action items для Apr 27:

  1. strategies/moo_955/m10r_rules.py — закомментировать apply_apr25_layer в части C+D (dvol/sector), оставить только B+F+noRsi30+noAVOID hard-gates.
  2. strategies/moo_955/config.json — выключить apr25.boosts.dvol_filter и apr25.boosts.sector_filter (или поднять threshold до 0).
  3. Оставить: F (skip FOMC/PPI), noRsi30 LONG forbid, noBREAK_DN_LONG, BREAK_UP boosts (S+/S/A/B), Q/P как score boosts (не gates).
  4. QQQ hedge оставить — не вредит.
  5. Размер basket: вернуть к ~30-40 позициям/день вместо ~5 (capacity).

⚠️ Риски downscope M11:

8. Summary — что осталось рабочего после re-cross-check

FactorSolo ShJoint Sh delta2026 stable?Final verdict
F (skip FOMC/PPI)14.14+0.22✓ Sh 11.55HARD GATE
noRsi30 LONG forbid13.94+0.03HARD GATE
noBREAK_DN_LONG (B partial)13.87~0HARD GATE (free)
BREAK_UP S+/S/A/B11-16SCORE BOOST
noSHORT_S123.52 solo−0.05DROP S12 (pos free)
Q laggard LONG9.85−1.08?SCORE BOOST only
P twist LONG8.91−3.28 ⚠️?SCORE BOOST only
E earnings overlay13.74−0.13?OK as gate (no_earnings)
C dvol≥1M10.41−4 везде?DROP — over-restrictive
D sector_top410.40−2.93?DROP — over-restrictive
SHORT_S123.52−0.05?DROP (free)
H short floatN=0 (LA disabled)SKIP (LA snapshot trap)

Generated: 2026-04-26 · Source: revalidation_apr25/baseline_3y_1100.parquet + 11 factor parquets · Daily-aggregated Sharpe (×√252) · Source script: full_recheck_1100_apr26.py
Compare to memory: research_moo955_FINAL_SYNTHESIS_apr25.md, project_moo955_M11_DEPLOYED_apr26.md