AI-трейдинг-бот: где ломается автоторговля на живом рынке
AI-трейдинг-бот на тестовом периоде показывает ровную доходность, а на живом рынке первым делом ломается не прогноз, а исполнение. Модель может быть сильной, но если бот теряет связь с биржей в момент сигнала, отправляет заявку дважды или исполняется по цене, которой уже нет, — результат расходится с расчётом в разы. Разбираем, где рвётся автоторговля и как это закрывается.
Первое узкое место — разрывы связи с биржей. Интерфейс отвечает с задержкой, соединение переподключается, и состояние заявки в этот момент неизвестно: ушла она или нет. Бот без сверки фактических позиций с журналом сделок повторяет ордер и получает двойной объём там, где планировал одинарный. Обёртка над биржевыми интерфейсами CCXT даёт единый способ читать позиции и заявки, но алгоритм сверки под каждый сценарий пишется отдельно.
Второе — проскальзывание ордеров. Сигнал считается по одной цене, исполнение приходит по другой: на ликвидных парах разница в доли процента, на узких — кратно больше, и вся расчётная доходность стратегии уходит в этот зазор. Лечится лимитными заявками с ценовым допуском, дроблением объёма и лимитом на отклонение цены: если цена ушла дальше, сделка не открывается вовсе.
Третье — отсутствие контроля просадки на уровне бота. Лимит риска на одну сделку не спасает, когда серия убытков и зависшая позиция складываются в один день. Нужен независимый слой: предел просадки на день и на период, автостоп при его достижении и приведение портфеля к безопасному состоянию без участия человека.
Ни один из этих сбоев не виден на истории — они проявляются только на реальном рынке. Дальше разбираем, как каждый из них закрывается.
Скорость реакции, дисциплина и контроль риска в торговле
Ручная торговля упирается в три вещи: скорость, дисциплина и размер риска на сделку. Пока трейдер видит сигнал, проверяет стакан и подтверждает вход, цена уходит вместе с частью ожидаемой прибыли. Дальше подключаются эмоции: после серии убытков правило «не больше N% на сделку» незаметно превращается в «доберу, чтобы отыграться».
Бот снимает обе проблемы сразу. Сигнал от модели превращается в ордер за секунды, а лимиты на сделку, дневную просадку и число позиций прописаны в коде и не зависят от настроения. Исполнение идёт через CCXT — единый слой доступа к биржам, поэтому одна и та же стратегия работает на нескольких площадках без переписывания логики.
| Параметр | Вручную | С ботом |
|---|---|---|
| Реакция на сигнал | секунды-минуты, зависит от занятости | секунды, без пропусков |
| Правила входа | дрейфуют после серии убытков | зафиксированы в коде стратегии |
| Риск на сделку | «на глаз», пересматривается под давлением | лимит на сделку, день, число позиций |
| Ночные позиции | зависят от того, кто не спит | работает без оператора |
| Разбор сделок | выгрузки вручную, часть теряется | журнал ордеров и сигналов |
Отдельно считается риск: размер позиции и стоп-уровни выводятся из текущего капитала, поэтому после просадки объём следующей сделки уменьшается автоматически.
В сумме это одинаковое поведение стратегии на любом объёме, предсказуемая просадка и журнал, по которому видно, где сработало правило, а где ошиблась модель.
Способы запуска бота: облако, свой сервер, гибрид
Где живёт торговое ядро — определяет задержку до площадки, доступность в момент волатильности и то, насколько быстро вы откатываете неудачный релиз. Прогнозная часть чувствительна к памяти под вывод модели и к расписанию переобучения, а не к скорости реакции на тик. Поэтому размещение бота и способ подключения к биржам выбирают вместе: схема запуска задаёт и архитектуру отказоустойчивости.
Ниже — три схемы, между которыми реально выбирают на старте и при масштабировании.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Облачный запуск | быстрый старт, небольшой оборот, редкие переобучения | зависимость от провайдера, сетевые задержки до площадок, ограничения на длительные расчёты |
| Собственная инфраструктура | чувствительность к задержке, требования к хранению данных и доступам | обновления, мониторинг и отказоустойчивость остаются на вас |
| Гибрид | торговое ядро рядом с площадкой, история сделок и обучение — в облаке | две среды, нужны общая конфигурация и сквозной мониторинг |
Подключение к биржам закрываем единым коннектором на CCXT: один интерфейс к десяткам площадок для ордеров, балансов и истории сделок. Добавить новую биржу — правка конфигурации, а не переписывание торгового ядра, поэтому диверсификация по площадкам не превращается в отдельный проект. Ключи держим в секретах с раздельными правами: торговля без вывода средств, лимиты на объём и частоту запросов.
Этапы работы: аудит стратегии, схема, настройка, проверка
Порядок этапов держим жёстким: пока правила стратегии не сведены к формальным условиям, ни схема интеграции, ни настройка бота не дадут предсказуемого результата. Ошибка, пропущенная на любом шаге, всплывает уже на боевом счёте, поэтому каждый этап закрывается проверяемым артефактом.
- Аудит стратегии: разбираем правила входа и выхода, рабочие таймфреймы, допустимую просадку и лимиты на позицию — переводим их в однозначные условия, которые код исполняет без трактовок.
- Схема интеграции: источник рыночных данных, модуль связи с биржей, хранение ключей доступа и разделение тестового и боевого контуров.
- Подготовка данных: чистим историю, восстанавливаем пропуски, учитываем комиссии и проскальзывание — без этого прогноз выглядит лучше, чем торговля.
- Настройка бота: расчёт сигнала, риск-менеджер, исполнитель ордеров, журнал сделок — каждый модуль проверяется отдельно.
- Проверка на тестовом контуре: сначала прогон на исторических данных, затем демо-счёт с реальным потоком котировок.
- Проверка отказов: обрыв связи, отклонённая заявка, резкий скачок цены — смотрим, как бот закрывает позиции и восстанавливает соединение.
- Передача под управление: панель с открытыми позициями, оповещения о сбоях, регламент ручной остановки.
На выходе — работающий AI-трейдинг-бот и понятный порядок действий на случай, если рынок поведёт себя нештатно.
Конфигурации, схемы интеграций и регламенты на выходе
Бот передаётся вместе с комплектом, по которому его можно сопровождать, проверять и передавать другой команде. Ниже — состав поставки по каждому направлению: конфигурация, схема интеграций, политики доступа к ключам и регламенты обновления.
- Конфигурация бота — файлы с перечнем торговых пар, лимитами объёма позиции, порогами срабатывания прогноза и режимом риска. Правки вносятся без изменения кода.
- Схема интеграций — диаграмма взаимодействия с торговыми площадками, источником рыночных данных, хранилищем истории, модулем прогноза и слоем исполнения заявок, с отмеченными точками отказа.
- Политики доступа к ключам — разграничение прав по площадкам, торговые права без вывода средств, ротация ключей, защищённое хранилище и журнал обращений.
- Документация по модели — какие признаки на входе, как считается прогноз, по каким метрикам оценивается качество и когда запускается переобучение.
- Регламент обновления и отката — контрольные снимки конфигурации и версии модели, порядок перехода на новую ветку и возврата к предыдущему набору параметров.
- Средства наблюдения — метрики задержки до площадки, доли отклонённых заявок, расхождения прогноза с фактом и оповещения в рабочий чат.
Комплект собирается по ходу работы, а не в конце: конфигурация и политики фиксируются до первых сделок, схема интеграций уточняется при подключении второй площадки, а регламент обновления проверяется на учебном откате.
Кейс: портфель на четырёх биржах — метрики до и после
Как вели портфель вручную
Портфель на четырёх биржах вёл один трейдер: сводил стаканы вручную, следил за расхождением цен между площадками и сам выставлял пары ордеров. Ночью и в моменты резких движений сигналы терялись — по журналу пропуск доходил до трети. Часть заявок уходила с ошибкой в объёме или по цене, которая успевала уйти за секунды между решением и вводом; разбор таких сделок и сверка балансов занимали часы каждую неделю.
Что изменили и что показали метрики
Исполнение перевели на единый слой доступа к биржам на CCXT вместо четырёх разрозненных наборов скриптов. Прогнозная модель считает вероятность движения и работает фильтром: сигнал уходит в исполнение, только если совпали модель, риск-лимиты и проверка ликвидности. Заявки идемпотентны по собственному идентификатору, а после обрыва связи бот сверяет фактические позиции с ожидаемыми и доводит их до целевых.
Ручных действий осталось два: правка лимитов и разбор недельного отчёта. Трейдер перестал быть узким местом — портфель работает в ночные часы и на всех четырёх площадках одновременно.
Что делать, если уже развёрнут классический трейдинг-бот?
Да, переписывать бота заново не нужно — прогнозную модель встраивают в уже работающий контур. Правила остаются исполнительным слоем: они держат соединение с биржей, считают позицию, соблюдают лимиты риска. Модель добавляется отдельным модулем и отвечает только на один вопрос — стоит ли вообще входить в сделку сейчас.
Разделение получается чистым: модель отдаёт вероятность движения по набору признаков — волатильность, режим рынка, поведение объёма, а правила переводят её в размер позиции, стоп и момент входа. Такой контур проще отлаживать. Если прогноз ошибается, сразу видно, на каком слое: признаки, сама модель или исполнение заявки.
Данные для обучения у вас уже есть — журналы сигналов и сделок самого бота. По ним восстанавливают историю решений и подшивают рыночные ряды за тот же период. Ключевое условие: признаки считаются тем же кодом, что и при реальной торговле, иначе модель учится на одном распределении, а видит другое, и качество на истории не переносится на живой счёт.
Вывод в работу идёт этапами, без остановки торговли. Сначала теневой режим: модель считает прогнозы и пишет их рядом с решениями правил, бот торгует как обычно. Когда накопленной статистики хватает, чтобы сравнить точность на одних и тех же условиях, долю капитала под модель увеличивают постепенно — от небольшой части до полной. Обратное переключение на правила делается одной настройкой.
Так доработка существующего бота не превращается в скачок: старая логика остаётся страховкой, пока новая не докажет качество на ваших данных и вашем режиме рынка.
Технические сомнения: задержки, риск, отказы, доступы
Заказчик перед запуском задаёт одни и те же инженерные вопросы: что произойдёт при обрыве канала до биржи, можно ли доверять прогнозу модели, какие права получает бот на счёте и как он ведёт себя при отказе. Ниже — короткие ответы по каждому пункту.
Общий принцип один: любое нештатное состояние переводит бота в консервативный режим — остановка новых входов и сокращение позиций по правилам стратегии, а не попытка «дожать» сделку.
Что происходит при обрыве связи с биржей?
Канал контролируется по времени ответа и частоте ошибок. При пропадании связи бот не отправляет новые заявки, а после восстановления сверяет фактическое состояние счёта с внутренним учётом. Расхождение фиксируется в журнале и закрывается повторной сверкой. Заявки, ушедшие до обрыва, отслеживаются по идентификаторам — потерянных позиций не остаётся.
Насколько надёжен прогноз модели?
Модель даёт оценку вероятности, а не гарантию. Качество проверяется на исторических данных без подглядывания в будущее, отдельно — на периоде, который модель не видела. В реальной торговле поверх сигнала работают ограничение размера позиции и обязательный защитный ордер. Если качество сигнала падает ниже порога, бот снижает объём или останавливает торговлю.
Какие права нужны боту на бирже?
Только торговые ключи, без права вывода средств. Средства остаются на биржевом счёте заказчика, и бот физически не может их вывести. Ключи хранятся в защищённом хранилище с ограниченным доступом. Отзыв ключа мгновенно лишает бота доступа и не затрагивает вывод средств.
Как бот ведёт себя при отказе?
Работают несколько независимых ограничений: предел потерь за день, лимит на число сделок и ручной «рубильник» для остановки торговли. При срабатывании любого из них позиции закрываются по правилам стратегии, а бот уходит в режим ожидания до подтверждения оператора. Каждое действие пишется в журнал с временем и причиной — разбор инцидента занимает минуты.
Обсудим стратегию и вернёмся с оценкой и планом
Чтобы оценка опиралась на данные, а не на ощущения, для старта достаточно нескольких вводных. Дальше мы разбираем логику входов и выходов, прогоняем её на исторических данных и только после этого называем состав работ и сроки.
Что прислать, чтобы мы начали считать:
- правила стратегии: условия входа и выхода, рабочий таймфрейм, список инструментов;
- площадки и типы счетов, на которых бот должен работать;
- текущий код, если он есть: репозиторий или архив, конфиги, логи последних запусков;
- как сейчас считаются риски: размер позиции, лимиты просадки, стоп-условия;
- требования к прогнозной модели: горизонт, набор признаков, допустимая задержка сигнала;
- ограничения инфраструктуры: где будет крутиться бот, есть ли доступ к серверам и ключам с правом торговли без вывода средств.
В ответ вы получаете схему взаимодействия модулей (сбор данных через CCXT, расчёт признаков, прогноз, исполнение ордеров), состав работ по этапам, план внедрения с точками контроля и оценку сроков. Если на истории заявленные правила не дают устойчивого результата, скажем об этом прямо и предложим скорректировать логику, а не подгонять отчёт под ожидания.
Опишите задачу — вернёмся с оценкой и планом.







