Алгоритмический торговый бот для акций Московской биржи. По 19 голубым фишкам каждый час решает: купить, шортить или сидеть в кэше — на основании прогноза машинного обучения.
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 закрываются.
Первый релиз, который меняет саму торговлю, а не инфраструктуру: шорты стали внутридневными, пороги входа опустились, размер позиции зависит от силы сигнала, а свободный кэш перестал лежать мёртвым грузом.
Починено после запуска.
Гейты релиза. 186 юнит-тестов на стеке прода, реплей против v1.1 бит-в-бит на 479 барах, 7 дней теневого прогона на живых данных без единого исключения. Цифры сборки на исторических данных — в таблице ниже.
Что было в предыдущих версиях — разверните блок.
Первый релиз после go-live — и он целиком про скорость и инфраструктуру: модель и торговая логика не менялись (тот же v7.0 rev2). Боевой тик ускорен с ~190 секунд до ~4 секунд (×50) при полном численном совпадении сигналов со старым кодом.
Что внутри: инкрементальный движок стратегий (пересчитывается только новый бар, а не вся история), батчевый расчёт ~2 800 стратегий, in-process inference, параллельный фетч котировок, горячий кэш в tmpfs. Зачем: запас прочности внутри 5-минутного окна тика, мгновенные реплеи истории для гейтов будущих релизов и фундамент под v1.2.
Первая версия продукта — 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 год включительно и со временем стареет; это открытый пункт исследования.