Look-ahead Bias — временная ошибка оценки, при которой информация, доступная лишь позднее, используется для более раннего решения, обучения или выбора правила. Само по себе последующее измерение результата уже сделанного прогноза такой ошибкой не является.
QuantConnect описывает Look-ahead Bias как принятие решений с информацией, которая станет доступна лишь позже. Поэтому наш контрольный вопрос таков: что процедура действительно могла знать в момент этого решения? Недостаточно того, что данные относятся к тому же календарному дню. Время события, публикации, получения и отправки заявки может различаться. Для каждого входного значения нужно подтвердить его доступность и порядок операций; правильно отсортированная таблица сама по себе этого не доказывает. [QuantConnect — Custom Securities: Avoid Look-Ahead Bias]
Временная модель LEAN передаёт завершённую точку данных согласно её EndTime. Наш вывод: окончательная цена закрытия, максимум, минимум и объём всего периода не должны определять более раннее решение внутри этого периода. При нескольких таймфреймах каждому ряду нужно собственное правило доступности. Сдвиг строки может исправить конкретную ошибку, но не заменяет проверку часовых поясов, завершения периода и задержек источника. Использование уже известного предыдущего значения отличается от использования будущего окончательного значения текущей незавершённой свечи. [QuantConnect — Time Modeling: Timeslices]
Документация FRED различает сведения о прошлом, доступные сегодня, и сведения, известные в исторический период; ALFRED позволяет выбрать соответствующий период доступности. Наше методологическое требование: при работе с показателем, исправленным позднее, нужно сохранить доступную тогда версию и время её публикации. Дата экономического периода не заменяет дату выпуска. Даже историческая версия сама по себе не подтверждает точную доступность внутри дня; её нужно проверять отдельно. Позднейшую поправку нельзя незаметно подставлять в более раннее решение. [Federal Reserve Bank of St. Louis — FRED API Real-Time Periods]
scikit-learn требует обучать преобразования только на обучающих данных, а затем применять то же обученное преобразование к тестовым. Наша временная проверка охватывает нормализацию, заполнение пропусков, отбор признаков и целевые значения для обучения. Результат будущего периода можно использовать для последующей оценки прогноза; его нельзя использовать для более раннего создания этого прогноза или выбора правила. При постоянном переобучении в обучение могут попадать только целевые значения, уже известные на соответствующий момент. [scikit-learn — Common Pitfalls: Data Leakage]
TradingView объясняет, что его эмулятор брокера при работе с историческими данными OHLC использует предположения о движении внутри свечи. Наше разграничение: зафиксированные максимум и минимум сами по себе не определяют фактическую последовательность всех цен и заявок. Тест должен разделять возникновение сигнала, отправку заявки и возможное исполнение. Выбор входа или выхода по экстремуму, известному лишь позднее, — иная проблема, чем просто оптимистичная модель издержек. Более подробные данные могут уточнить проверку, но не гарантируют реальное исполнение. [TradingView — Strategies: Broker Emulator and Lookahead Bias]
Freqtrade сравнивает результаты повторных тестов и изменения индикаторов или сигналов; он также обращает внимание на доступ к будущим строкам и агрегирование по всей таблице. Поэтому наш аудит исследует не только синтаксис сдвига, но и происхождение каждого вычисления. Документация прямо ограничивает проверку сигналами, сработавшими в тесте. Отсутствие замечаний инструмента не подтверждает корректность непроверенных ветвей. Результат нужно читать вместе с покрытием и настройками симуляции; некоторые конфигурации лимитных заявок могут давать ложные срабатывания. [Freqtrade — Lookahead Analysis]
TradingView отличает Look-ahead Bias от Overfitting — подгонки правил под конкретные данные разработки. Наш вывод: даже допустимый по времени тест может быть результатом обширного поиска победителя. И наоборот, простое правило может содержать утечку будущей информации. После исправления нужно пересчитать результаты и зафиксировать изменение; сохранять исходный прибыльный отчёт нельзя. Разница между историческим и последующим результатом сама по себе не показывает, была ли причиной временная ошибка, изменение рынка или другое допущение. [TradingView — Strategies: Broker Emulator and Lookahead Bias]
NFA подчёркивает различие между гипотетическими результатами и реальной торговлей. Поэтому наша воспроизводимая запись включает версии данных и правил, момент доступности входных значений, состояние счёта, последовательность заявок и описанные издержки. Аудит должен уметь воспроизвести решение только на основе доступной тогда информации. Paper Trading может дать дополнительные текущие записи, но само по себе не гарантирует правильную подготовку данных или реальную ликвидность. Устранение доказанной ошибки не обещает будущей доходности. [NFA — Use of Promotional Material Containing Hypothetical Performance Results]
Прибыль от знания будущего не является доступной стратегией
Для полной картины прочитайте эту статью вместе с Backtesting, Overfitting, Walk-forward Analysis, Survivorship Bias, Paper Trading. На эту статью также ссылаются Walk-forward Analysis, Overfitting, Survivorship Bias, On-chain Analysis.
01Достаточно ли сдвинуть все индикаторы на одну строку?+
Нет. Сдвиг может устранить конкретное использование будущего значения, но не решает автоматически вопросы часовых поясов, задержанных публикаций, пересмотров и подготовки данных. Важна подтверждённая доступность каждого входного значения на соответствующий момент.
02Всегда ли использование будущего результата при оценке является ошибкой?+
Нет. Результат, узнанный позднее, необходим для оценки ранее сделанного прогноза. Ошибка возникает, если эта будущая информация попадает в более раннее решение, обучение или выбор правила для такого прогноза.