Найчесніша модель прослизання часто навмисно помиляється. Бектест, який вказує точну вартість виконання за грубими історичними даними, стверджує те, чого ці дані підтвердити не можуть.
Може здатися, що це аргумент на користь грубих припущень. Насправді все навпаки: використовуйте просту модель, яку можете пояснити, а потім змусьте її суперечити самій собі. Якщо стратегія працює лише за одного зручно вигідного припущення про ціну виконання, ця невизначеність — частина результату.
Чому точна оцінка прослизання може вводити в оману?
Припустімо, у вас є 1-хвилинні бари OHLCV, і ви надсилаєте ринковий ордер на 2,000 акцій. Бар показує діапазон цін і загальний обсяг за хвилину. Але він не показує, якими були ціни bid і ask, коли надійшов ваш ордер, яка черга була попереду, як розподілився обсяг протягом хвилини та яку його частину поглинув би ваш ордер.
Попри це, прослизанню можна присвоїти числове значення. Наприклад, можна вважати, що ордер виконується за ціною відкриття наступного бара з додаванням фіксованої вартості в базисних пунктах, або масштабувати вартість відповідно до співвідношення розміру ордера й обсягу бара. Це корисні наближення, але не спостереження. Коли у звіті написано «прослизання: 3.2 базисного пункту», вибір моделі виглядає як вимірювання.
Розгляньмо приклад. Стратегія торгує на $20,000 за ордер акціями, обсяг торгів якими в наступному барі становить $400,000. Частка участі — 5%. Модель із вартістю 2 базисні пункти нараховує $4 за ордер, а модель із 10 базисними пунктами — $20. За 500 угод із повним циклом різниця становить $16,000 без урахування комісій. Якщо валовий прибуток стратегії в бектесті — $18,000, припущення щодо виконання впливає на результат майже так само, як і сигнал.
Задайте діапазон, який відповідає можливостям ваших даних
Почніть із базового сценарію, що відповідає типу ордера стратегії та роздільній здатності даних. Для ринкового ордера потрібні спред і вплив на ринок. Для лімітного — правило, за яким визначається, чи буде він виконаний; припущення, що ордер виконається за будь-якої ціни, якої торкнувся ринок, — це окрема помилка моделювання виконання.
Потім запустіть той самий бектест у кількох чітко визначених сценаріях. Зафіксуйте сигнал, розмір позиції та часові мітки, щоб можна було пов’язати зміни саме з виконанням ордерів:
| Сценарій | Припущення щодо виконання | Що перевіряємо |
|---|---|---|
| Сприятливий | Базовий спред і низький вплив на ринок | Наскільки стратегія залежить від сприятливих умов торгівлі? |
| Базовий | Типовий спред і вплив, масштабований за часткою участі | Що означає обране робоче припущення? |
| Несприятливий | Ширший спред, сильніший вплив і затримка виконання | Чи зберігається перевага стратегії за правдоподібних складних ринкових умов? |
Це не довірчі інтервали, якщо ви не калібрували їх статистично. Це сценарні перевірки. Поясніть у звіті, що вони означають, і не усереднюйте їх, щоб отримати вигадане «очікуване прослизання» без даних про ймовірності сценаріїв.
Нехай модель враховує параметри ордера
Фіксована комісія в базисних пунктах може бути цілком прийнятним першим наближенням для невеликих ордерів. Але зі зростанням частки участі таке припущення стає дедалі менш правдоподібним. Щонайменше фіксуйте номінальну вартість ордера, доступний обсяг бара та частку участі. Якщо стратегія торгує ф’ючерсами, записуйте вартість контракту й відповідні одиниці обсягу; якщо спотовою криптовалютою — чітко вказуйте валюту котирування та біржу.
Проста крива впливу може показати тиск на місткість стратегії, не вдаючи, що відтворює книгу ордерів. Наприклад, визначте вартість як базову складову спреду плюс складову впливу, що зростає пропорційно квадратному кореню з частки участі. Калібруйте параметри лише за наявності відповідних даних про виконання. Інакше змінюйте параметри й показуйте, як швидко погіршується результат.
Не дозволяйте моделі виконання непомітно рятувати стратегію. Якщо сигнал на купівлю надійшов після різкого зростання, не можна вважати, що ордер виконається за мінімумом бара лише тому, що ця ціна є всередині свічки. Використовуйте причинно обґрунтоване правило виконання, а потім перевірте гіршу ціну та затримку. Якщо через затримку ордер пропустить рух, це результат виконання, а не дрібна перешкода, яку треба згладити.
Корисне запитання: за якого спреду, впливу, затримки чи частки участі чиста дохідність стане нульовою? Ця точка беззбитковості часто корисніша за одне значення Sharpe з бектесту.
Уточнюйте діапазон за допомогою паперової торгівлі
Паперова торгівля не покаже, за якою ціною ордер виконався б у реальній системі зіставлення заявок. Але вона допоможе з’ясувати, чи відповідає потік ордерів у бектесті фактичним рішенням системи: коли генеруються ордери, якого вони розміру та як довго залишаються актуальними.
Порівнюйте ціну симульованого ордера з поточними котируваннями або іншими ринковими даними, які записує ваша система паперової торгівлі. Відстежуйте різницю за інструментом, часом доби, розміром ордера та його типом. Ці спостереження допоможуть звузити припущення для відповідного сценарію. Їх не можна автоматично переносити на іншу біржу, інший ринковий режим або більший ордер.
Критики мають рацію: песимістичні сценарії можуть бути довільними. Навмисно сувора модель може відхилити життєздатну стратегію так само, як сприятлива — прикрасити слабку. Тож не оголошуйте найгірший сценарій правдою. Публікуйте припущення, показуйте чутливість і збирайте дані, потрібні, щоб замінити здогадки каліброваними оцінками.
Бектест не може визначити історичну позицію ордера в черзі за свічкою. Зате він може показати, чи залишається ідея переконливою, коли виконання погіршується способами, які ваші дані не дають змоги виключити. Це корисніша відповідь, ніж ще один знак після коми.
← Усі статті


