Ви знайшли чіткий результат: ваша криптостратегія приносить найбільшу частину прибутку між 13:00 і 14:00 UTC. Ви перевірили комісії, повторно запустили бектест і торгували за сигналом на паперовому рахунку. Тепер ви готуєте версію для акцій США, і найкращою виявилася година з 09:30 до 10:30 за нью-йоркським часом.
Перш ніж довіряти будь-якому з цих результатів, перевірте, що відбувалося з годинником. Перехід США на літній час зміщує відкриття торгів у Нью-Йорку на годину відносно UTC. Якщо ознаки, мітки сесій і ордери спираються на різні часові орієнтири, стратегія може використовувати календарну межу замість стійкої ринкової закономірності.
Не потрібно відмовлятися від досліджень залежності від часу доби. Потрібно визначити, який саме годинник має на увазі ваша гіпотеза, а потім послідовно застосувати його в усіх частинах бектесту.
Спершу уточніть, що означає ця година
«Перша година» звучить точно, доки не вказати, за яким годинником її рахують. Це можуть бути перші 60 хвилин після відкриття NYSE, час із 09:30 до 10:30 за місцевим часом Нью-Йорка або фіксований інтервал UTC. Упродовж частини року ці визначення збігаються, але під час переходу на літній час розходяться.
Для гіпотези щодо акцій використовуйте місцевий час біржової сесії: 09:30 за часом Нью-Йорка означає 09:30 незалежно від того, діє в Нью-Йорку EST чи EDT. Для криптогіпотези потрібною змінною може бути фіксована година UTC. Криптовалюти торгуються цілодобово, тож немає відкриття торгового майданчика, від якого можна було б відраховувати час.
Запишіть визначення до початку налаштування. «Торгувати в першу годину після відкриття основної сесії» — це перевірювана гіпотеза. «Торгувати в годину, коли сигнал працює найкраще» дає оптимізатору змогу вибрати разом зі стратегією ще й спосіб відліку часу.
Де виникають розбіжності між годинниками
Уявімо, що дані щодо акцій зберігаються в UTC, код ознак групує рядки за годинами UTC, а правила виконання відкривають позиції о 09:30 за нью-йоркським часом. Після переходу на літній час відкриття ринку зміщується з 14:30 UTC на 13:30 UTC. Ознака з міткою «перша година», визначеною за годинним інтервалом UTC, тепер відповідає іншому відрізку сесії.
Подібна пастка виникає під час побудови барів за часовими позначками. Якщо агрегувати дані в UTC, а потім переводити мітки в нью-йоркський час, межі можуть виявитися неочікуваними. Особливо це помітно навесні, коли одна місцева година зникає, і восени, коли одна місцева година повторюється двічі. Час 01:30 за місцевим часом тієї осінньої неділі неоднозначний, якщо разом із ним не зберігається зміщення від UTC або якщо його не представлено в UTC.
Для вашого результату щодо криптовалют календар теж може мати значення. Стратегія, прив’язана до години UTC, може збігатися з активністю на ринку США місяцями, а потім здаватися зміщеною після переведення годинників у США. Це не робить стратегію хибною, але змінює те, що ви можете стверджувати. Можливо, ви виміряли закономірність, прив’язану до фіксованої години UTC, яка іноді збігається з відкриттям ринку США, а не ефект, пов’язаний із самим відкриттям.
Закладіть час сесії в перевірку
Зберігайте часові позначки подій у UTC як основний запис. Обчислюйте поля місцевого часу сесії за назвою часового поясу, наприклад America/New_York, використовуючи базу часових поясів, яка враховує історичні зміни правил. Не задавайте жорстко «UTC мінус п’ять» чи «UTC мінус чотири»: жодне з цих зміщень не визначає час Нью-Йорка протягом усього року.
| Рішення | Приклад для акцій | Приклад для криптовалют |
|---|---|---|
| Часова основа гіпотези | Хвилини від відкриття основної сесії | Година UTC |
| Джерело розкладу сесій | Біржовий календар, включно зі святами та скороченими сесіями | Безперервний календар UTC |
| Час виконання ордера | Найближча подія, на якій можна виконати ордер, після сигналу | Найближча подія, на якій можна виконати ордер, після сигналу |
Окремо перевірте тижні навколо переходу на літній час. Порівняйте результати до і після кожного переведення годинника та подивіться, чи найкращий інтервал залишається прив’язаним до ринкової сесії, чи фіксованим у UTC. Якщо ви перебрали багато годин, дат і зміщень у пошуках найкращого результату, врахуйте цей пошук у розрахунку ризику перенавчання: вибір годинника був ще однією спробою.
Часовий пояс — це набір правил, а не кількість годин, яку треба відняти. Зберігайте події в UTC; переводьте їх у місцевий ринковий час, коли це потрібно.
Що має підтвердити торгівля на паперовому рахунку
Під час переходу стратегії на паперовий рахунок записуйте і часову позначку події в UTC, і хвилину від початку сесії. Так ви швидко помітите, якщо стратегія вважає, що відкриття відбувається о 09:30, але насправді надсилає ордер о 10:30 за місцевим часом. Також перевіряйте свята та скорочені сесії: розклад звичайних сесій, скопійований на кожен будній день, без проблем вигадуватиме угоди в дні, коли біржа зачинена.
А коли годинники переводять, не поспішайте «виправляти» результат, зміщуючи сигнал, поки крива капіталу знову не стане звичною. Спершу перевірте сформульовану гіпотезу, календар і час виконання ордерів. Якщо результат рухається разом із ринковою сесією, ви дізналися дещо про поведінку сесії. Якщо він лишається на тій самій годині UTC, ви дізналися дещо інше. Бектест має зберігати цю відмінність.
← Усі статті

