15 Сентября 2026 · исследования

Модель проскальзывания в бэктесте должна ошибаться намеренно

Модель проскальзывания в бэктесте должна ошибаться намеренно

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

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

Почему точная оценка проскальзывания может вводить в заблуждение?

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

Тем не менее проскальзыванию можно присвоить число. Например, исполнить ордер по цене открытия следующего бара плюс фиксированная стоимость в базисных пунктах или масштабировать стоимость пропорционально отношению размера ордера к объёму бара. Это полезные приближения, но не наблюдения. Запись «проскальзывание: 3.2 базисных пункта» выдаёт выбор модели за результат измерения.

Рассмотрим пример. Стратегия совершает сделки на $20,000 за ордер с акциями, объём которых на следующем баре равен $400,000. Доля участия в объёме — 5%. При модели со стоимостью 2 базисных пункта каждый ордер обходится в $4, а при 10 базисных пунктах — в $20. За 500 сделок туда-обратно разница составит $16,000 без учёта комиссий. Если валовая прибыль стратегии в бэктесте — $18,000, допущение об исполнении влияет на результат почти так же сильно, как торговый сигнал.

5%размер ордера относительно объёма следующего бара
$16,000разница в стоимости за 500 сделок туда-обратно при 2 и 10 базисных пунктах

Задайте диапазон с учётом возможностей данных

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

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

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

Это не доверительные интервалы, если вы не калибровали их статистически. Это сценарные проверки. Укажите в отчёте, что они означают, и не сводите их к выдуманному «ожидаемому проскальзыванию», если у вас нет данных о вероятностях этих сценариев.

Учитывайте параметры ордера в модели

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

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

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

Полезный вопрос: при каком спреде, влиянии на рынок, задержке или доле участия чистая доходность становится нулевой? Такая точка безубыточности часто полезнее, чем Sharpe из одного бэктеста.

Сужайте диапазон с помощью бумажной торговли

Бумажная торговля не покажет, как исполнился бы ордер в реальном движке сопоставления заявок. Но она позволяет проверить, похож ли поток ордеров из бэктеста на реальные решения системы: когда формируются ордера, каков их размер и как долго они остаются актуальными.

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

Критики справедливо замечают, что неблагоприятные сценарии могут быть произвольными. Чрезмерно суровая модель способна отвергнуть жизнеспособную стратегию так же, как благоприятная может приукрасить слабую. Поэтому не объявляйте самый суровый сценарий истиной. Публикуйте допущения, показывайте чувствительность и собирайте данные, которые позволят заменить догадки калиброванными оценками.

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

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