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
← Усі статті