Торговые роботы для реального счёта
Разрабатываем торговые системы и алгоритмы исполнения, а также проводим аудит существующих роботов. Автоматизируем не только торговую логику, но и работу с заявками, ликвидностью, позициями, сбоями, восстановлением состояния, рисками и мониторингом.
T-Invest • Interactive Brokers • MOEX • Криптобиржи • MetaTrader 5 • API брокеров и бирж
С чего можно начать
Можно прийти с готовой стратегией, с задачей, для которой ещё нет алгоритма, или с уже работающей системой, которую нужно проверить.
Есть стратегия — нужен робот
Переведём торговую стратегию в формальные правила, спроектируем систему, реализуем интеграцию с брокером или биржей, протестируем и подготовим её к запуску.
- торговая логика
- заявки и исполнения
- управление позициями
- риск-ограничения
- журналирование и мониторинг
- тестовый и боевой режимы
Есть задача — нужен алгоритм
Если цель понятна, но готового алгоритма ещё нет, можем спроектировать саму логику решения: определить входные параметры, ограничения, правила принятия решений и поведение системы в разных рыночных ситуациях.
- алгоритмы исполнения
- управление ликвидностью
- распределение объёма
- выбор торговой площадки
- динамические правила работы с заявками
- другие формализуемые торговые и операционные задачи
Робот уже есть — нужен аудит
Проверяем, корректно ли робот реализует задуманную торговую логику, почему результаты бэктеста могут отличаться от реальной торговли, нет ли критических ошибок реализации и управления рисками, не содержит ли код неожиданного или небезопасного поведения и готова ли система технически к работе с реальными деньгами.
- торговая логика и её реализация
- расхождения бэктеста и реальной торговли
- управление рисками и позициями
- безопасность кода и неожиданное поведение
- исполнение заявок
- надёжность после сбоев, переподключений и перезапусков
Робот работает. Но готов ли он к реальному счёту?
Аудит отвечает на понятные владельцу робота вопросы: правильно ли реализована торговая логика, можно ли доверять результатам бэктеста, безопасен ли код и готова ли система к длительной работе на реальном счёте.
Разбираем робота по четырём направлениям — от соответствия кода заявленной стратегии до поведения системы в нештатных ситуациях, которые неизбежно возникают при работе с реальным брокерским или биржевым API.
Корректно ли робот реализует заданную стратегию?
Проверяем, действительно ли исходный код соответствует описанной торговой логике, а не только внешне повторяет её.
- соответствие кода описанной логике
- условия входа и выхода
- состояние позиции и жизненный цикл сделки
- stop-loss, take-profit и трейлинг
- расчёт объёма и размера позиции
- повторные и дублирующиеся входы
- пропущенные сигналы
- граничные условия и крайние случаи
- некорректные переходы состояний
- иные ошибки реализации, меняющие поведение
Аудит проверяет корректность реализации стратегии, а не прибыльность самой торговой идеи.
Можно ли доверять результатам бэктеста?
Разбираемся, почему робот хорошо выглядит в тестере, но иначе ведёт себя в реальной торговле, и почему результаты расходятся между брокерами и средами тестирования.
- спред и комиссии
- проскальзывание
- допущения об исполнении заявок
- исторические данные и их качество
- допущения модели и текущий бар
- возможное заглядывание в будущее (look-ahead)
- особенности конкретного брокера
- проблемы, связанные с оптимизацией
- расхождения тестера и реального исполнения
Цель — найти технические и методологические причины, по которым результаты тестов могут не соответствовать реальным условиям, а не спрогнозировать будущую доходность.
Безопасен ли исходный код для запуска?
Отвечаем на практический вопрос: «Робота разработал кто-то другой — можно ли безопасно подключать его к реальному торговому счёту?» Это не полноценный аудит информационной безопасности, а практическая проверка поведения кода.
- внешние сетевые запросы
- использование WebRequest
- внешние сервисы и endpoints
- DLL-зависимости
- доступ к файловой системе
- обращение с API-ключами и учётными данными
- неожиданная передача данных
- неожиданные торговые операции
- скрытые ограничения и лицензионные механизмы в коде
- иное поведение, не требующееся для заявленной логики
Такой анализ возможен только при наличии исходного кода и необходимых материалов проекта.
Готова ли система к реальной эксплуатации?
Проверяем инженерную надёжность — как робот ведёт себя при сбоях, перезапусках и рассинхронизации с брокером во время длительной работы.
- жизненный цикл заявки
- частичные исполнения
- отклонённые и отменённые заявки
- дублирующиеся операции
- поведение API брокера или биржи
- переподключения и перезапуски
- восстановление внутреннего состояния
- сверка состояния с позициями и заявками у брокера
- устаревшие или отсутствующие рыночные данные
- риск-контроль и аварийная остановка
- логи и диагностика
Здесь сохраняется вся инженерная глубина проверки: поведение системы в нештатных сценариях, а не только в идеальном.
Когда аудит имеет смысл
Если вам знакома одна из этих ситуаций, аудит поможет понять, что происходит с роботом на самом деле.
Как проходит аудит
Знакомимся с системой
Определяем платформу, архитектуру, текущее состояние проекта, способ запуска и задачи, которые должен выполнять робот.
Проверяем критические сценарии
Изучаем торговую логику, код, тестирование и поведение системы: сигналы и сделки, заявки и позиции, риски, данные, сбои и восстановление работы.
Формируем технический отчёт
Фиксируем найденные проблемы, их последствия, уровень критичности и рекомендации по исправлению.
Вы решаете, что делать дальше
Замечания можно исправить самостоятельно, передать своему разработчику или заказать доработку у Miriva.
Что вы получаете
Результат аудита — не устное мнение о коде, а структурированный технический отчёт.
Проблема, из-за которой систему нельзя безопасно запускать на реальном счёте без исправления.
Существенный риск, который необходимо устранить до нормальной длительной эксплуатации.
Техническая проблема, которая не обязательно блокирует запуск, но может привести к ошибкам или усложнить эксплуатацию.
Замечание по надёжности, поддерживаемости, диагностике или качеству реализации.
Для каждого существенного замечания указываем:
- что именно обнаружено
- где находится проблема
- при каком сценарии она проявляется
- к каким последствиям и рискам может привести
- что рекомендуется изменить или проверить
В итоговом выводе отдельно отмечаем, какие проблемы необходимо исправить до реального запуска, какие желательно доработать и какие не являются блокирующими. Заказывать доработку у Miriva при этом не обязательно: замечания можно исправить самостоятельно, передать своему разработчику или, при желании, поручить 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.
Гарантия на реализацию
Ошибки в нашем коде, которые воспроизводятся в рамках согласованной логики проекта, исправляем без отдельной оплаты. Новые функции, изменение стратегии или требований считаются отдельной доработкой.
Без обещаний доходности
Мы отвечаем за программную реализацию и техническую корректность системы, но не гарантируем прибыльность торговой стратегии. Не продаём «магическую кнопку заработка» и не подменяем инвестиционного советника.
Слабую торговую стратегию нельзя исправить красивым интерфейсом или качественным кодом — её можно только корректно реализовать и проверить.
Есть стратегия, задача исполнения или уже работающий робот?
Для первого разговора достаточно кратко описать рынок, платформу и задачу. Если робот уже существует — расскажите, на чём он написан и что именно хотите проверить или доработать.