Бектест може зафіксувати виконання вашого лімітного ордера, навіть якщо можливості укласти угоду не було. Якщо мінімум свічки опустився до ціни вашого лімітного ордера на купівлю або нижче, багато рушіїв зарахують виконання. Але мінімум свідчить лише про те, що принаймні одна зареєстрована угода відбулася за цією ціною або нижче. Він нічого не говорить про обсяг торгів, чергу попереду вас чи про те, чи встиг ваш ордер надійти вчасно.
Ця відмінність найбільше важить тоді, коли перевага стратегії залежить від частих пасивних виконань. Модель, яка вважає кожен дотик до ціни повним виконанням, може перетворити терплячий вхід на уявне джерело альфи.
Чи означає дотик свічки до моєї лімітної ціни, що ордер виконано?
Ні. Це означає, що зафіксований діапазон цін свічки охопив вашу лімітну ціну. Можливість виконання ордера залежить від книги ордерів, потоку угод, вашої позиції в черзі та часу надходження ордера.
Уявімо лімітний ордер на купівлю за $100.00. Свічка відкривається на $100.20, опускається до мінімуму $99.98 і закривається на $100.10. Угода могла пройти на два центи нижче вашої ціни, але якщо на рівні $100.00 попереду вас стояла велика черга, а обсяг торгів за цією ціною був невеликим, ваш ордер міг залишитися невиконаним. За самими лише даними OHLCV черги не побачити.
Є ще один нюанс: свічка об'єднує події, що відбувалися в часі. Якщо сигнал розраховано за ціною закриття свічки, не можна припускати, що ваш ордер уже стояв у книзі раніше, коли зафіксували мінімум. Свічка стискає послідовність подій, яка дала б відповідь на це запитання.
Що саме дані OHLCV можуть сказати про виконання лімітного ордера?
Дані OHLCV дають змогу виключити деякі варіанти виконання та визнати інші ймовірними. Вони не встановлюють пріоритет у черзі й не гарантують, який обсяг був доступний для вашого ордера.
| Спостереження | Що це підтверджує | Чого це не доводить |
|---|---|---|
| Мінімум свічки залишився вищим за лімітну ціну на купівлю | За цю свічку не зафіксовано угод за цією ціною чи нижче | Що ордер було б виконано |
| Мінімум свічки торкнувся лімітної ціни на купівлю | Лімітну ціну було зафіксовано | Що після надходження вашого ордера за цією ціною торгувався якийсь обсяг |
| Мінімум свічки опустився нижче за лімітну ціну на купівлю | Угоди відбувалися за цією ціною або нижче | Що до вашої позиції в черзі дійшов достатній обсяг |
| Загальний обсяг свічки перевищив розмір вашого ордера | За час свічки на ринку торгувався щонайменше такий обсяг | Що цей обсяг торгувався за вашою ціною після надходження ордера |
Отже, рушію, що працює зі свічками, потрібне припущення щодо виконання. Сприймайте його як модель із відомою сліпою зоною, а не як факт, який можна прочитати зі свічки.
Як моделювати виконання лімітних ордерів у бектесті?
Почніть із часу надходження ордера. Визначте, коли стає доступним сигнал, коли ордер надходить на майданчик і які наступні ринкові події можуть на нього вплинути. Якщо сигнал відомий на момент закриття свічки, консервативне правило для моделі на основі свічок — дозволити виконання ордера не раніше наступної свічки.
Далі відокремте відповідність ціновим умовам від обсягу виконання. Те, що лімітний ордер отримав право на виконання, не означає, що його буде виконано повністю. Якщо у вас є дані про угоди, але немає історії книги ордерів, можна вимагати, щоб обсяг торгів за лімітною ціною або кращою перевищував розмір вашого ордера в певну кількість разів. Цей множник — приблизний запас на чергу, а не універсальна константа. Перевірте кілька значень і покажіть, як змінюється результат.
Наприклад, стратегія виставляє лімітний ордер на купівлю 2 BTC, а за обраною ціною після того, як ордер отримав право на виконання, торгується 3 BTC. Модель, яка вимагає 5 BTC відповідного обсягу, не виконає ордер; модель із множником обсягу 1.0 його виконає. Жоден із результатів не відтворює чергу. Порівняння показує, наскільки стратегія залежить від припущення, яке неможливо спостерігати безпосередньо.
Залишайте невиконані ордери в симуляції. Скасовуйте їх тоді, коли їх скасувала б стратегія, і не відновлюйте пропущену угоду. Якщо зараховувати виконання щоразу, коли ціна торкається ліміту, і водночас ігнорувати ордери, строк дії яких сплив без виконання, це спотворить і виконання, і кількість можливостей для торгівлі.
Коли потрібні дані книги ордерів?
Використовуйте оновлення книги ордерів і дані про угоди, коли позиція в черзі або часткове виконання є ключовими для стратегії: у маркет-мейкінгу, для короткочасних пасивних котирувань або входів, де важливо опинитися близько до початку черги на рівні ціни з великою конкуренцією. Навіть тоді історичні загальнодоступні дані можуть не показати вашу точну позицію в черзі. Потрібно моделювати надходження ордера, скасування ордерів попереду вас, правила зіставлення та власний вплив на ринок.
Для повільніших стратегій детальна книга ордерів може додати складності, не усуваючи головної невизначеності. Корисне дослідження на основі свічок усе одно може порівняти верхню межу виконання за дотиком із суворішими сценаріями, де виконання залежить від обсягу. Якщо видима перевага зникає щойно ви починаєте вимагати правдоподібного виконання, це цінний результат дослідження.
Як зрозуміти, чи залежить мій результат від оптимістичних припущень щодо виконання?
Запустіть ту саму стратегію за кількома чітко визначеними правилами виконання та порівняйте не лише підсумкову дохідність. Відстежуйте кількість виконаних ордерів, частку часткових виконань, час перебування в книзі, скасований обсяг, рухи ціни, які ви пропустили через невиконання, і оборот. Стратегія може зберегти заявлену дохідність, але спиратися на значно меншу кількість зручніших угод.
Наступна корисна перевірка — торгівля на папері: надсилайте ордери за фактичною логікою стратегії та записуйте підтвердження, виконання й скасування. Результати торгівлі на папері теж залежать від правил майданчика або симулятора, але така перевірка показує нюанси часу й обробки ордерів, яких не видно зі свічки.
Дотик ліміту свідчить про ціну. Виконання — це твердження про угоду. Бектест має наочно показувати різницю між ними.
← Усі статті


