Поиск по материалам

Глоссарий термин

Look-ahead bias

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

Что это значит

Look-ahead bias — когда стратегия в момент времени T использует информацию, которая в реальности появится только в T+1 или позже. На бэктесте это выглядит как магия: точные входы, минимальные просадки. На реальных данных стратегия мгновенно теряет 80–100% доходности.

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

Откуда просачивается

1. Сдвиг индексов в коде. Сигнал считается по close[i], но исполняется по open[i] вместо open[i+1]. Стратегия эффективно «знает» закрытие до того, как оно произошло.

2. Использование revised data. Макроэкономические показатели (ВВП, инфляция) публикуются с лагом и потом ревизируются. Если в бэктесте используется текущая (ревизованная) версия, стратегия знает то, что в реальном времени не знала бы.

3. Survivorship-bias через текущий индекс. Тестирование «топ-50 по капитализации сегодня» использует знание о том, кто выжил. Реальная стратегия 10 лет назад тестировала бы топ-50 тех времён.

4. Нормализация на полной серии. Если вы делаете z-score (x - mean) / std по всему ряду — для каждого момента стратегия использует среднее и std, посчитанные по будущим данным.

5. ML-модели обучены на данных, частично пересекающихся с тестом. Особенно опасно при кросс-валидации временных рядов «как обычные данные».

Как обнаружить

Что важно знать

Даже опытные разработчики допускают look-ahead-ошибки. Это не вопрос аккуратности — это структурная проблема, которую нужно решать архитектурно: фреймворк бэктеста должен передавать в стратегию данные строго до текущей точки, а не весь DataFrame.

Если результаты бэктеста кажутся слишком хорошими — почти всегда так и есть. Перед запуском денег ищите look-ahead до тех пор, пока не найдёте либо его, либо не убедитесь окончательно, что его нет.

Связанные понятия

Look-ahead bias — главный враг честного бэктеста. Walk-forward частично защищает, но не гарантирует.