Торговые роботы для реального счёта
Разрабатываем торговые системы и алгоритмы исполнения, а также проводим аудит существующих роботов. Автоматизируем не только торговую логику, но и работу с заявками, ликвидностью, позициями, сбоями, восстановлением состояния, рисками и мониторингом.
T-Invest • Interactive Brokers • MOEX • Криптобиржи • MetaTrader 5 • API брокеров и бирж
С чего можно начать
Можно прийти с готовой стратегией, с задачей, для которой ещё нет алгоритма, или с уже работающей системой, которую нужно проверить.
Есть стратегия — нужен робот
Переведём торговую стратегию в формальные правила, спроектируем систему, реализуем интеграцию с брокером или биржей, протестируем и подготовим её к запуску.
- торговая логика
- заявки и исполнения
- управление позициями
- риск-ограничения
- журналирование и мониторинг
- тестовый и боевой режимы
Есть задача — нужен алгоритм
Если цель понятна, но готового алгоритма ещё нет, можем спроектировать саму логику решения: определить входные параметры, ограничения, правила принятия решений и поведение системы в разных рыночных ситуациях.
- алгоритмы исполнения
- управление ликвидностью
- распределение объёма
- выбор торговой площадки
- динамические правила работы с заявками
- другие формализуемые торговые и операционные задачи
Робот уже есть — нужен аудит
Проверим, что произойдёт не только в штатном сценарии, но и когда заявка исполнится частично, API перестанет отвечать, приложение перезапустится или состояние робота разойдётся с брокером.
- обработка заявок и частичных исполнений
- восстановление после сбоев и перезапуска
- сверка позиций с брокером
- защита от повторных операций
- контроль рыночных данных
- логирование, уведомления и аварийные сценарии
Робот работает. Но готов ли он к реальному счёту?
Большинство проблем начинаются не в торговой формуле, а вокруг неё: заявки исполняются частично, API не отвечает, приложение перезапускается, данные устаревают, а состояние робота расходится с брокером.
Аудит торгового робота — это проверка того, как система ведёт себя не только в идеальном сценарии, но и в ситуациях, которые неизбежно возникают при длительной работе с реальным брокерским или биржевым API.
Заявки и исполнения
Проверяем жизненный цикл заявки, частичные исполнения, отмены, ошибки API и ситуации, когда брокер получил поручение, а робот не получил подтверждение.
Состояние и восстановление
Проверяем, сможет ли робот корректно продолжить работу после перезапуска, загрузить своё состояние и сверить его с фактическим состоянием у брокера.
Позиции
Разделяем позиции самого робота и операции, которые пользователь мог совершить вручную. Робот не должен распоряжаться активами, которые не относятся к его стратегии.
Защита от повторных операций
Проверяем сценарии, при которых сетевой сбой или повторный запуск могут привести к дублированию заявок или позиции.
Рыночные данные
Проверяем актуальность цен, обработку отсутствующих или устаревших данных и поведение системы при проблемах с источником котировок.
Риски и ограничения
Проверяем лимиты капитала, размер позиции, доступность инструментов, запреты на повторный вход и другие ограничения между торговым сигналом и реальной заявкой.
Логи и мониторинг
Проверяем, можно ли понять, что произошло с системой, получить уведомление о критической ошибке и диагностировать проблему без изучения исходного кода.
Аварийные сценарии
Проверяем возможность остановить новые операции, закрыть позиции, отключить отдельные действия и безопасно вмешаться в работу системы.
Что именно можно проверить
Код и архитектура
Анализируем исходный код, структуру проекта, работу с API, хранение состояния, обработку ошибок, риск-ограничения, журналирование и другие части системы, которые влияют на её поведение в реальной торговле.
Подходит как базовый вариант проверки существующего робота.
Поведение системы
Если инфраструктура проекта позволяет, дополнительно проверяем поведение робота в рабочей среде: перезапуски, отключения API, восстановление соединения, сверку состояния, обработку заявок и другие контролируемые нештатные сценарии.
Объём такой проверки определяется индивидуально в зависимости от брокера, биржи, архитектуры и доступной тестовой среды.
Как проходит аудит
Знакомимся с системой
Определяем платформу, архитектуру, текущее состояние проекта, способ запуска и задачи, которые должен выполнять робот.
Проверяем критические сценарии
Изучаем код и поведение системы с точки зрения заявок, позиций, состояния, данных, рисков, сбоев и восстановления работы.
Формируем технический отчёт
Фиксируем найденные проблемы, их последствия, уровень критичности и рекомендации по исправлению.
Вы решаете, что делать дальше
Замечания можно исправить самостоятельно, передать своему разработчику или заказать доработку у Miriva.
Что вы получаете
Результат аудита — не устное мнение о коде, а структурированный технический отчёт.
Проблема, из-за которой систему нельзя безопасно запускать на реальном счёте без исправления.
Существенный риск, который необходимо устранить до нормальной длительной эксплуатации.
Техническая проблема, которая не обязательно блокирует запуск, но может привести к ошибкам или усложнить эксплуатацию.
Замечание по надёжности, поддерживаемости, диагностике или качеству реализации.
Для каждого существенного замечания указываем:
- где находится проблема
- при каком сценарии она проявляется
- к каким последствиям может привести
- что рекомендуется изменить
В итоговом выводе отдельно отмечаем, какие проблемы необходимо исправить до реального запуска, какие желательно доработать и какие не являются блокирующими.
Техническая надёжность ≠ прибыльность стратегии
Аудит отвечает на вопрос, корректно ли торговый робот реализует заданную логику и способен ли технически работать с реальным счётом. Он не является обещанием или оценкой будущей доходности торговой стратегии.
Даже технически безупречный робот не делает слабую торговую идею прибыльной.
После аудита
Заказчик получает отчёт и самостоятельно решает, как использовать результаты. Исправления можно выполнить своей командой или разработчиком. Если требуется, Miriva может отдельно оценить и выполнить необходимые доработки.
Обсудить аудит роботаТорговый робот для T-Invest API
Разработали для клиента автономного торгового робота под T-Invest API. Торговая стратегия и параметры системы конфиденциальны, поэтому здесь — только инженерная часть проекта.
Задача
Автоматизировать торговую стратегию клиента и подготовить систему к длительной автономной работе через брокерский API — не только к отправке торговых сигналов, но и к корректной работе с реальными заявками, позициями и сбоями.
Что было важно в реализации
- контроль состояний заявок
- обработка частичных исполнений
- сверка фактических позиций с брокером
- корректное восстановление после перезапуска
- разделение операций робота и ручных операций клиента
- контроль актуальности рыночных данных
- защита от повторных действий
- риск-ограничения
- журналирование и мониторинг состояния системы
Результат
Не отдельный скрипт торговой логики, а автономная система, рассчитанная на работу с реальным брокерским счётом и восстановление после нештатных ситуаций.
Торговую стратегию, параметры и результаты торговли клиента не публикуем.
Как мы смотрим на разработку торговых систем
Подробно разбираем инженерную и алгоритмическую сторону торговли в технических публикациях.
Торговый робот: что нужно для автономной работы с реальными деньгами
На примере реального проекта под T-Invest API: состояния заявок, частичные исполнения, позиции, восстановление после перезапуска, контроль данных, риск-ограничения и мониторинг.
Читать на HabrТорговля по паттернам с точки зрения алгоритмов
Как формализовать сходство участков рынка, искать похожие последовательности в исторических данных и проверять торговую гипотезу математическими методами.
Читать на HabrРазработка торговых систем и алгоритмов
От готовой торговой стратегии или исходной задачи — до формализованного алгоритма и работающей системы, интегрированной с брокером или биржей.
Разбираем задачу
Определяем цель системы, рынок, инструменты, входные данные, ограничения и критерии, по которым алгоритм должен принимать решения. Если торговая логика уже существует — формализуем её. Если нет — проектируем необходимый алгоритм под поставленную задачу.
Проектируем алгоритм
Формализуем правила принятия решений, состояния системы, ограничения и сценарии поведения так, чтобы логику можно было проверить и однозначно реализовать программно.
Проектируем систему
Определяем архитектуру, API брокера или биржи, работу с заявками и данными, хранение состояния, обработку ошибок и мониторинг.
Разрабатываем и тестируем
Реализуем торговую логику и проверяем не только штатный сценарий, но и граничные ситуации, ошибки API, сбои и восстановление работы.
Запускаем
Разворачиваем систему локально, на VPS или сервере заказчика, проверяем работу в выбранном режиме и при необходимости продолжаем сопровождение после запуска.
После запуска можем сопровождать проект, адаптировать его к изменениям API, стратегии или инфраструктуры и развивать следующими версиями.
Алгоритмы исполнения и управления ликвидностью
Не каждому торговому алгоритму нужно прогнозировать рынок. Иногда его задача — купить, продать или распределить нужный объём эффективнее, чем это можно сделать вручную.
Не обязательно приходить с готовым алгоритмом
Иногда у бизнеса есть не формализованная стратегия, а конкретная задача: исполнить большой объём, поддерживать необходимый запас актива, выбирать между несколькими площадками или динамически перераспределять заявки. В таком случае можем сначала разработать сам алгоритм принятия решений, а затем реализовать его программно.
Накопление ликвидности
Алгоритм может постепенно набирать необходимый актив пассивными лимитными заявками, управляя ценой и объёмом ордеров в зависимости от состояния стакана и требуемого остатка. Это позволяет не отправлять весь необходимый объём одной рыночной заявкой.
Пример: поддержание необходимого запаса стейблкоина для операционной деятельности.
Исполнение крупного объёма
Большую заявку можно разбивать на серию меньших ордеров и исполнять постепенно с учётом ликвидности и состояния рынка. Цель такого алгоритма — контролировать цену исполнения, проскальзывание и воздействие крупного объёма на рынок.
Пример: обмен крупного клиентского объёма без единовременного выхода всем объёмом в market.
Исполнение через несколько площадок
Если ликвидность распределена между несколькими биржами, алгоритм может учитывать доступные цены, глубину стаканов, остатки, ограничения и другие параметры и распределять исполнение между площадками.
Пример: один клиентский объём исполняется через несколько источников ликвидности.
Динамическое распределение крупного объёма между криптобиржами
Для операционной задачи с крупными криптовалютными объёмами была разработана логика, которая оценивала доступные площадки по нескольким параметрам и определяла, какую часть объёма направлять на каждую из них.
При принятии решения учитывались ликвидность и состояние стакана, спред, текущие заявки и фактическое качество исполнения. Вес каждой площадки мог изменяться, а объём перераспределялся, если реальное исполнение отличалось от ожидаемого.
Задачей алгоритма было не прогнозирование движения цены, а управление исполнением крупного объёма в меняющихся условиях рынка.
Алгоритм и код — не одно и то же
Разработку можно начать с самой логики: определить критерии, веса, ограничения и правила принятия решений. После проверки концепции алгоритм можно реализовать как торгового робота, отдельный сервис или часть существующей финансовой системы.
Кастомный алгоритм нужен не всегда
Если задачу полностью решают штатные инструменты биржи — например, готовый алгоритмический тип ордера — нет смысла писать собственную систему ради самой разработки. Кастомное решение оправдано, когда нужны свои правила исполнения, работа с несколькими площадками, управление остатками и рисками, интеграция с внутренними сервисами или другая логика, которой нет в стандартных инструментах.
Разработка алгоритма под конкретную торговую или операционную задачу не означает обещание разработать прибыльную торговую стратегию с нуля. Если задача связана с доходностью стратегии, её гипотезы должны проверяться отдельно на данных.
Рынки и интеграции
Работаем с брокерскими и биржевыми API, если платформа технически позволяет реализовать нужную торговую логику.
T-Invest и MOEX
Т-Инвестиции, БКС, Финам, Алор и другие брокерские API российского рынка.
Interactive Brokers
Акции, ETF, опционы, фьючерсы и другие инструменты через Interactive Brokers API.
Криптобиржи
Binance, OKX, Bybit и другие криптобиржи с подходящим API и необходимым доступом со стороны клиента.
MetaTrader и Forex
Торговые советники, индикаторы и автоматизация стратегий для поддерживаемых Forex-платформ.
Условия работы
Код, стратегия и ответственность должны быть разделены так же чётко, как торговая логика и исполнение.
Конфиденциальность
Торговая стратегия, исходный код и детали проекта остаются у заказчика. Не публикуем и не используем клиентскую торговую логику без разрешения. При необходимости работаем по NDA.
Гарантия на реализацию
Ошибки в нашем коде, которые воспроизводятся в рамках согласованной логики проекта, исправляем без отдельной оплаты. Новые функции, изменение стратегии или требований считаются отдельной доработкой.
Без обещаний доходности
Мы отвечаем за программную реализацию и техническую корректность системы, но не гарантируем прибыльность торговой стратегии. Не продаём «магическую кнопку заработка» и не подменяем инвестиционного советника.
Слабую торговую стратегию нельзя исправить красивым интерфейсом или качественным кодом — её можно только корректно реализовать и проверить.
Есть стратегия, задача исполнения или уже работающий робот?
Для первого разговора достаточно кратко описать рынок, платформу и задачу. Если робот уже существует — расскажите, на чём он написан и что именно хотите проверить или доработать.