Перейти к основному содержимому

Ограничения бэктестинга

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

Комиссии

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

Проскальзывание

Цена бэктеста — приближение. Реальный ордер может исполниться хуже из-за спреда, задержки, глубины книги, волатильности, размера и типа ордера.

TradeJS может записывать параметры исполнения и сравнивать воспроизведение с реальными исполнениями, но калибровать модель нужно по собственным ордерам и площадке.

Качество данных

В истории могут быть:

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

Проверяйте данные до интерпретации метрик.

Использование будущей информации

Look-ahead bias возникает, когда решение использует данные, недоступные в момент его принятия. Частые причины:

  • ещё не закрытая свеча;
  • контекст, ошибочно привязанный к будущей метке времени;
  • итог сделки среди признаков на момент сигнала;
  • попадание будущих меток в признаки ML.

Переобучение

Признаки переобучения:

  • слишком много параметров;
  • настройка на одном инструменте или коротком периоде;
  • выбор лучшего исторического окна после просмотра результатов;
  • отсутствие проверки вне выборки или walk-forward;
  • изменение риска после просмотра результатов.

Допущения об исполнении

Бэктест и реальное исполнение могут различаться, потому что:

  • ордер не исполнился;
  • задержка изменила цену;
  • стопы и цели обрабатываются площадками по-разному;
  • ликвидность исчезла;
  • коннектор отклонил или задержал действие.

Контрольный список

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

Хороший результат бэктеста — материал для дальнейшей проверки, а не обещание реальной доходности.