Игорь Градов
Игорь Градов
7 мин
ai

Машинное обучение в финансах: как устроен пайплайн на данных Мосбиржи, который можно повторить

Машинное обучение на данных Мосбиржи: как один эксперимент устроен изнутри, от сбора данных до модели, и что из этого можно повторить самому.

Машинное обучение в финансах: как устроен пайплайн на данных Мосбиржи, который можно повторить
Почему это важно

Автор эксперимента не трейдер и не сотрудник финансовой компании, а исследователь, который открыто делится каждым шагом пайплайна (последовательности обработки данных) и честно предупреждает: прибыли пока нет, результат не гарантирован. Именно такая прозрачность позволяет разобрать архитектуру без иллюзий.

Эксперимент описал автор блога на Хабре, который несколько месяцев строил систему машинного обучения поверх открытых данных Московской биржи. Он использовал языковые модели Claude Sonnet 5 и Gemini 3.5 Flash не как автономных ИИ-агентов (программ, действующих самостоятельно), а как консультантов в чате: задавал вопросы, получал варианты кода и анализа, но каждое решение принимал сам. Ниже разобрана архитектура его эксперимента так, чтобы вы могли повторить отдельные шаги или адаптировать подход под свои задачи.

Что понадобится?

  • Python 3.10+ и базовые библиотеки для работы с данными: pandas, requests, json
  • Доступ к API Мосбиржи (ISS): бесплатный, без регистрации, отдаёт текущие торгуемые инструменты и историю
  • Аккаунт DaData (бесплатный тариф хватит): для обогащения данных об эмитентах по ИНН
  • Подписка на языковую модель: автор использовал Claude Sonnet 5 и Gemini 3.5 Flash в режиме чата. Консультация через Claude Fable 5 (самая дорогая публично доступная модель на тот момент) обошлась примерно в 20 долларов
  • Время: от нескольких вечеров на первый шаг до нескольких недель на полный цикл. Каждый шаг независим, можно останавливаться и возвращаться

Пошаговая инструкция

1. Определите, какие инструменты торгуете: пары «акция плюс фьючерс»

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

Через API Мосбиржи запросите список торгуемых акций, затем сравните его со списком базовых активов, для которых существуют фьючерсы на срочной секции. На пересечении получите именно те бумаги, где можно открыть обе позиции одновременно.

# Пример запроса списка акций через ISS Мосбиржи
import requests

url = "https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.json"
response = requests.get(url)
data = response.json()

2. Восстановите историю фьючерсных контрактов

Фьючерс, в отличие от акции, имеет дату экспирации (срок, когда контракт прекращает торговаться). Контракт SBRF-6.25, например, относится к конкретному сроку исполнения и после него исчезает. Поэтому история фьючерса это не один непрерывный ряд цен, а последовательность отдельных контрактов, которые перекрываются по датам.

Для каждого базового актива запросите историю контрактов начиная с 2021 года. Для каждого найденного контракта дополнительно подтяните через ISS расширенную информацию: название, группу, дату начала торгов, последнюю дату торгов и дату исполнения.

Результат сохраните в два JSON-файла: акции с фьючерсами и дополнительные фьючерсные активы.

3. Обогатите данные внешними факторами

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

  • Нефть Brent, золото, природный газ
  • Индексы через ETF: SPY и QQQ
  • Валютные пары: юань к рублю (CNY/RUB), фьючерс на доллар (Si)
  • Индекс Мосбиржи и индекс гособлигаций RGBI

По ИНН эмитента через сервис DaData подтяните название компании, адрес и руководителя. Для модели машинного обучения это пока не нужно, но пригодится для будущего анализа.

4. Постройте архитектуру так, чтобы каждый шаг был независимым

Каждый шаг это отдельный набор Python-скриптов, который запускается вручную и работает только со своей задачей. Если завтра вы поменяете список активов или добавите ещё один внешний фактор, не придётся переделывать весь последующий пайплайн. Достаточно заново сформировать начальный слой данных.

5. Погрузитесь в микроструктуру: данные глубже обычных свечей

Стандартные свечи OHLCV (цена открытия, максимум, минимум, закрытие, объём) для машинного обучения недостаточны. Внутри одной свечи происходит многое: агрессивные покупки (исполнение заявки по цене продавца), появление и снятие лимитных заявок, моменты, когда стакан (список заявок на покупку и продажу) почти пуст, а через миллисекунды в нём появляется большой объём.

Для эксперимента с машинным обучением в финансах нужны данные о микроструктуре рынка: кто покупает, кто продаёт, как меняется глубина стакана внутри каждого временного интервала.

6. Используйте языковую модель как консультанта, а не как автопилот

Автор подчёркивает: все модели работали в режиме чата. Он формулировал задачу, передавал конкретные данные на каждом этапе и сам решал, какой код запускать и какие результаты принимать. Перед началом эксперимента он обсудил план с Claude Fable 5, передав свои идеи, книги и статьи, и попросил модель оформить всё в пошаговый план действий.

Пример: от запроса к результату

Автор запросил через ISS Мосбиржи список всех торгуемых акций на основной доске TQBR. Затем запросил список базовых активов на срочной секции. На пересечении получил набор бумаг, для которых одновременно существуют и акция, и фьючерс: Сбербанк, Газпром, Лукойл и другие. Для каждой бумаги система автоматически восстановила цепочку фьючерсных контрактов с 2021 года и сохранила результат в два JSON-файла. Весь первый шаг занял один вечер, а его результат не зависит от последующих этапов: можно переформировать список, не ломая модель.
Частые ошибки
  • Путать фьючерс с акцией при построении истории. Фьючерс это не бесконечный ряд, а цепочка контрактов с перекрытием по датам. Если склеить их без учёта экспирации, модель получит ложные разрывы и скачки цен.
  • Надеяться на полноту данных Мосбиржи. ISS отдаёт только текущий момент: если бумага была делистирована (снята с торгов), информации о ней в API уже не будет. Это создаёт «ошибку выжившего»: модель учится только на тех, кто дожил до сегодня.
  • Доверять модели как автопилоту. Автор прямо говорит: эксперимент не зарабатывает, результат неизвестен. Языковая модель помогает писать код и структурировать план, но не принимает торговых решений. «Трейдерских граалей» автор считает не существует, потому что вся информация общедоступна.
  • Игнорировать стоимость шорта на Мосбирже. Для частного лица шортить акции дорого и не всегда доступно. Пара «акция плюс фьючерс» решает эту задачу, но фьючерс несёт собственные риски: ограниченный срок жизни, необходимость роллирования (перехода на следующий контракт).

Что делать с этим прямо сейчас?

Автору Дзена и копирайтеру. Формат «я не эксперт, но разбираюсь шаг за шагом и честно показываю процесс» работает: он вызывает доверие и собирает комментарии. Если вы пишете про технологии или финансы, попробуйте структуру «независимые шаги, каждый понятен отдельно». Это проще и для вас, и для читателя.

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

Предпринимателю в РФ. API Мосбиржи бесплатен и работает без ограничений для базовых запросов. Сервис DaData доступен на бесплатном тарифе. Из языковых моделей в РФ доступны YandexGPT и GigaChat, но для написания Python-кода автор использовал Claude и Gemini, доступ к которым из РФ может потребовать дополнительных шагов.

Мнение редакции dzen.guru

Этот эксперимент ценен не результатом (его пока нет), а методом. Автор показал, как нетехнический специалист может выстроить полноценный пайплайн машинного обучения, используя языковые модели как помощников. По моим наблюдениям, именно такой формат, «ИИ-консультант, а не ИИ-автопилот», даёт наиболее воспроизводимые результаты. Модель пишет код, вы понимаете, зачем он нужен. Но честная оговорка: между «собрал данные и обучил модель» и «заработал на бирже» лежит пропасть, которую не закроет ни одна языковая модель. Машинное обучение в финансах требует не только данных и кода, но и дисциплины, управления рисками и готовности к тому, что результат будет нулевым.

Хотите использовать нейросети для своих задач?

В dzen.guru мы разбираем, как применять языковые модели на практике: от написания текстов до анализа данных.

Попробовать dzen.guru

Если вы давно хотели попробовать машинное обучение на российских данных, этот эксперимент показывает: начать можно с бесплатного API Мосбиржи, пары вечеров и чата с языковой моделью. Главное, не путать исследование с торговлей и не доверять модели больше, чем собственному пониманию того, что она делает.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

OCR для чертежей внутри 3D-конвейера: ScanToNeutral строит модели сразу в КОМПАС и Inventor
ai

OCR для чертежей внутри 3D-конвейера: ScanToNeutral строит модели сразу в КОМПАС и Inventor

Компания‑разработчик ScanToNeutral опубликовала подробный инженерный разбор своего конвейера, который превращает сканы старых бумажных чертежей в…

6 мин
Что такое ИИ-агент на практике: GigaCowork от «Сбера» сравнили с Claude Cowork
ai

Что такое ИИ-агент на практике: GigaCowork от «Сбера» сравнили с Claude Cowork

Компания «Сбер» запустила GigaCowork, платформу, где ИИ-агент (программа, которая сама планирует шаги, обращается к файлам и сервисам и возвращает готовый…

6 мин
DLSS Nvidia удваивает FPS без новой видеокарты: как включить и настроить
ai

DLSS Nvidia удваивает FPS без новой видеокарты: как включить и настроить

Технология DLSS от Nvidia появилась в 2018 году и за несколько лет изменила подход к производительности в играх и рабочих приложениях, а сейчас, когда…

7 мин