13 Октября 2026 · исследования

Ваш бэктест показал преимущество в 20%. Сколько в нём заслуги одной неверной временной метки?

Ваш бэктест показал преимущество в 20%. Сколько в нём заслуги одной неверной временной метки?

Бэктест показал годовую доходность 20%. В нём использовались данные за 8 лет, 1,640 сделок и корректное разделение по скользящему окну. Затем мы заменили текущую историю поставщика значениями, зафиксированными на тот момент, и преимущество упало до 3%.

Удивительным оказалось не исходное значение доходности, а 17 процентных пунктов, зависевших от пересмотренных данных. Такое знание задним числом может скрываться в экономических публикациях, финансовых показателях компаний, составе индексов и даже в, казалось бы, простых рыночных полях. Исторические данные показывают, что источник утверждает сейчас. Данные на момент времени показывают, что могла знать ваша стратегия тогда.

Почему исторические данные меняются после события?

Некоторые значения сначала публикуются как предварительные, а затем исправляются. Экономический показатель, опубликованный в пятницу, могут пересмотреть в следующем месяце. Компания может повторно раскрыть пересчитанный показатель прибыли. Поставщик данных может исправить ошибочную котировку, заполнить пропущенный интервал или заменить предварительное значение окончательным. Если база хранит только последнее значение, все эти изменения выглядят так, будто они всегда были верными.

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

Здесь легко попасть в ловушку: поле с названием date часто обозначает период, к которому относится значение, а не момент, когда оно стало доступно. В строке квартальной выручки может быть указано 31 марта, хотя публикация состоялась только в мае. Эта дата относится к периоду работы компании, а не к набору информации, доступному стратегии.

Какую временную метку использовать в бэктесте?

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

Временная меткаЧто она обозначаетДля чего нужна
Время действияПериод или событие, к которому относится значениеГруппирует наблюдения по измеряемому показателю
Время публикацииКогда источник опубликовал эту версиюНе даёт публикации появиться раньше, чем она состоялась
Время получения системойКогда ваша система получила эту версиюУчитывает задержки доставки и поздние дозагрузки

Предположим, квартальные продажи компании относятся к периоду с января по март, отчёт о них опубликован 8 мая в 16:15 по восточному времени США и поступил в ваше хранилище для исследований в 16:17. Стратегия, принимающая решение на закрытии рынка 8 мая, не может использовать этот отчёт, если решение по цене закрытия было принято в 16:00. Стратегия, принимающая решение на следующее утро, уже может. Одна лишь дата окончания квартала не позволяет ответить ни на один из этих вопросов.

Как проверить, влияет ли пересмотр данных на результат?

Запустите одну и ту же стратегию дважды: сначала на версии данных, доступной на момент каждого исторического решения, затем на последней пересмотренной истории. Зафиксируйте допущения об исполнении, вселенную инструментов и код. Разница покажет чувствительность результата к пересмотрам, а не станет сравнением разных стратегий.

Затем выясните, откуда берётся разрыв. Меняется ли результат в дни публикаций? Сосредоточены ли самые большие расхождения в нескольких компаниях с пересчитанной отчётностью или в исправленных наблюдениях? Совершает ли стратегия сделки до соответствующей публикации? Небольшая проверка на уровне событий часто объясняет больше, чем ещё один график накопленной доходности.

20%доходность по последней версии истории
3%доходность по значениям на момент времени
17 п. п.разрыв, обусловленный пересмотрами

Эти цифры приведены для примера и не означают универсальный штраф. Полезный результат — парное сравнение для вашей стратегии при одинаковых сделках и издержках, насколько это возможно. Если версия с пересмотренными данными показывает намного лучший результат, прежде чем доверять итоговой цифре бэктеста, выясните, какие поля и даты объясняют эту разницу.

Что фиксировать при аудите данных на момент времени?

Начните с полей, которые действительно использует ваша стратегия. Для каждого укажите источник, смысл временной метки, политику пересмотра и возможность получить предыдущие версии. Уточните у поставщика, как представлены исправления: перезаписанными строками, новыми строками с версиями или отдельным журналом аудита. Пометка «исторические данные» на странице продукта ничего из этого не проясняет.

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

Если история на момент времени недоступна

Не считайте молча сегодняшнее значение вчерашним. Отметьте это поле как ограничение, исключите его из утверждений, основанных на исторической доступности, или внесите консервативную задержку и покажите, как изменится результат. Запаздывающий заменитель может пригодиться в исследовании, если задержка явно указана и ограничение описано вместе с результатом.

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

бэктестингинженерия данныхкорпоративные событияданные на момент времени
ПоделитьсяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Все статьи