Стандартна порада така: якщо хочете чесний бектест, знайдіть тикові дані. На мою думку, для більшості стратегій ця порада хибна, а дотримання її зазвичай погіршує бектест, а не покращує. Не тому, що тикові дані неточні — точніших не знайти, — а тому, що більшість людей підміняють строгий підхід вищою роздільністю, хоча це не одне й те саме.
Ось як це зазвичай відбувається. Дослідник будує стратегію на 1-хвилинних свічках і отримує Sharpe, який його влаштовує. Потім хтось — наставник, автор допису на форумі чи власний внутрішній сумнів — каже, що бектест нечесний, бо спирається на свічки. Тож дослідник перебудовує весь конвеєр на тикових даних: кожна угода, кожне оновлення котирувань із точністю до мікросекунди. Бектест працює повільніше, код стає втричі складнішим, а Sharpe... майже не змінюється або змінюється так, що ніхто не може пояснити чому. Попри це, результат запускають у роботу, бо тикові дані здаються строгішими, але враження строгості — це не строгість.
Що насправді дає тиковий рівень деталізації
Тикові дані показують послідовність і ціну кожної угоди та, якщо ви за це платите, кожне оновлення книги ордерів. Це справжня інформація. Вона дає змогу відновити позицію в черзі, оцінити ймовірність виконання за певною ціною та побачити несприятливий відбір — чи рухається ринок проти вас одразу після гіпотетичного виконання вашого ордера. Усе це надзвичайно важливо, якщо ваша позиція триває секунди, а перевага вимірюється частками тика.
Але більшість стратегій, які ми бачимо у Stratmill, — і більшість стратегій, які насправді використовують роздрібні та напівпрофесійні дослідники, — тримають позиції від хвилин до днів. На такому горизонті чесність бектесту визначає не те, чи змоделювали ви 40-ву угоду протягом певної хвилини. Важливо, чи врахували ви спред, ставку фінансування, криву прослизання і те, що ваш лімітний ордер стоїть у черзі за ордерами інших учасників. На тикових даних можна помилитися з усіма цими чотирма чинниками, а на 1-хвилинних свічках — правильно їх змоделювати. Роздільність і чесність не залежать одна від одної.
Останнє число часто недооцінюють. Бектест на тиковому рівні — це не просто «той самий бектест, тільки з більшою кількістю рядків». На більшості бірж угоди надходять не в порядку часу отримання, їх виправляють заднім числом, вони розподіляються між кількома сегментами рушія зіставлення ордерів, а на кількох майданчиках, дані з яких ми отримували, під час повторного підключення іноді дублюються або повністю зникають. Створити тиковий конвеєр, який справді точніший за добре побудований конвеєр для свічок, а не просто детальніший, — це повноцінний системний проєкт. Більшість команд за нього не береться. Вони просто підключають бектестер до тикового файлу постачальника даних і вважають справу зробленою. Тобто міняють відомий і задокументований набір наближень (OHLCV) на невідомий і недокументований набір — те, що саме робить алгоритм узгодження тикових даних постачальника в невдалий день.
За який шум ви платите
Є ще одна ціна — вона пов’язана радше зі статистикою, ніж з інженерією. Окремі принти угод коливаються між цінами купівлі та продажу. Це явище називають коливанням між цінами bid і ask; у науковій літературі з мікроструктури ринку його відомо ще з 1980-х років. Якщо ваш сигнал працює швидше, ніж на горизонті кількох секунд, бектест на тикових даних може змусити вас побачити закономірність там, де є лише ці коливання. Я бачив, як дослідник знайшов чудову закономірність повернення до середнього на даних кожної окремої угоди, але вона зникла щойно дані агрегували навіть у 5-секундні свічки. Бо то були лише коливання між bid і ask.
Один знайомий квант, який раніше займався маркет-мейкінгом, а тепер керує невеликим криптопортфелем, пояснив це так: «Тикові дані — це збільшувальне скло. Наведіть його на свою перевагу — чудово. Наведіть на шум — і пів року витратите на те, щоб красиво змоделювати власний шум». Тепер він майже все тестує на 1-секундних або 1-хвилинних свічках і переходить до тикових даних лише заради конкретного питання: «Чи справді виконався б цей лімітний ордер?» Це питання про ймовірність виконання, а не про сигнал.
Саме такий поділ — правильний підхід, якого найчастіше не дотримуються прихильники тикових даних. Чесно використовувати їх — не означає запускати на них усю стратегію. Це означає застосовувати їх точково, щоб відповісти на одне чи два питання, на які дані свічок справді не дають відповіді.
Коли критики мають рацію
Утім, є стратегії, для яких тикові дані обов’язкові, і було б перебільшенням стверджувати протилежне. Якщо ви займаєтеся чимось схожим на маркет-мейкінг — виставляєте котирування з обох боків, керуєте запасом активу від тика до тика, стежите за своєю позицією в черзі на певному ціновому рівні, — дані свічок узагалі не описують вашу задачу. Уся економіка такої стратегії зосереджена всередині хвилини, а не між хвилинами. Те саме стосується арбітражу між майданчиками, чутливого до затримок, де питання буквально в тому, «яка угода відбулася першою», а також маркет-мейкінгу опціонів великими обсягами, де вся гра — це кількасот мілісекунд несприятливого відбору після принта. У таких умовах бектест на свічках — не спрощення, а помилка в класифікації: ви тестуєте не менш детальну версію своєї стратегії, а іншу стратегію, яка лише має ту саму назву, що й справжня.
| Горизонт стратегії | Що приховують дані свічок | Чи потрібні тикові дані? |
|---|---|---|
| Маркет-мейкінг / торгівля з урахуванням черги | Ймовірність виконання, несприятливий відбір, позиція в черзі | Так — обов’язково |
| Арбітраж із використанням затримок / між майданчиками | Послідовність угод, який майданчик зрушив першим | Так |
| Внутрішньоденний імпульс, повернення до середнього (хвилини–години) | Час виконання в межах свічки, витрати на спред | Лише для оцінки ймовірності виконання, не для сигналу |
| Свінгова торгівля / кілька днів, напрямні опціони | Майже нічого суттєвого | Ні — свічок достатньо, і часто вони чистіші |
Тож я не стверджую, що «тикові дані — це погано». Радше, звернення до них часто допомагає ухилитися від складнішого й менш гламурного питання: чи правильна моя модель витрат? Чи правильне припущення щодо виконання? Чи справді виконався б цей ордер, чи я припускаю виконання за ціною, яку книга ордерів насправді ніколи мені не пропонувала? На ці питання можна відповісти за допомогою 1-хвилинних або навіть 1-секундних свічок, якщо чесно врахувати позицію в черзі та спред. Тикові дані дають змогу відповісти точніше, але розробка коштує в кілька разів дорожче. Для стратегій, де додаткова точність нічого не змінює у висновку, ці витрати не виправдані. Спрямовуйте додаткові зусилля туди, де цього вимагає горизонт стратегії, а решту пропускайте. Це краще використання часу дослідницької команди, ніж за замовчуванням брати найдокладніші доступні дані лише тому, що вони здаються строгішими.
← Усі статті

