Интеграция AI-трейдинг-бота с QUIK QLUA

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

AI-трейдинг-бот: где ломается исполнение сделок

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

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

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

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

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

Что даёт автоматизация торговли: эффект в метриках

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

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

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

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

Способы подключения торговой логики: сравнение вариантов

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

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

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

Порядок внедрения: от аудита стратегии до передачи

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

  1. Аудит стратегии и границ риска. Разбираем, на каких данных строится сигнал, где логика теряет устойчивость и какие лимиты по позиции, просадке и частоте сделок считаем допустимыми.
  2. Схема потоков и точек отказа. Фиксируем, откуда приходят котировки, где считается решение и как заявка попадает в торговый терминал QUIK через QLUA — включая поведение системы при обрыве связи.
  3. Сборка тестового контура. Изолированная копия рабочего окружения: та же маршрутизация заявок и те же лимиты, но без реального счёта — ошибки здесь ничего не стоят.
  4. Проверка на исторических данных. Прогон на нескольких режимах рынка — тренд, боковик, резкие движения; смотрим просадку, долю отклонённых заявок и расхождение с расчётной моделью.
  5. Ограничения и защиты. Аварийная остановка по дневному убытку, лимит на число сделок, блокировка при рассинхроне данных, журнал по каждому решению бота.
  6. Передача в эксплуатацию. Регламенты запуска и остановки, мониторинг и оповещения, разграничение доступов, инструкция для дежурного инженера.
  7. Сопровождение. Корректировки после смены волатильности, разбор инцидентов, пересмотр проверок перед каждым расширением лимитов.

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

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

  • Файлы конфигурации — список инструментов, ограничения по риску, расписание торговых сессий, пороги срабатывания сигналов. Правятся без пересборки: изменить лимит или отключить инструмент можно в рабочем порядке.
  • Схема интеграции — как бот связан с терминалом через QLua, какие события и таблицы он читает, где точки отказа и как ведёт себя при разрыве связи, зависании терминала или перезапуске.
  • Правила доступа и лимиты — разделение ролей, порядок выдачи и отзыва ключей, максимальная позиция на инструмент и дневной стоп. Снятие ограничения требует второго подтверждения, а не одного действия.
  • Журнал операций — каждое решение бота с основанием: вход, выход, размер, отклонённые сигналы. Выгрузка за любой период — чтобы разбирать спорные сделки по фактам, а не по памяти.
  • Регламент инцидентов — уровни сбоев, кто и за какое время реагирует, когда торговлю останавливают руками и как фиксируется результат разбора.
  • Инструкция по остановке и восстановлению — корректный сценарий снятия бота с торгов, проверки перед возвратом и откат к предыдущей рабочей конфигурации.
  • Порядок доработок — как передаются новые правила, как они проверяются на истории и как версионируются, чтобы изменения не переписывали друг друга.

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

Практика: как убрали потери на исполнении заявок

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

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

Метрика До После
Доля заявок с расхождением цены 0,7% 0,04%
Незакрытых сессий за неделю 11 0
Восстановление после обрыва связи 35–40 минут вручную 80–100 секунд автоматически
Сверка позиций с брокером раз в сутки, вручную каждые 5 секунд, автоматически

Что изменили

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

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

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

Технические сомнения перед стартом: коротко по существу

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

Какие права получает бот и можно ли ограничить риск?

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

Что происходит при обрыве связи с терминалом?

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

Как проверяется логика до реального счёта и кто её дорабатывает?

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

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

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

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

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

Что делать, если торговый бот уже развёрнут?

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

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

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

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

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

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

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

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