Astrobot
v1.0 · 2026-05
05 · История

Как пришли к v1.0

Модель не получилась с первого раза. Было около семи крупных переделок плюс десятки мелких экспериментов. Главный момент — апрель 2026: обнаружился баг с «подглядыванием в будущее» (look-ahead leakage): модель тайно использовала данные, которых в реальности в этот момент знать не могла, и от этого все исторические метрики были завышены на +5..+10 пунктов Sharpe. После фикса честная цифра оказалась ниже репортированной в ~10 раз. Пришлось переобучить с нуля. С 15.05.2026 продукт уходит в песочницу как Astrobot v1.0 — уже без скрытых дырок.

Эволюция research модели

Итерация Суть Итог
v1-legacy Binary classifier + best.json (look-ahead leakage) Инфлированные метрики, RESEARCH_ONLY
v1.1 — v4.0 Удалён best.json, переход на regression + vote aggregates + raw indicators + macro Sharpe 1.31 → 3.25 (pre-fix)
v5.0 Расширение universe 11 → 26 тикеров. Long-only, 31 фича Sharpe 3.66 test (pre-fix, inflated)
v1.5 — v1.7 stack D_10/26 priority rotation + shared-pool cb=30% + hurdle 12bps + kelly_vol long-only. Deployed DRY_RUN Reported Sharpe 5.06; honest Sharpe −0.62 после look-ahead fix. Retired
Look-ahead fix 🚨 Look-ahead bug в simulate_D обнаружен. Все исторические KPI до этого inflated на +5..+10 Sharpe. simulate_D_no_lookahead добавлена Reset: re-eval всех stack'ов через honest sim
v6.0 Retrain на signed-position data, long+short capability, 35 features (31 v5 + 4 short-track vote aggregates), kelly_vol L+S, hurdle 24 bps sym TEST Sharpe +2.14 (cost 0.0006), +1.23..+1.70 realistic. Superseded v7.0
v7.0 Top-50 raw_individual (не top-100 by Sharpe), 73 features (replace vote aggregates на 50 raw {sid}_position), n_slots=10 fixed, hurdle 24 bps sym, WARMUP=2000 TEST Sharpe +2.93 ± 0.45 / CAGR +31% / MaxDD −9% (multi-seed)
v7.0 rev1 hurdle Asym hurdle 24L/8S (replace sym 24). Single-seed evidence Overturned в тот же день — single-seed lottery
v7.0 rev2 Grand sweep 440 sims × 5 seeds: 18L/12S eps=0.10 выигрывает в 9/10 годов, bull +6.88 vs +4.88 baseline Sharpe, bear +3.33 vs +2.88. EPS_ACTIVE 0.01 → 0.10. Production config Final v1.0 architecture

Стек-эксперименты на пути (legacy, baseline v5.0)

GO — попали в v1.7 stack (retired) или ortho перенесены в v7.0. v7.0 retrain (top-50 raw_individual) сделал большинство этих ortho к новому artifact'у — повторный sweep на v7.0 был только для hurdle (grand sweep 440 sims).

Эксп. Тема Статус
1Kelly + vol-target (long-only)NO-GO
2Uncertainty fix (σ_rescaled)DONE
3Purged k-fold CV + uniqueness weightsHOLD
4Cross-sectional ranksNO-GO
5Train без 2022OK
6Horizon sweep / target IC auditDIAG
7Qlib alpha158 (40 → 20 фич) поверх 31-feat baselineNO-GO
12Target switch ensemble → priceNO-GO
13aSizer μ-rescaleNO-GO
14Strategy universe auditNO-GO
15aOracle top-K traceGO
15bMixture-of-Experts (K=8, J=2)REGRESSION
15dCapital allocation (priority rotation)В V1.0
16Short-сигналы (long-only era)NO-GO
17Long-only vs long-short (v5 era)SUPERSEDED v7
18Research↔Live verification + D_26/26 + SL+cooldown sweepDONE
19Shared-pool (cash_balance=30%)В V1.0
20V3a hysteresis / V3c sticky / μ-priority aloneFALSIFIED
21Hurdle entry filter (12→24→18L/12S asym)В V1.0
23Sizer revisited: kelly_vol vs tanh. Kelly wins 10/10 yearsВ V1.0
v7 grand sweep440 sims × 5 seeds × triangular hurdle × eps grid — 18L/12S eps=0.10 winsВ V1.0

Главные уроки за путь к v1.0: (1) Look-ahead bug — все pre-30.04 KPI были inflated на +5..+10 Sharpe; honest re-eval показал v1.7 Sharpe −0.62 вместо reported +5.06. (2) Multi-seed обязателен — D_4/10 simulator amplifier даёт std ±0.45-0.74; single-seed picks (как rev1 24L/8S) — lottery. (3) Per-row reward ≠ Sharpe — ML-policy на decoupled target collapsed в portfolio simulator (4969 vs 604 entries, Sharpe Δ −2.13). (4) Frozen holdout — one-shot — открыть можно один раз, дальше consumed.