В машинном обучении для финансовых рынков есть проблема, которая может сделать даже очень красивый backtest недостоверным: модель способна случайно получить информацию, которой в момент принятия решения ещё не существовало.
Мы отдельно разобрали эту тему в публикации для широкой аудитории — «Почему торговый ИИ-бот может ошибочно „знать будущее“ - и как этого избежать». В ней простым языком объясняется, что такое временная утечка данных, почему обычного разделения истории на обучение и тестирование иногда недостаточно и зачем нужны point-in-time данные — то есть данные в том виде, в каком они действительно были доступны в тот исторический момент.
Для Tantoryn AI эта тема имеет практическое значение.
В ходе подготовки данных и проверки ML-системы мы дополнительно пересмотрели принцип, по которому информация становится доступной модели. Для корректного исторического эксперимента важно учитывать не только то, к какой дате относится показатель, но и то, когда он действительно мог быть известен системе.
Это особенно важно для данных, которые публикуются с задержкой, могут пересматриваться позднее или рассчитываются по ещё не завершившемуся периоду.
Поэтому при подготовке исторических данных мы придерживаемся простого правила:
если в момент принятия решения информация ещё не существовала, модель не должна видеть её и в историческом тесте.
Такой подход может сделать результаты менее эффектными на бумаге, но одновременно делает проверку системы более строгой и приближенной к реальным условиям.
Для Tantoryn AI это часть более общего принципа разработки: сначала убедиться, что эксперимент построен корректно, и только после этого оценивать качество машинного обучения.
Мы продолжаем применять этот подход при подготовке данных и дальнейшей проверке ML-компонентов проекта.