ML на Мосбирже: почему мой «грааль» не работает
- Целью было добиться результата лучше случайного угадывания 50/50, но комиссии и спред изначально делают «случайную» стратегию отрицательной без покрытия издержек.
- Для отбора бумаг автор оставлял акции с фьючерсами и обогащал данные через два API: брокерский и DaData (по ИНН компаний).
- Загружались минутные котировки по бумагам и индексы IMOEX, IMOEX2, RTSI, RGBI; историю по IMOEX и RGBI пришлось получать через прямой API Мосбиржи (ISS MOEX), на загрузку минуток по индексам уходило около 20 минут.
- Таймфреймы: 15 минут, 1 час и 1 день (основной — 1 час); также тестировались событийные бары по рублёвому объёму (пример — 50 млн руб.) с классификацией бумаг по классам A/B/C.
- Разметка цели строилась по тройному барьеру де Прадо: Take Profit (Цена + N×ATR), Stop Loss (Цена - M×ATR), Time Limit (100 баров), с метками 1/0/-1.
- Модель на CatBoost показывала AUC 0,54–0,55; при COMMISSION_PCT = 0.04/100 и SLIPPAGE_PCT = 0.02/100 каждая сделка теряла 0,06% или 0,12% на круг, и для выхода в плюс требовались движения >0,3–0,5%.
Почему это важно: Этот кейс показывает, как в прикладном ML для рынков ключевыми ограничителями становятся не только качество модели, но и издержки исполнения сделок и структура данных. Даже небольшое преимущество в классификации (AUC чуть выше 0,5) может не превращаться в прибыль, если сигналы «съедаются» комиссиями, проскальзыванием и сменой режимов рынка между тестовыми периодами. Отдельная ценность — в описании полного контура: сбор данных, агрегация таймфреймов, разметка, инженерия признаков и walk-forward тестирование с «очисткой» (purging).
На что обратить внимание: В тексте явно разделены «техническая работоспособность» и финансовый итог, что помогает корректно интерпретировать метрики модели. В одном из фрагментов говорится о лицензии/ограничениях доступа к истории индексов через брокерский API (упоминается MOEX AlgoPack), из-за чего используется альтернативный источник (ISS MOEX). Отдельно отмечены различия между временными и событийными барами и допущение, что временные свечи могут быть шумными. В качестве следующего шага подразумевается поиск другой постановки оптимизации (например, по финансовой метрике вроде коэффициента Шарпа) и обсуждение гипотез: таймфреймы, волатильность, данные стакана, более сложные модели.
Читайте также
Создание максимально стабильной автоматизированной торговой системы: от бэктеста до реального бота
Интеграция YandexGPT с Siri через Shortcuts и Scriptable
Lamoda запускает «Г(ии)д по стилю» для онлайн-примерки вещей
«Вам нужны партнеры, а не подрядчики»: как запустить ИИ-проект, который принесет реальную пользу бизнесу
Внедрение искусственного интеллекта в B2B-сегменте Ростелекома: опыт автоматизации бизнес-процессов
- Издержки исполнения как «порог применимости» ML-сигналов в трейдинге: В кейсе показано, что даже при качестве модели чуть выше случайного угадывания прибыль может не появляться из-за комиссии, спреда и проскальзывания. В примере издержки заданы как COMMISSION_PCT = 0.04/100 и SLIPPAGE_PCT = 0.02/100, а ожидаемое движение должно быть существенно выше (в тексте: >0,3–0,5%), иначе перевес съедается.
[Методология и метрики]
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться
Автор описывает попытку построить ML-модель для торговли акциями на Московской бирже и приходит к выводу, что технически пайплайн работает, но финансовый результат близок к безубыточности из-за издержек.