Как написать техническое задание на торгового бота
Хорошее ТЗ не длинное. Оно точно отвечает на фиксированный набор вопросов, и его написание улучшит вашу стратегию раньше, чем кто-либо напишет строчку кода.
Инженеры Vizanix · об авторе
- РАЗДЕЛ
- Зачем и когда
- ОПУБЛИКОВАНО
- 2026-08-30
- ГЛАВ
- 5
- ЧИТАТЬ ДАЛЬШЕ
- 3
- ЯЗЫК
- написано на русском
Главный источник затрат и разочарования в проекте бота — неточное ТЗ. Хорошая новость в том, что достаточного хватает на две-три страницы, а само его написание — самая ценная неоплачиваемая работа, которую вы можете сделать.
На какие вопросы ТЗ обязано отвечать
Универсум. Какие инструменты и как определяется список? Фиксированный перечень или правило — топ N по обороту, выше порога ликвидности, без свежих листингов? Как часто пересчитывается?
Вход. Точное условие. Не идея. Каждый параметр назван со значением по умолчанию и допустимым диапазоном. Что дисквалифицирует сигнал, который в остальном подходит. Что делать, если два сигнала сработали по одному инструменту или по коррелированным в одном баре.
Объём. Как считается количество? От расстояния до стопа, от эквити, от фиксированного номинала? Каков максимум? Что делать, когда посчитанный объём ниже минимума биржи — пропустить или округлить вверх? (Правильный ответ — пропустить.)
Механика входа. По рынку или лимиткой? Если лимиткой — с каким смещением и сколько она живёт? Что при частичном исполнении? Что если не исполнится вовсе?
Выходы. Уровень стопа и как он считается. Цели — одна или несколько и какая доля на каждую. Трейлинг и от какой точки. Выход по времени? Что имеет приоритет, когда два условия выхода срабатывают одновременно?
Лимиты риска. Максимум одновременных позиций. Максимум экспозиции всего и по группам. Дневной лимит убытка — только реализованный или с нереализованным? Стоп по просадке. Что происходит при достижении лимита: прекратить входы или закрыть всё?
Эксплуатация. О чём вас должны уведомлять? Что можно менять без передеплоя? Кто может запускать и останавливать? Что бот делает при перезапуске, если позиция уже открыта?
Краевые случаи, которые упускают
Этот список существует потому, что каждый пункт стоил кому-то настоящих денег:
- На момент старта бота уже есть открытая позиция. Принять её, закрыть или отказаться стартовать?
- Биржа отклонила стоп после того, как вход исполнился. Повторить, закрыть позицию или алерт?
- Сигнал на выход срабатывает, пока входной ордер ещё висит.
- Инструмент делистят или останавливают торги, пока вы его держите.
- Фандинг рассчитывается посреди позиции — засчитывается ли он в дневной лимит убытка?
- Две стратегии хотят противоположные позиции по одному символу.
- Сигнал срабатывает во время пропуска данных, которого вы ещё не заметили.
- Эквити изменилось между сигналом и ордером настолько, что объём теперь неверен.
Напишите и критерии приёмки
Как обе стороны узнают, что бот корректен? Не «он зарабатывает» — это не программный критерий. Проверяемые утверждения:
- На такой исторической последовательности баров бот выдаёт ровно такие сигналы.
- При принудительном частичном исполнении остаток снимается, а брекет соответствует исполненному объёму.
- При принудительном обрыве связи с открытой позицией бот сверяется до постановки чего-либо нового.
- При пробитии дневного лимита убытка новых входов не происходит до следующей сессии.
- Kill switch закрывает все позиции за N секунд.
Это же становится списком учений на testnet. И это то, что делает спор разрешимым, что выгодно обеим сторонам.
Чего не надо туда класть
- Выбор реализации. Какой язык, какая библиотека, какая база. Скажите, что система должна делать; как — пусть решает разработчик, если у вас нет реального ограничения.
- Ожидаемую доходность. Это не программное требование, и по нему нельзя принять работу. См. почему никто честный не гарантирует прибыль.
- Мечтательные функции. «А потом, может быть, машинное обучение.» Либо это в объёме, либо нет; наполовину описанные будущие функции искажают архитектуру и цену.
Короткий путь, если застряли
Запишите, что вы делаете руками, по порядку, как будто инструктируете кого-то делать это за вас, пока вы месяц в отъезде. Потом пройдитесь и отметьте каждое место, где написали слово вроде «сильный», «хороший», «обычно» или «если выглядит правильно».
Каждая такая отметка — это решение, которое вы принимали не замечая. Превращение их в числа и есть техническое задание, и это же та часть, которая улучшает вашу торговлю независимо от того, построите вы бота или нет.
Статья описывает инженерную практику. Это не инвестиционная рекомендация. Vizanix разрабатывает программное обеспечение и не обещает торговую доходность.