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

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

Какая задача решается учётом помимо сделок

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

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

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

Что записывать: шаги с параметрами

  1. В журнале сделок — время решения и время исполнения, сторона, тип заявки, цена заявки, цена исполнения, объём, комиссия, идентификатор сделки.
  2. В журнале версий — номер версии, дата и время правки, изменённый параметр, прежнее и новое значение, причина правки.
  3. В журнале состояний — начало и конец каждой остановки.
  4. Туда же — сбои связи, отклонённые заявки, смена источника данных, смена ключей доступа.
  5. При оценке соедините три журнала по времени и разбейте период на отрезки по версиям.
  6. Считайте результат по каждому отрезку.

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

Расчёт на примере периода

Условный бот делает 20 сделок в сутки, за квартал это около 1 800 строк журнала. За тот же квартал — 6 правок настроек, 2 замены источника данных и 4 периода остановки общей длительностью девять суток. Десять строк в двух дополнительных журналах делят 1 800 строк на сопоставимые отрезки. Без них весь квартал считается одной выборкой, где доля самой долгой версии может не превышать трети. Цифры условные.

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

Что записывать Обязательные поля Зачем при оценке Что ломается без записи
Сделка Время решения и исполнения, цена заявки и исполнения, объём, комиссия Считать результат правил и издержки отдельно Проскальзывание растворяется в цене сделки
Версия настроек Номер версии, дата и время, изменённый параметр, прежнее и новое значение Относить сделки к конкретной конфигурации Статистика склеивает несопоставимые выборки
Период остановки Начало, конец, причина остановки Исключать простои из знаменателя и видеть пропущенные движения Доходность считается за срок, в котором бот не торговал
Сбой или смена доступа Время, тип события, затронутые заявки Отличать ошибку исполнения от ошибки правил Технические убытки списываются на стратегию

Как состав записей описан в профессиональных требованиях

Состав обязательных полей по заявкам прописан довольно подробно, и этот перечень полезен как образец. Правило 613 Регламента NMS в редакции Свода федеральных правил США, доступной на 18 октября 2026 года, относит к существенным условиям заявки символ бумаги, тип инструмента, цену, размер отображаемый и неотображаемый, сторону сделки, тип заявки, признак открытия или закрытия позиции и срок действия. Тот же документ требует хранить сведения центрального репозитория не менее пяти лет.

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

Изменения параметров регулируются отдельно. Делегированный регламент Европейской комиссии 2017/589 применяется с 3 января 2018 года: статья 11 требует, чтобы существенному изменению в рабочей среде предшествовала проверка назначенным лицом, а любое изменение функциональности доводилось до трейдера, комплаенса и риск-функции. Статья 28 того же регламента обязывает хранить записи заявок при высокочастотной технике пять лет с даты отправки. Правка — не запись в дневнике. Это документированное изменение объекта оценки.

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

Ошибки, из-за которых учёт не помогает

  • Правки фиксируются числом, без времени.
  • Записана новая величина параметра, а прежняя — нет.
  • Периоды остановки не отмечены, и простой попадает в знаменатель.
  • Журналы лежат в разных форматах и не соединяются по времени.
  • Причина правки не указана, и повторить решение нельзя.
  • Экспорт сделок берётся из интерфейса сетки заявок без цены решения, и расчёт издержек становится неполным.

Итог

Учёт — не отчётность для кого-то, а условие осмысленности оценки. Три журнала. Одна связка по времени. Заводятся они один раз, заполняются минутами, а дают возможность сказать не «бот прибыльный», а «версия пятая на таком-то режиме рынка за такой-то срок дала такой-то результат при таких-то издержках». Это касается и обычных пар, и традиционных активов на криптобирже, где к журналу остановок добавляется расписание сессий. Первая формулировка ничего не значит. Вторая проверяема и годится как основание для следующего решения о параметрах.

Материалы по теме

Частые вопросы

Хватит ли выгрузки сделок с площадки?

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

Как нумеровать версии настроек?

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

Нужно ли записывать неисполненные заявки?

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

Сколько хранить записи?

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

Вердикт

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

Разборы по учёту и оценке ботов — в Telegram-канале Cryptium.

Первоисточники: правило 613 Регламента NMS о сводном журнале заявок и делегированный регламент Европейской комиссии 2017/589 об изменениях и записях.