24 Августа 2026 · исследования

Почему моя бумажная стратегия совершает меньше сделок, чем бэктест?

Почему моя бумажная стратегия совершает меньше сделок, чем бэктест?

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

Практическое решение — представить ордера как долгоживущие объекты с состояниями и временными метками. Сигнал — это указание попытаться совершить сделку, а не свидетельство того, что сделка состоялась.

Почему у моей бумажной стратегии меньше сделок, чем в бэктесте?

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

Представим стратегию, которая выставляет лимитный ордер на покупку по $100 и отменяет его через 30 секунд. Рынок проходит по цене $100.00, но там торгуется лишь небольшой объём, а у других ордеров приоритет. Ваш ордер может исполниться частично или не исполниться вовсе. Бэктест, ориентированный на касание цены, зафиксирует полную позицию. Бумажный счёт с учётом очереди может не зафиксировать исполнение.

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

Что должен делать бэктест, если сигнал изменился до исполнения ордера?

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

Смоделируйте это как последовательность событий: сигнал меняется, стратегия отправляет запрос на отмену, площадка подтверждает отмену или сообщает об исполнении, и только после этого стратегия узнаёт итоговое состояние ордера. Даже простая фиксированная задержка может выявить гонки, которые бэктест с мгновенной отменой скрывает.

Для намеренно простой модели задержка отмены в 1 секунду и обработка при следующем событии могут быть полезнее, чем предположение о мгновенной отмене. Подходящая задержка зависит от площадки и системы; главное — вообще заложить задержку. Если ваш ордер рыночный и окна для отмены нет, та же проблема всё равно касается частичного исполнения и запоздавших отчётов.

Какие состояния ордеров должен фиксировать симулятор бумажной торговли?

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

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

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

Как корректно сравнить сделки бэктеста с бумажной торговлей?

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

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

Небольшой пример проясняет последовательность. Сигнал требует 10 единиц. Обе системы отправляют ордер в 10:00:00. Бэктест предполагает полное исполнение в 10:00:01. Бумажная торговля исполняет 4 единицы в 10:00:01, получает запрос на отмену в 10:00:02, а затем сообщает об исполнении ещё 2 единиц до подтверждения отмены в 10:00:03. Корректное сравнение: исполнено 6 единиц против 10, 4 отменены. Если свести всё к одной «сделке», теряется информация об экспозиции, которую стратегия фактически несла.

Нужен ли полноценный симулятор биржи, чтобы всё смоделировать правильно?

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

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

Есть в этой работе и небольшое удовольствие: хороший журнал ордеров может превратить загадочное расхождение в скучное объяснение. «Второй дочерний ордер исполнился после запроса на отмену» звучит убедительнее, чем «с бумажной торговлей что-то не так». Если бэктест и бумажный счёт расходятся, сначала проследите жизненный цикл ордера, а уже потом меняйте сигнал.

бумажная торговляуправление ордерамибэктестированиеисполнениеисследование стратегий
ПоделитьсяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Все статьи