Разработка AI-арбитражного бота на базе ML

Резкие движения рынка съедают прибыль арбитражной стратегии: ручные решения не успевают, а жёсткие правила срабатывают слишком поздно. Мы разрабатываем арбитражных ботов на основе машинных моделей под ключ — от подготовки данных до передачи в эксплуатацию. Наши инженеры настраивают контроль риска так, что просадка сокращается, а участие человека нужно только для подтверждения.
Часто задаваемые вопросы

Почему арбитражный бот теряет прибыль на резких движениях рынка

Резкое движение рынка — это не «плохой день», а проверка архитектуры на прочность. Пока арбитражный бот считает сигнал, цена между площадками успевает разойтись: спред, который был в момент обнаружения возможности, к выставлению заявок уже закрыт. Задержка решения в доли секунды оборачивается проскальзыванием цены — сделка идёт на 0.3–0.8% хуже расчётной, и этого достаточно, чтобы прибыль стратегии обнулилась. Особенно заметно на ликвидных площадках вроде Binance, где импульс отрабатывается за одну-две секунды.

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

Отдельный слой — модель. Обученная на спокойных данных, она на всплеске волатильности видит входы за границами обучающей выборки: уверенность падает, сигнал приходит с опозданием или не приходит вовсе. Дальше включается простой стратегии: часы, когда рынок даёт лучшее соотношение движения и издержек, бот проводит вне рынка — и потери от такого простоя сопоставимы с серией убыточных сделок.

Разбираем, как закрывается каждый участок: бюджет задержки на всём пути от приёма данных до отправки заявки, политика исполнения с контролем проскальзывания, обработка отказов и частичных заполнений, а также контуры контроля модели, которые выводят её из торговли при выходе за пределы обучающего распределения.

Что меняется после внедрения: скорость решения и контроль риска

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

Второй измеримый показатель — доля исполненных заявок. Система заранее считает доступный объём, разбивает крупный вход на части и пересчитывает остаток при частичном исполнении, вместо того чтобы оставить висящий ордер и неверную позицию. По журналу видно, сколько заявок закрывается полностью, сколько частично и по какой причине.

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

Устойчивость стратегии проверяется на смене режима рынка: рост волатильности, падение ликвидности, расхождение котировок. На такие периоды задан регламент — сужение лимитов или пауза, поэтому результат не рассыпается на первой нестандартной сессии.

Ручные вмешательства оператора сокращаются до единичных случаев: подтверждение изменений в параметрах, разбор спорных сделок, сверка отчётности. Остальное система закрывает сама и фиксирует в журнале.

Схемы подключения к биржам и режимы исполнения сделок

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

Вариант Когда подходит Ограничения
Прямое подключение к двум площадкам: поток котировок плюс приватный канал ордеров нужен полный контроль над моментом входа и своим риск-менеджментом ключи и лимиты запросов на каждой стороне, баланс приходится держать на обеих, задержка между площадками съедает часть расхождения
Триангулярный арбитраж внутри одной площадки капитал сосредоточен в одном месте, нет переводов между биржами узкий набор пар, высокая конкуренция, спред закрывается быстрее, чем успевает сработать модель
Спот против фьючерса (базисная схема) нужна нейтральность к направлению рынка и удержание позиции дольше минуты ставка финансирования периодически меняет знак, у маржинальной ноги появляется риск принудительного закрытия, требуется запас обеспечения
Исполнение через внешний агрегатор ордеров нет своей инфраструктуры и ключей, важен быстрый запуск не видно очередности ордеров, чужие лимиты частоты, задержка ответа полностью вне вашего контроля

Режим торговли выбирается под ту же схему. Маркет-исполнение гарантирует, что нога закроется, но платит повышенную комиссию и снимает стакан на крупном объёме. Лимитные заявки дешевле, однако нога может не налиться, и тогда открытой остаётся одна сторона — классический источник убытка в арбитраже. Рабочий компромисс — лимитный вход с таймаутом и добором по маркету: бот выдерживает паузу, а затем закрывает расхождение принудительно. Обязательный элемент любой схемы — контроль частичного исполнения и автооткат незакрытой ноги.

Этапы внедрения: от аудита данных до передачи в эксплуатацию

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

  1. Аудит данных. Проверяем историю сделок и котировок: полнота, пропуски, метки времени, корректный учёт комиссий. На выходе — отчёт о пригодности выборки и перечень участков, где данных не хватает.
  2. Схема системы. Фиксируем источники котировок, расчёт сигнала, формирование заявки, хранение состояний и логов. Схема согласуется до первой строки кода.
  3. Настройка риска. Лимиты на позицию, дневную просадку, число одновременных сделок и поведение при потере связи с биржей — всё в конфигурации, а не в коде.
  4. Проверка на истории. Прогон на исторических данных с учётом комиссии и задержки исполнения: смотрим просадку, долю неисполненных заявок, устойчивость к смене режима рынка.
  5. Теневой режим. Бот считает сигналы по живым данным, но заявки не отправляет. Расхождение расчётной цены с фактическим стаканом показывает, где модель переоценивает ликвидность.
  6. Передача в эксплуатацию. Развёртывание на целевом окружении, подключение счёта, контроль и оповещения, регламент остановки. Отдаём документацию и конфигурации.

Дальше идёт сопровождение: пересмотр модели при смене режима рынка и контроль отклонений от ожидаемого поведения.

Что передаём на руки: конфигурации, схемы, регламенты и отчёты

Систему передаём так, чтобы её можно было эксплуатировать, дообучать и останавливать силами вашей команды — без инженера, который её собирал. В комплект входит не только рабочий код, но и всё, что нужно для предсказуемой работы арбитражного бота в рабочем режиме.

  • Конфигурации стратегии: профили, пороги входа, лимиты на позицию и дневной риск, набор признаков — с пометкой, что меняется на ходу, а что требует перепроверки на истории.
  • Схемы системы: путь данных от источника котировок до исполнения сделки, точки отказа на каждом участке, связи моделей и очередей.
  • Регламент реагирования: пороги просадки, рассинхрона данных и падения качества модели, порядок перевода в ручной режим и остановки торгов.
  • Доступы и роли: матрица прав на изменение параметров, запуск переобучения и просмотр отчётов, порядок ротации ключей, журнал действий.
  • Документация: описание признаков и логики сигналов, методика оценки качества, процедура переобучения и проверки модели перед вводом.
  • Отчёты: сводки по доходности, просадке, числу сделок и доле отказов — ежедневные и недельные, с историей конфигураций.

Каждый артефакт принимается вместе с вами на живой системе: показываем, как изменение параметра меняет поведение бота, и фиксируем зоны ответственности между вашей командой и нашей.

Кейс: как сократили просадку и убрали ручные вмешательства

До внедрения арбитраж между двумя торговыми площадками держался на ручном подтверждении: оператор видел расхождение цен, сверял лимиты и выставлял заявки сам. На реакцию уходило 6-8 секунд — за это время расхождение либо закрывали чужие заявки, либо оно уходило в минус. За смену набегало 40-60 ручных операций, а просадка на длинном отрезке доходила до 18%.

Что изменили

Цикл перенесли на модель: она оценивает ожидаемую доходность пары с учётом комиссий и глубины стакана, отсекает сигналы ниже порога и отдаёт заявку на исполнение сама. Риск-лимиты — по инструменту, площадке и дневной просадке — проверяются до отправки, поэтому новая позиция не открывается, пока не закрыта предыдущая.

  • Время реакции: с 6-8 секунд на решение оператора до десятых долей секунды.
  • Доля исполненных заявок: 71% → 96%, остальное отсекают фильтры по глубине стакана.
  • Ручные вмешательства: 40-60 за смену → 1-2, только разбор нештатных ситуаций.
  • Частота сбоев: несколько инцидентов в неделю → один в месяц, и тот на стороне площадки.
  • Просадка: с 18% до 6-7% на сопоставимом отрезке.

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

Чем машинная модель отличается от жёстких правил в арбитражном боте

Жёсткие правила — это пороги, прописанные вручную: спред выше заданного, достаточная глубина стакана, учтённые комиссии и время до расчёта. Логика прозрачна: сделку объясняет одна строка условия, а поведение воспроизводится при том же входе. Но рынок меняет режим — ликвидность уходит, спреды расширяются, — и пороги, подобранные на прошлом периоде, срабатывают там, где запаса уже нет.

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

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

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

Интерпретация решений нужна для разбора инцидентов и риск-контроля: видно, какие признаки дали вклад в конкретную сделку и почему бот вошёл. Логи решения и понятные пороги срабатывания делают поведение модели проверяемым, а не чёрным ящиком.

Технические сомнения: надёжность, риск и поддержка системы

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

Что будет, если связь с биржей оборвётся при открытой позиции?

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

Как защищены торговые ключи?

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

Что делать, если стратегия перестанет работать?

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

Кто отвечает за сбои после запуска?

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

Обсудим задачу и вернёмся с оценкой и планом работ

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

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

Этого достаточно, чтобы определить состав команды — инженер данных, ML-специалист, серверный разработчик, инженер инфраструктуры — и зафиксировать сроки по этапам: разбор данных, прототип модели, сервис предсказаний, интеграция с площадками, мониторинг. Каждый этап закрываем демонстрацией на ваших данных и передачей документации: схемы потоков, описание признаков, регламент переобучения и отката модели. Опишите задачу — вернёмся с оценкой и планом работ.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142