Бэктестинг без самообмана
Историческая симуляция — инструмент исследования, а не машина времени и не обещание результатов в реальной торговле.

Зафиксируйте правила до знакомства с результатом
Бэктест воспроизводит сделки на исторических данных по заранее заданным правилам. Он помогает проверить, согласуется ли гипотеза с наблюдениями, и обнаружить её слабые места. Но если после каждой убыточной сделки менять условия входа или выхода, получится не проверка стратегии, а объяснение уже известного прошлого. Воспроизвести такую логику без знания результата невозможно.
Вначале опишите набор инструментов, период исследования, условия входа и выхода, расчёт размера позиции и модель издержек. Определите, когда информация становится доступной и когда заявка впервые могла исполниться. Стратегия, основанная на цене закрытия, обычно не может без дополнительных обоснований предполагать, что заранее знала окончательную цену закрытия и исполнила сделку точно по ней.
Полезно вручную разобрать несколько сделок до массового запуска. Для каждой восстановите цепочку: время публикации исходных данных, момент расчёта сигнала, отправку заявки и первую доступную цену исполнения. Отдельно проверьте часовой пояс, переход торговой даты и задержки обновления данных. Ошибка в одном из этих звеньев может создать преимущество, которого нет в самом правиле.
Следите за утечкой будущей информации в прошлое
Смещение из-за использования будущей информации возникает, когда симуляция использует сведения, недоступные в момент решения. Примеры — пересмотренные экономические данные, более позднее объявление прибыли или будущий состав индекса. Историческая база может быть совершенно точной сегодня, но непригодной для восстановления того, что человек действительно знал на более раннюю дату.
Ошибка выжившего возникает, когда из исторической выборки выпадают инструменты, которые не дожили до сегодняшнего дня. Стратегия, проверенная только на существующих сегодня компаниях, может упускать банкротства, делистинги и поглощения, влиявшие на исторический набор возможностей. То же происходит с провалившимися криптотокенами или закрытыми фондами. Укажите, как в данных учтены такие события и по какой цене закрываются соответствующие позиции. Просто удалить неудобные записи — значит изменить проверяемую историю.
Согласуйте ряды цен с учётом денежных потоков. Если доходность уже включает дивиденды, повторное зачисление тех же дивидендов на счёт завысит результат. Если цены скорректированы на дробление, количество акций и абсолютные ценовые пороги должны быть приведены к совместимому масштабу. Проверка нескольких корпоративных событий вручную часто полезнее ещё одного знака после запятой в итоговой доходности.
Моделируйте исполнение без скидок на реальность
Если цена на графике коснулась уровня лимитной заявки, это ещё не означает, что заявка была бы исполнена полностью. Важны очередь, доступный объём и траектория внутри свечи. Если в одном баре достигнуты и стоп, и цель, сам бар может не показать последовательность. Рассматривайте такую неоднозначность консервативно или используйте данные, позволяющие установить порядок событий.
Учтите спред, комиссии, стоимость финансирования, при необходимости — заимствования актива, а также реалистичное проскальзывание. Налогообложение зависит от юрисдикции и обстоятельств, поэтому общая симуляция должна указывать, приведены ли результаты до налогов, а не выдумывать универсальную ставку. Сравните результаты при нескольких предположениях об издержках. Метод, успешный лишь при бесплатном и мгновенном исполнении, неустойчив.
Отделяйте поиск от оценки
Если проверить сотни сочетаний параметров и показать только лучшее, результат окажется смещённым из-за самого способа отбора. Некоторая комбинация может выглядеть превосходно случайно. Отложите данные, не использованные при разработке правила, и не обращайтесь к ним снова и снова, превращая их в очередную обучающую выборку. Последующая учебная торговля на новых данных даёт другую проверку: правила уже зафиксированы, а будущие наблюдения ещё неизвестны.
В отчёте показывайте не только удачную кривую капитала, но и неудачные варианты, размер выборки, даты и число проведённых экспериментов. Проверяйте, ведут ли соседние значения параметров себя сходно или всю прибыль даёт единственная изолированная настройка. Гипотетические результаты остаются гипотетическими даже при точности таблицы до нескольких знаков. Ликвидность, эмоции и операционные проблемы не воспроизводятся исторической арифметикой полностью.
В исследовательском журнале сохраняйте версии данных и историю изменений расчёта. Исправление ошибочной поправки на дробление акций или добавление пропущенного делистинга может существенно изменить итог. В отчёте должны остаться и прежний результат, и причина пересчёта. Воспроизводимость означает, что другой человек может восстановить тот же ответ по указанным данным и правилам. Это не означает экономической полезности ответа, но без неё трудно установить, существует ли эта полезность вообще.
Проверьте не только отдельные сделки, но и движение капитала. Одновременно открытые позиции используют общий счёт: нельзя каждой из них предоставлять весь стартовый капитал, а затем складывать прибыли. Задайте правила распределения свободных средств, обработки одновременных сигналов и закрытия позиций при нехватке обеспечения. Сопоставляйте стратегию с простым ориентиром при одинаковом учёте денежных потоков и издержек, а не только по конечной сумме прибыли.