Замороженого знімка ринкових даних недостатньо, щоб вважати бектест надійним. Він може відтворювати ту саму відповідь, приховуючи, що постачальник змінив вхідні дані, на яких вона ґрунтується.
Зберігайте знімок. А ще ведіть журнал змін, який покаже, що саме змінилося, коли це сталося і чи мала стратегія до цього чутливість. Це особливо важливо, якщо у ваших дослідженнях використовуються виправлені угоди, переглянуті фундаментальні показники, реконструйовані ставки фінансування або непомітно оновлена постачальником історія.
Чому відтворюваний бектест усе одно може вводити в оману?
Уявімо, що в понеділок ви завантажили п'ять років годинних барів і запустили стратегію. До п'ятниці постачальник виправив помилкову угоду, скоригував корпоративну дію або заповнив пропуск. Збережений файл і далі точно відтворює результат понеділка. Це відтворюваність. Але якщо ви повторно завантажите дані з поточної історії постачальника, результат може відрізнятися, а у вас не буде запису про причину.
Проблема не обмежується масштабними виправленнями. Одне змінене значення максимуму може активувати стоп, а переглянуте закриття — перемістити індикатор за його поріг. У широкому наборі активів зміна історії одного символу може змінити його ранг і витіснити інший актив із портфеля. Підсумковий Sharpe може змінитися, навіть якщо код і конфігурація стратегії лишилися незмінними.
Хеш файлу показує, що два файли відрізняються. Але він не пояснить, чи коригування на спліт змінило ціни за 40 років, чи постачальник виправив три угоди, чи парсер перетворив порожнє поле на нуль.
Що має містити журнал змін ринкових даних?
Фіксуйте зміни на найдрібнішому практично корисному рівні й додавайте достатньо контексту, щоб повторити дослідження, на яке вони вплинули. Для потоку барів зазвичай потрібні інструмент, інтервал, час події, попередні та нові значення, джерело й час, коли ви помітили оновлення. Якщо постачальник надає оригінальний пакет даних, зберігайте його.
| Що фіксувати | Навіщо це зберігати | Приклад |
|---|---|---|
| Версію джерела або час отримання | Вказує, який стан даних постачальника використано | Знімок отримано 2026-11-02 08:15 UTC |
| Змінене поле та старе/нове значення | Показує, що саме змінилося | ETHUSDT 1h максимум: 3,412.10 → 3,418.60 |
| Класифікацію зміни | Дає змогу відрізнити виправлення від перетворень | Пізнє виправлення угоди, коригування на спліт, дозавантаження даних |
| Версію конвеєра та схеми | Допомагає відрізнити зміни джерела від вашої обробки | Normalizer v7, схема скоригованих барів v3 |
Для великих наборів даних зберігайте незмінні знімки й компактний маніфест із контрольними сумами, версіями джерела та часом отримання. Для змінених розділів додавайте порівняння на рівні рядків. Це практичний компроміс: повне відтворення залишається можливим без запису кожного незміненого рядка в окрему таблицю аудиту.
Як виміряти вплив виправлення?
Не обмежуйтеся підрахунком змінених рядків. Повторно запустіть стратегію, на яку вплинули зміни, зі старими й новими даними, використовуючи той самий код, параметри, комісії та припущення щодо виконання. Порівняйте рішення та шлях до результату.
- За різницею визначте зачеплені інструменти й час подій.
- З'ясуйте, які ознаки, сигнали, ордери чи ваги портфеля залежать від цих записів.
- Повторно програйте найкоротше коректне вікно, включно з періодом ретроспективного аналізу та станом відкритих позицій.
- Порівняйте ордери, виконання, експозицію, оборот, просадку й підсумкову дохідність.
Наприклад, виправлення постачальника, яке змінює максимум на 1-хвилинному інтервалі на $0.02, може зачепити мільйон рядків, не вплинувши на стратегію денного моментуму. Один виправлений бар на рівні стопа може мати вагоміше значення. Вимірюйте вплив на рішення: кількість змінених записів — ненадійний показник.
Розділяйте два запитання: «Чи можу я відтворити результат із збережених даних?» і «Чи була б ця версія даних доступна стратегії на той час?» Журнал змін допомагає відповісти на обидва, але для другого також потрібні записи про доступність даних на конкретний момент часу.
Скільки це коштує і коли виправдано?
Відстеження змін потребує сховища, роботи з отримання даних і операційних рішень. Постачальники можуть не надавати стабільні версії, а деякі історичні потоки періодично перебудовують без чіткого повідомлення про виправлення. Неможливо зафіксувати зміну, якої ви не помітили.
Почніть із даних, перегляд яких може змінити висновки досліджень: барів, що використовуються в логіці стопів, акцій із коригуванням на корпоративні дії, фундаментальних показників із прив'язкою до моменту часу, а також рядів ставок фінансування чи відкритого інтересу, які реконструюють. Для широких стабільних наборів даних може вистачити денного маніфесту й контрольних сум розділів. Додавайте порівняння на рівні полів там, де оновлення трапляються часто або рішення про угоди чутливі до окремих записів.
Критики мають рацію: повний безстроковий архів кожної відповіді постачальника може стати дорогим і все одно не зафіксувати, що саме було відомо джерелу на той час. Визначте обсяг аудиту за даними й рішеннями, що мають значення, і задокументуйте прогалини. Знімок дає змогу повторити експеримент. Журнал змін пояснює, чому змінився його результат.
← Усі статті


