Ограничения бэктестинга
Бэктесты полезны для исследования, проверки и сравнения стратегии при явных допущениях. Они не доказывают будущую доходность.
Комиссии
Каждая сделка может нести биржевую или брокерскую комиссию. Стратегия с частыми небольшими сделками способна выглядеть приемлемо до комиссий и убыточно после них. Используйте тариф выбранной площадки и уровня счёта.
Проскальзывание
Цена бэктеста — приближение. Реальный ордер может исполниться хуже из-за спреда, задержки, глубины книги, волатильности, размера и типа ордера.
TradeJS может записывать параметры исполнения и сравнивать воспроизведение с реальными исполнениями, но калибровать модель нужно по собственным ордерам и площадке.
Качество данных
В истории могут быть:
- пропущенные или дублирующиеся свечи;
- неверный объём;
- особенности сопоставления символов у поставщика;
- ошибки временной зоны и выравнивания меток;
- отсутствующий контекст деривативов, глобального рынка или блокчейна.
Проверяйте данные до интерпретации метрик.
Использование будущей информации
Look-ahead bias возникает, когда решение использует данные, недоступные в момент его принятия. Частые причины:
- ещё не закрытая свеча;
- контекст, ошибочно привязанный к будущей метке времени;
- итог сделки среди признаков на момент сигнала;
- попадание будущих меток в признаки ML.
Переобучение
Признаки переобучения:
- слишком много параметров;
- настройка на одном инструменте или коротком периоде;
- выбор лучшего исторического окна после просмотра результатов;
- отсутствие проверки вне выборки или walk-forward;
- изменение риска после просмотра результатов.
Допущения об исполнении
Бэктест и реальное исполнение могут различаться, потому что:
- ордер не исполнился;
- задержка изменила цену;
- стопы и цели обрабатываются площадками по-разному;
- ликвидность исчезла;
- коннектор отклонил или задержал действие.
Контрольный список
- проверьте сделки на графике и в журнале;
- убедитесь в непрерывности истории;
- учтите реалистичные комиссии;
- смоделируйте или измерьте проскальзывание;
- проверьте несколько периодов, инструментов и рыночных режимов;
- сравните бэктест, воспроизведение и реальное поведение;
- используйте консервативный размер позиции и ограничения риска.
Хороший результат бэктеста — материал для дальнейшей проверки, а не обещание реальной доходности.