Бектест зарахував 91 виконання зі 100 поданих ордерів. У паперовій торгівлі та сама стратегія отримала 63 виконання. Медіанний час від сигналу до підтвердження ордера становив 84 мілісекунди, а 12 пропущених паперових виконань стосувалися лімітних ордерів, які бектест вважав виконаними, щойно ціна торкалася заданого рівня.
Спершу ця розбіжність у 28 пунктів здавалася проблемою стратегії, доки ми не відокремили рішення щодо ордерів від рішень щодо їх виконання. В обох прогонах стратегія обирала майже однакові напрямок, розмір і ціну. Відрізнявся шлях виконання: частина ордерів надходила із запізненням, частина залишалася відкритою, а частина потрапляла на ринок, який уже встиг змінитися.
Що означає відповідність ордерів між бектестом і паперовою торгівлею?
Відповідність означає, що бектест і паперова система ухвалюють порівнювані рішення на основі однакової доступної інформації, а відмінності в моделях виконання враховуються окремо. Це не означає, що кожне симульоване виконання має збігатися з паперовим. За історичними барами неможливо відновити позицію в черзі, а паперовий майданчик може використовувати модель зіставлення ордерів, відмінну від моделі реальної біржі.
Корисніше поставити вужче запитання: чи можете ви пояснити, що сталося далі з кожним ордером, який стратегія планувала розмістити? Кількість угод і підсумкова дохідність приховують надто багато. Зберігайте об'єднаний запис для кожного рішення зі стабільним ID рішення стратегії, який проходить через події сигналу, ордера, підтвердження, скасування та виконання.
| Порівняння | Що виявляє | Приклад |
|---|---|---|
| Час рішення та напрямок | Різні вхідні дані або планування | У паперовій торгівлі сигнал спрацьовує на один бар пізніше |
| Запитаний розмір і ціна | Округлення, правила ризику або майданчика | Бектест подає ордер на 0.013 BTC; паперова система округлює до 0.01 |
| Зміни стану ордера | Прогалини під час подання, відхилення та скасування | Бектест вважає запит на скасування завершеним скасуванням |
| Кількість і ціна виконання | Надто оптимістична модель виконання або рух ринку | Ціна торкнулася ліміту — бектест зарахував повне виконання, але в паперовій торгівлі виконання не було |
Чому лімітні ордери, яких торкнулася ціна, становили таку велику частку пропущених виконань?
Наш бектест використовував хвилинні бари. Якщо лімітна ціна потрапляла в діапазон між максимумом і мінімумом бара, ордер позначався як виконаний. Це правило показує, чи торгувався ринок за цією ціною в певний момент протягом хвилини. Але воно не показує, чи був наш ордер тоді активним, чи стояв першим у черзі та чи пройшов після його надходження достатній обсяг торгів.
Проблему з часом виявили журнали паперової торгівлі. Стратегія розрахувала сигнал о 12:03:00.000, але подія ринкових даних надійшла до процесу обробки ордерів на 31 мілісекунду пізніше. Перевірки ризику тривали ще 22 мілісекунди, а симулятор майданчика підтвердив ордер ще через 31 мілісекунду. За швидкого руху історичний бар може створити враження, що ціна була досяжною, хоча лімітний ордер надійшов уже після того, як ринок її залишив.
Була й інша проблема: 12 паперових ордерів усе ще залишалися відкритими, коли бектест уже перейшов далі. Симулятор приймав запит на скасування так, ніби ордер одразу зникав. У паперовій системі підтвердження скасування надходило пізніше; за цей час виконалися 3 ордери. Через це змінилася позиція, яку бачив наступний сигнал.
Як виміряти розбіжність і не обманути себе?
Почніть із невеликого звіту звірки, згрупованого за наміром розмістити ордер. Завжди показуйте знаменник. «Частка виконаних ордерів» може означати кількість виконань на поданий ордер, виконану кількість відносно запитаної або частку виконаних ордерів серед тих, що дійшли до майданчика. Це різні показники, які відповідають на різні запитання.
- Об'єднуйте події за ID рішення або ID клієнтського ордера, а не за часом, який визначили постфактум приблизно.
- Спершу порівнюйте рішення: час сигналу, напрямок, запитану кількість, тип ордера та лімітну ціну.
- Для однакових рішень порівнюйте затримку до підтвердження, відхилення, час відкриття, час скасування, виконану кількість і середньозважену за обсягом ціну виконання.
- Показуйте показники за типом ордера та ринковими умовами. Загальна частка виконання 63% може приховувати 90% для ринкових ордерів і 35% для пасивних лімітних.
Чітко розділяйте категорії. Відхилений ордер — це не невиконаний ордер; частково виконаний — це не повністю виконаний; а ордер, скасований після часткового виконання, усе одно змінив позицію. Рахуйте і ордери, і запитану кількість, щоб група дрібних ордерів не створювала оманливо позитивного враження.
Що слід змінити в бектесті?
Використовуйте правило виконання, що відповідає роздільності даних і запланованій поведінці ордера. Для барів дотик до лімітної ціни свідчить про можливе виконання, але не доводить його. Можна консервативно моделювати часткові виконання, вимагати проходження ціни за ліміт або виключати пасивні ордери, для яких неможливо оцінити позицію в черзі. Кожен вибір відповідає на інше запитання; задокументуйте його та порівняйте результат за кількома правдоподібними правилами.
Також моделюйте стан ордера. Ордер залишається активним, доки система не отримає термінальну подію, а запит на скасування не усуває ризик відкритої позиції. Якщо стратегія може подати другий ордер, поки перший ще очікує на виконання, бектест має відтворювати цю гонку або запобігати їй за задумом.
Модель виконання — це твердження про те, як міг би виконатися ваш ордер. Сформулюйте зрозуміле правило, а потім перевірте його на журналах паперової торгівлі.
У нашій розбіжності в 28 пунктів несподіваним було не те, що бектест на хвилинних барах завищив кількість виконаних пасивних ордерів. Справжньою несподіванкою стало те, що позиція стратегії розходилася з очікуваною ще до наступного рішення, бо ми не врахували час скасування. Коли ми виправили модель станів ордера й перестали зараховувати кожен дотик до лімітної ціни як виконання, порівняння з паперовою торгівлею стало менш утішним, але кориснішим.
Практичний критерій відповідності такий: кожна суттєва відмінність між симульованою та паперовою поведінкою має задокументовану причину, а бектест не заявляє про певність там, де його дані її не дають.
← Усі статті


