26 Октября 2026 · данные

Почему в бэктесте снова меняются данные по опционам?

Почему в бэктесте снова меняются данные по опционам?

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

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

Почему изменился бэктест по опционам, если код остался прежним?

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

Представьте стратегию, которая покупает колл-опцион, когда цена ask ниже $2.00. При первой загрузке данных котировка в 10:14 составляет $1.95 ask и $1.90 bid, размер — 5. Позднее поставщик исправляет ask на $2.05 после сверки с задержанным сообщением биржи. Одно наблюдение меняет сигнал. Если этот контракт был единственной сделкой стратегии за день, даже небольшое исправление данных может определить доходность за весь день.

Фильтрация котировок тоже имеет значение. Поставщики могут удалять устаревшие котировки, исключать пересекающиеся рынки или иначе нормализовать временные метки. Эти правила могут быть разумными, но они — часть идентичности набора данных. Формулировка «опционы SPY, с января по март» не задаёт воспроизводимую историю.

Что такое версия данных по опционам?

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

Для каждого моделируемого решения сохраняйте достаточно сведений, чтобы ответить на вопросы: какой контракт рассматривался, какая котировка была выбрана, когда её опубликовали или получили и по какому правилу она считалась подходящей? Важны и исходная запись, и производная. Очищенная NBBO без исходных временных меток может скрыть, была ли котировка устаревшей или поступила уже после моделируемого решения.

Что сохранятьЗачем это нужноПример
Снимок источникаПозволяет определить, какая история использовалась в запускеID версии поставщика и время получения
Происхождение котировкиОбъясняет, какой рынок был выбранБиржа, время события, время получения, bid/ask и объёмы
Условия контрактаОпределяют, что представляет собой опционСтрайк, экспирация, мультипликатор и условия поставки
Правила очисткиПоказывают, какие наблюдения исключилиПорог устаревания и обработка пересекающихся котировок

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

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

Не ограничивайтесь общей доходностью. Отслеживайте изменения числа сделок, цен входа и выхода, отклонённых сигналов, а также долю P&L, приходящуюся на сделки, которые есть только в одной версии данных. Sharpe может остаться примерно тем же, даже если отдельные сделки заменились. Главный показатель не расскажет, что лежащая в его основе история изменилась.

2версии данных для сравнения
4поля происхождения данных для сохранения
1сделка может сильно повлиять на небольшую выборку

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

Всегда ли нужно использовать самую новую историю опционов?

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

В исследованиях с данными point-in-time исправленная запись может быть точнее сегодня, но недоступна стратегии в прошлом. По возможности сохраняйте время публикации и получения; если это невозможно, явно указывайте ограничение. Современная реконструкция не становится автоматически историческим набором доступной информации.

Если бэктест по опционам изменился, сначала спросите: «Какие наблюдения изменились?» Вопрос «Какой запуск правильный?» имеет смысл задавать после того, как вы ответили на первый.

Что сохранять для каждого бэктеста?

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

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

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