Четыре числа складываются в неприятную картину: Sharpe 1.4 в walk-forward тестировании, 312 исторических сделок, 46 сделок в бумажной торговле и разница между ценами исполнения в бумажной торговле и бэктесте в 18 базисных пунктов. В заголовок обычно попадает Sharpe. Но именно 18 базисных пунктов могут объяснить, почему стратегия ведёт себя иначе, пока истории бумажной торговли ещё недостаточно для оценки её результатов.
Walk-forward тестирование показывает, могла ли исследовательская процедура выбрать стратегию на основе прошлых данных и оценить её на более поздних. Бумажная торговля показывает, ведёт ли себя работающая система так же, как проверенный процесс, с учётом текущих данных, часов, логики ордеров и их исполнения. Вопросы связаны, но на второй нельзя автоматически ответить по результатам первого.
Что на самом деле подтверждает walk-forward валидация?
Предположим, вы обучаете модель или выбираете стратегию на данных за 6 месяцев, а затем оцениваете её на данных за следующий месяц. Сдвиньте окно вперёд и повторите. Если данные каждого тестового месяца не участвуют в соответствующем процессе отбора, такой тест даёт свидетельства о результатах стратегии в последовательности исторических условий.
Он не подтверждает, что бумажная торговля воспроизведёт те же решения или исполнение ордеров. В историческом тесте могут использоваться закрытые бары, фиксированная сетка комиссий и упрощённая модель рыночных ордеров. Работающий процесс бумажной торговли получает данные по мере их поступления и отправляет симулированные ордера по другому пути. Один процесс может быть корректным, а в другом — быть несоответствие.
Поэтому сами по себе 46 сделок в бумажной торговле против 312 в выборке walk-forward — ещё не повод выносить вердикт. Проверьте период сравнения, частоту сигналов, открытые позиции на границах периода и то, одинаково ли определена сделка в обоих подсчётах. За 6 недель бумажной торговли нельзя набрать столько же сделок, сколько за год скользящих тестов.
Почему разница в ценах исполнения так показательна?
Прежде чем анализировать кривую капитала в бумажной торговле, нужно разобраться со средней разницей в 18 базисных пунктов. Она измерена между предполагаемой ценой исполнения в бэктесте и ценой исполнения в симуляторе бумажной торговли или между средней ценой рынка в момент принятия решения и ценой исполнения в симуляторе? Это разные показатели. Фиксируйте отдельно цену в момент принятия решения, цену при поступлении ордера, цену симулированного исполнения, комиссии и возможные фандинговые платежи.
| Наблюдаемое расхождение | Что проверить в первую очередь | Почему это важно |
|---|---|---|
| Меньше сделок в бумажной торговле | Временные метки сигналов и правила допуска | Отсутствующий или запаздывающий ввод может не дать принять решение |
| Те же сделки, худшее исполнение | Тип ордера, спред, влияние на рынок и тариф комиссий | В бэктесте может предполагаться более дешёвый способ исполнения |
| Другие размеры позиций | Денежные средства, множитель контракта и округление | Небольшие расхождения в единицах измерения накапливаются при исполнении ордеров |
| Расхождение после перезапуска | Восстановленная позиция и ожидающие ордера | После перезапуска бумажная торговля может возобновиться из другого состояния |
Например, бэктест, в котором покупка происходит по цене открытия следующего бара, может дать результат, близкий к рыночному ордеру в бумажной торговле для ликвидного инструмента. Но если ордер в симуляторе поступает после резкого движения цены, расхождение будет включать и задержку с движением рынка, и стоимость исполнения. Если назвать все 18 базисных пунктов «проскальзыванием», причина останется скрытой.
Как сравнить бумажную торговлю с walk-forward тестированием?
Начните с решений, затем переходите к ордерам и исполнению. Для каждого решения в бумажной торговле повторно прогоните ту же версию стратегии на тех же исторических данных и сравните, какая информация была ей доступна в тот момент. Для корректного сравнения фиксируйте:
- Версию стратегии и параметры, включая окно отбора, по которому они были выбраны.
- Входные значения с указанием времени события и времени, когда они стали доступны.
- Сигнал, целевую позицию, текущую позицию и предлагаемый ордер.
- Ограничения для ордеров, комиссии, фандинг и подробности симулированного исполнения.
- Состояние денежных средств и позиции до и после исполнения.
Если сигналы расходятся, проверьте время поступления данных и версии кода. Если сигналы совпадают, а ордера отличаются, проверьте размер позиции, правила площадки и состояние портфеля. Если ордера совпадают, а исполнение отличается, проверьте допущения модели исполнения. Рассматривайте эти уровни по отдельности: иначе один показатель результатов может направить поиск причин не туда.
Когда расхождение говорит о том, что стратегия сломалась?
Когда весь конвейер работает одинаково, сравните результаты за достаточно длинный общий период и проверьте, соответствует ли поведение стратегии задуманному. Несколько сделок в бумажной торговле могут быстро выявить ошибку во временных метках или обработке ордеров. Но по ним нельзя надёжно судить, изменился ли средний доход стратегии. Для этого нужно достаточно наблюдений, а их необходимое количество зависит от шума и кластеризации доходности.
Могут измениться и рыночные условия. Расширение спреда или устойчиво неблагоприятный фандинг могут ухудшить результаты стратегии, даже если все решения совпадают. Это реальное изменение условий торговли, а не ошибка валидации. Чтобы различать эти случаи, фиксируйте издержки и риски одновременно с доходностью.
Walk-forward валидация даёт свидетельства о работе процесса отбора на исторических периодах. Бумажная торговля показывает, как работающая система ведёт себя в наблюдаемых условиях. Если результаты расходятся, сначала найдите самое раннее место, где записи перестают совпадать. Неожиданным числом часто оказывается не Sharpe, а небольшое расхождение в исполнении ордеров или данных, из-за которого эти эксперименты отвечают на разные вопросы.
← Все статьи


