11 листопада 2026 · виконання ордерів

Стратегія пройшла тести. А тоді біржа змінила розмір тіку.

Стратегія пройшла тести. А тоді біржа змінила розмір тіку.

О 08:00 UTC у вівторок криптовалютний торговий майданчик змінив розмір тіку для безстрокового контракту із середньою ціною. Наша базисна стратегія цього не помітила. Сигнал і далі бачив той самий спред між спотом і ф'ючерсами, ліміти ризику не змінилися, а бектест показував ті самі результати.

Паперова торгівля це помітила. Адаптер ордерів округлив лімітний ордер на купівлю вниз до найближчої дозволеної ціни. Через це ордер опинився на один тік нижче за ціну, яку моделював бектест. Ринок торкнувся старої ціни, симульований ордер виконався, а паперовий так і залишився невиконаним. До обіду позиція стратегії стала незбалансованою.

Інцидент здавався незначною помилкою округлення. Насправді проблема була на межі моделей: стратегія знала ціни, але бектест не знав цінової сітки торгового майданчика.

Ми торгували за простим базисним сигналом: купували спот і продавали безстроковий контракт, коли премія ф'ючерсу перевищувала поріг. Ордери були пасивними, бо очікувана перевага базисної стратегії була невеликою. Кілька тіків могли визначити, чи вистачить доходу від входу, щоб покрити комісії та майбутній вихід.

Що змінилося разом із розміром тіку?

До оновлення безстроковий контракт приймав ціни з кроком 0.01. Після оновлення в потрібному ціновому діапазоні він приймав ціни з кроком 0.05. Сигнал розрахував цільову ціну продажу 42,318.03 — за старим правилом вона була допустимою. За новим правилом ця ціна була недопустимою.

Біржа відхиляла недопустимі ціни, але в нашого адаптера був запасний варіант: він округлював ціну продажу вниз до 42,318.00. Така ціна теж була недопустимою. Другий запасний варіант округляв її ще раз — цього разу до 42,318.05. Ця ціна була допустимою, але менш вигідною для продавця. Ордер уже не міг бути проданий за ціною, змодельованою в бектесті. Цей шлях у коді створили для іншого ринку, і він непомітно перетворював відхилення на зміну ціни ордера.

У цьому ордері зійшлися два окремі питання. Перше: яку ціну може прийняти торговий майданчик? Друге: як стратегія має реагувати, якщо бажана ціна не відповідає сітці? На перше відповідає біржа. На друге має відповісти стратегія або політика виконання ордерів.

Намір щодо ордераПравило сіткиТиповий напрямок округленняЩо може змінитися
Лімітний ордер на купівлюЦіна має бути кратною тікуВниз, щоб ціна не перевищувала лімітМенша ймовірність виконання
Лімітний ордер на продажЦіна має бути кратною тікуВгору, щоб ціна не була нижчою за лімітМенша ймовірність виконання
Лімітний ордер, що може виконатися негайноТакож має відповідати ціновим обмеженнямЗалежить від максимально прийнятної ціниЧи перетинає ордер спред

Універсального правильного правила округлення не існує. Округлення ціни купівлі вниз зберігає цінове обмеження покупця, але знижує ймовірність виконання. Округлення вгору може зробити ордер таким, що виконується негайно, а це змінює комісії та вплив на ринок. Для нашого пасивного входу в базисну стратегію непомітно змінювати ордер було неправильно. Стратегія обрала ціль, а адаптер змінив її економічний сенс.

Чому бектест і далі виглядав успішним?

Наш історичний симулятор ордерів трактував лімітні ціни як неперервні числа. Якщо мінімум свічки досягав ціни купівлі або максимум — ціни продажу, симулятор зараховував виконання. Це й без того щедре наближення для пасивного ордера, адже угода за лімітною ціною нічого не говорить про місце в черзі. Але зміна розміру тіку виявила проблему фундаментальнішу: за цією ціною ордер узагалі не міг існувати.

Ми повторно відтворили ті самі рішення, застосувавши нову сітку з моменту набрання нею чинності. Кілька виконань зникли. Деякі ордери округлилися до цін, що перетинали спред, і за них стягувалися комісії taker замість maker. Через це траєкторія позиції змінилася, а разом із нею — подальші хеджування та виходи. Правило, яке здавалося метаданими, змінило всю послідовність угод.

І це оновлення не було несподіванкою, прихованою на графіку. Торговий майданчик заздалегідь опублікував зміну правил інструмента із часом набрання чинності. Ми ретельно зберігали ринкові дані, але метадані інструмента лежали в кеші, який оновлювався під час запуску. Бектест використовував сьогоднішні правила для всіх історичних дат, а в паперовій торгівлі правила застаріли й лишалися такими, доки процес не перезапустили. Жодне із середовищ не відображало, що саме дозволяв торговий майданчик у кожен момент часу.

Як моделювати зміни розміру тіку в бектесті?

Версіонуйте правила інструмента за інтервалами чинності, як і інші вхідні дані, прив'язані до конкретного моменту часу. Щонайменше зберігайте час набрання чинності та значення правил, потрібні для перевірки ордера: розмір тіку, крок кількості, мінімальну кількість і цінові діапазони, якщо вони є. Симулятор має завантажувати набір правил, чинний на момент симульованого рішення.

Зробіть обробку ордерів явною. Якщо цільова ціна недопустима, відхиліть її, округліть за задокументованою політикою або перерахуйте цільову ціну відповідно до сітки. Зафіксуйте, що саме відбулося. Бектест, який автоматично виправляє кожен ордер, може стати в пригоді для оцінки певної політики виконання, але він не має видавати цю політику за виконання на біржі.

Для пасивних ордерів ціна, допустима за розміром тіку, — лише перша умова виконання. Потрібно також змоделювати, чи торгувала ціна ринку крізь вашу ціну, чергу перед вами, скасування ордерів і рівень комісії, який ви б отримали.

Ми додали дві перевірки. Перша перевіряє кожен згенерований ордер за правилами інструмента, чинними в той момент, і одразу повідомляє про недопустиму ціну або кількість. Друга порівнює остаточний нормалізований ордер в адаптерах бектестингу та паперової торгівлі: сторону, ціну, кількість, час дії та намір щодо комісії. Якщо вони різняться, результати запуску не вважаються порівнюваними.

Після цього ми повторно відтворили зміну правил у вівторок. Бектест більше не приписував виконання за ціною 42,318.03 після оновлення сітки. Паперова торгівля та симуляція однаково вирішували, що робити з кожною недопустимою цільовою ціною, навіть якщо рішенням було пропустити ордер.

Сигнал не зламався. Застаріли його припущення про те, яким саме інструментом можна торгувати. Стратегія може пережити зміну розміру тіку, але лише якщо дослідницька система вважає правила торгового майданчика частиною модельованого ринку.

правила біржірозмір тікуокруглення ордерівбектестингпаперова торгівля
ПоділитисяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Усі статті