Astrobot
v1.2 · 2026-09
Meta-ML Long/Short on MOEX

Космический квант на
MOEX

Алгоритмический торговый бот для акций Московской биржи. По 19 голубым фишкам каждый час решает: купить, шортить или сидеть в кэше — на основании прогноза машинного обучения.

1.73
Sharpe — качество стратегии
выше 1 — норм, выше 3 — отлично
+23.9%
Годовая доходность
на тестовых данных 2024-25
+34.9 пп
Альфа к рынку
сверх корзины B&H TR (−11.0% годовых)
01 · Описание

Что такое Astrobot v1.2

Astrobot торгует голубыми фишками MOEX на часовых барах. Внутри — корзина из ~2 800 простых индикаторных стратегий (RSI, MA crossover, ADX), а сверху ML-модель, которая каждый час по каждому тикеру решает: покупать, шортить или сидеть в кэше.

Как устроен мозг. Модель берёт 50 лучших стратегий корзины и добавляет рыночные индикаторы — волатильность, тренд, объём, дивидендный календарь, ставку ЦБ. Итого 73 признака. CatBoost выдаёт прогноз доходности на ~20 часов вперёд и уверенность в нём: выше прогноз и меньше неопределённость — больше позиция.

Как принимаются решения. В портфеле до 7 позиций и 10% кэш-буфер. Long открывается при прогнозе выше +15 bps, short — ниже −6 bps. Сигнал сильнее самого слабого открытого вытесняет его из слота; затухший сигнал закрывает позицию сам. Шорты с v1.2 живут только внутри дня — на баре 21:00 закрываются.

Композиция стека v1.2

v7.0model (73 features) × 7 slotspriority rotation × long + intraday shortcover 21:00 × kelly L+Ssizer (σ120) × cb=0.10cash buffer × 15L / 6S bpsasym hurdle × eps=0.10exit threshold × LQDT parkсвободный кэш

Astrobot v1.2 — торговый релиз (go-live 01.09.2026)

Первый релиз, который меняет саму торговлю, а не инфраструктуру: шорты стали внутридневными, пороги входа опустились, размер позиции зависит от силы сигнала, а свободный кэш перестал лежать мёртвым грузом.

Шорты
внутри дня
закрываются на баре 21:00 — ночёвок и платы за перенос нет
Пороги входа
15L / 6S
было 18L / 12S bps — коротких сделок стало заметно больше
Кэш-буфер
30% → 10%
устойчивый остаток паркуется в LQDT вечерним ребалансом
Go-live
01.09.2026
горячий переход между часовыми барами, ни один бар не потерян

Починено после запуска.

  • 01.09 — исправлен баг: расчёт «парковки» кэша не учитывал комиссию брокеру → теперь 5% свободного кэша всегда остаётся на счёте.
  • 02.09 — исправлен баг: неправильный порядок расчёта кэша для парковки.
  • 02.09 — исправлен баг: припаркованный кэш не входил в капитал → размер новых позиций считался заниженным.
  • 02.09 — исправлен баг: при равной силе сигналов порядок слотов был случайным → одни и те же данные давали разные сделки.

Гейты релиза. 186 юнит-тестов на стеке прода, реплей против v1.1 бит-в-бит на 479 барах, 7 дней теневого прогона на живых данных без единого исключения. Цифры сборки на исторических данных — в таблице ниже.

История версий

Что было в предыдущих версиях — разверните блок.

v1.1 engine-релиз · 13.08.2026 — ускорение тика ×50, торговая логика не менялась

Первый релиз после go-live — и он целиком про скорость и инфраструктуру: модель и торговая логика не менялись (тот же v7.0 rev2). Боевой тик ускорен с ~190 секунд до ~4 секунд (×50) при полном численном совпадении сигналов со старым кодом.

Тик бота
190 → 4 с
полный цикл: котировки → фичи → прогноз → ордера
Сигналы
бит-в-бит
реплей-гейт против старого движка на каждом шаге
Shadow-прогон
04–13.08
параллельная ВМ: sign-flips 0, в реальных сделках расхождений 0
Cutover
13.08.2026
переезд на новую прод-ВМ до открытия торгов

Что внутри: инкрементальный движок стратегий (пересчитывается только новый бар, а не вся история), батчевый расчёт ~2 800 стратегий, in-process inference, параллельный фетч котировок, горячий кэш в tmpfs. Зачем: запас прочности внутри 5-минутного окна тика, мгновенные реплеи истории для гейтов будущих релизов и фундамент под v1.2.

v1.0 первый продукт · песочница 15.05.2026 → боевой счёт 25.06.2026

Первая версия продукта — v7.0 rev2: та же модель CatBoost поверх корзины TA-стратегий, 7 слотов, long и short без ограничения по времени удержания, пороги входа 18L / 12S bps, кэш-буфер 30%. Месяц отработала в песочнице T-Invest (15.05–15.06.2026) на виртуальные деньги: превышение по Sharpe над корзиной buy & hold +1.64, alpha +3.98 пп. По итогам этого месяца принято решение выходить на боевой счёт — 25.06.2026, ~100 000 ₽, 19 тикеров, 7 слотов. Путь к этой архитектуре — на странице История.

Результаты на исторических данных

Ниже — результаты только зафиксированной сборки v1.2 (той, что сейчас торгует) на исправленном симуляторе, 5 сидов. Два окна: TEST (январь 2024 – июнь 2025, 18 месяцев) — данные, которых модель не видела при обучении; FROZEN 2025H2 — запечатанный срез, вскрытый ровно один раз 20.08.2026 и с тех пор непригодный для отбора. Рядом два контроля: long-only (та же система без шорт-ноги) и B&H TR (просто держать корзину, с дивидендами).

Окно Sharpe CAGR MaxDD Long-only контроль B&H TR
TEST 2024-01 → 2025-06 (18 мес, 5 сидов) +1.73 ± 0.18 +23.9% −12.2% Sh 0.92 / +7.8% −11.0% / DD −25%
FROZEN 2025H2 (6 мес, one-shot, вскрыт 20.08.2026) +0.88 ± 0.16 +6.4% −7.8% Sh 0.44 / +3.2% −5.5% / DD −21.2%

Почему в таблице нет 2016–2023: на этих годах модель училась, их результат ничего не проверяет. Прежние опубликованные цифры (Sharpe 2.93, +31% годовых) сняты симулятором, который при смене знака прогноза переворачивал позицию бесплатно — без закрытия, комиссии и спреда; дефект найден 19–20.08.2026, и все замеры до него завышены примерно на 1.3–1.5 Sharpe. Такие цифры со страницы убраны. Разрыв TEST 1.73 → FROZEN 0.88 — честный: модель обучена по 2022 год включительно и со временем стареет; это открытый пункт исследования.