Витрати криптобектесту: комісії, спред, прослизання та фінансування
Стратегія створює валові сигнали, але зберігає лише чистий результат. Комісії — тільки частина різниці: спред, затримка виконання, несприятливе прослизання, вплив розміру заявки на книгу та ф’ючерсне фінансування можуть знищити невелику історичну перевагу.
Розділіть усі складові витрат
Не об’єднуйте всі витрати в один незрозумілий відсоток. Комісія залежить від біржі, продукту, рівня акаунта й від того, додає заявка ліквідність чи забирає її. Спред існує ще до надсилання заявки. Прослизання — це різниця між вихідною та фактичною ціною виконання. Для безстрокових ф’ючерсів окремо враховується фінансування в моменти розрахунку.
Для кожної складової визначте власну точку розрахунку, щоб не списати одну витрату двічі. Якщо вихідна ціна — середина спреду або остання угода свічки, перед прослизанням може знадобитися врахувати спред. Якщо модель уже використовує виконувані ціни bid і ask, другий повний спред буде подвійним рахунком. Вплив обсягу на ціну теж не є іншою назвою прослизання: він описує, як розмір заявки поглинає доступну ліквідність. Зафіксуйте вихідну ціну, сторону й тип заявки, припущену глибину та валюту перерахунку.
Будуйте розрахунок від окремих виконань. Для кожного зберігайте час, сторону, кількість, вихідну й фактичну ціну, припущений статус мейкера або тейкера, ставку та суму комісії, а також пов’язані нарахування фінансування. Лише після звірки об’єднуйте виконання в угоди й підсумок портфеля. Такий підхід коректно враховує додавання за сіткою, часткові закриття, розвороти й перерахунок комісії у валюту звіту, а згодом дає змогу зіставити бектест із журналами Paper і тестового середовища.
| Складова | Коли виникає | Як моделювати |
|---|---|---|
| Торгова комісія | Під час кожного виконання | Номінал виконання × ставка мейкера або тейкера |
| Спред | Під час купівлі за ask або продажу за bid | Використовувати виконувану ціну відповідного боку книги |
| Прослизання | Між вихідною та фактичною ціною | Зсувати ціну в несприятливий для стратегії бік |
| Вплив обсягу | Коли заявка поглинає кілька рівнів книги | Збільшувати витрати з урахуванням розміру й ліквідності |
| Фінансування | У розрахункові моменти безстрокового ф’ючерсу | Застосовувати історичну ставку зі знаком до номіналу відкритої позиції |
Рахуйте вхід, додавання та вихід окремо
Одна угода з входом і виходом містить щонайменше два виконання. Стратегії Grid і DCA сплачують комісію та перетинають спред під час кожного додавання, часткового закриття й остаточного виходу. Тому оборот нерідко важливіший за оголошену ставку комісії: рахуйте витрати за фактичними змодельованими виконаннями, а не лише за кількістю завершених угод.
Звіряйте розрахунок на трьох рівнях. Сума комісій і цінових поправок за виконаннями має збігатися з витратами завершених угод; підсумки угод — зі звітом портфеля; різниця між валовим і чистим результатом — із комісіями, спредом, прослизанням, фінансуванням та іншими явно названими складовими. Розбіжності через округлення або перерахунок валюти потрібно пояснювати, а не ховати в залишок. Незвірена модель не готова до аналізу чутливості.
загальна комісія = Σ (номінал кожного виконання × застосовна ставка комісії)Ураховуйте кожне виконання, а не лише початковий розмір позиції. Якщо комісія списується в іншому активі або діє знижка, перерахуйте суму у валюту звіту за зафіксованим правилом.
Моделюйте спред і прослизання в несприятливий бік
Купівля за ринковою ціною зазвичай виконується за доступними ask, а продаж — за bid. Виняток можливий для лімітної заявки, яка заздалегідь стояла в книзі й дочекалася зустрічної ліквідності. Захисні механізми біржі для ринкових заявок не гарантують останню відображену ціну. Що швидший ринок, тонша книга й більша заявка, то вища невизначеність виконання.[3]
несприятлива ціна покупки = вихідна ціна × (1 + прослизання б/с / 10 000)Для продажу відніміть коригування. Запустіть кілька сценаріїв замість того, щоб стверджувати, що одне фіксоване значення базового пункту представляє кожен інструмент, розмір і режим волатильності.
Додайте фінансування та ризик ліквідації для ф’ючерсів
Поки безстрокова ф’ючерсна позиція відкрита, стратегія може як отримувати, так і сплачувати фінансування. Плече зменшує потрібну маржу й наближає ліквідацію, але не зменшує комісію, розраховану від номіналу позиції. У звіті фінансування має бути показане окремо й із правильним знаком, а модель не повинна дозволяти капіталу пройти через стан, у якому позицію вже було б ліквідовано.
Підвищуйте витрати у стрес-сценаріях до зміни рішення
Розрахуйте базовий сценарій і щонайменше два менш сприятливі. Підвищуйте комісію, збільшуйте прослизання й затримуйте виконання. Завдання не в тому, щоб угадати точну майбутню ціну, а в тому, щоб зрозуміти, який рівень витрат зробить чистий PnL, просадку або показники з поправкою на ризик неприйнятними.[1][2]
Виразіть чутливість як запас до беззбитковості. Поділіть решту чистої переваги на оборот або кількість виконань і оцініть, скільки додаткових базисних пунктів на одне виконання її знищить; потім підтвердьте оцінку повторним запуском. Порівняйте запас із відхиленнями, які спостерігаються в Paper і тестовому середовищі за різними інструментами та режимами волатильності. Якщо вся перевага менша за звичайні коливання спреду та якості виконання, стратегію варто відхилити або переробити.
| Сценарій | Комісії | Прослизання | Рішення |
|---|---|---|---|
| Базовий | Очікуваний рівень акаунта | 5 б.п. на ринкове виконання | Зафіксувати, але поки не схвалювати |
| Консервативний | Наступний, менш вигідний рівень | 10 б.п. | Результат має залишатися в межах ризику |
| Стресовий | Тейкер під час кожного виконання | 20 б.п. | Визначити межу беззбитковості |
Перевірте витрати в одному звіті
Візьміть наявний журнал угод і заново розрахуйте чистий PnL за окремими виконаннями.
- Перелічіть кожне виконання й незалежно розрахуйте його номінал, ставку та суму комісії.
- Оцініть спред і несприятливе прослизання для входу, додавань і виходу.
- Додайте фінансування зі знаком для кожного розрахункового моменту, який перетинала ф’ючерсна позиція.
- Повторіть розрахунок із консервативними припущеннями й запишіть, за якого рівня витрат рішення змінюється.
Контрольний список моделі витрат
Правдоподібний чистий результат має відповідати на всі запитання нижче.
- Статус мейкера або тейкера відповідає фактично змодельованій поведінці заявки.
- Кожне виконання, зокрема додавання за сіткою та часткові виходи, збільшує витрати.
- Спред, прослизання та вплив обсягу на ціну рахуються як різні складові.
- Фінансування враховується за часом, зі знаком і окремо від торгового PnL та комісій.
- Стратегія витримує задокументований менш сприятливий сценарій витрат.
Чому модель витрат залишається оцінкою
Історичні свічки не показують майбутнє місце заявки в черзі та повну реакцію книги на ваш обсяг. Комісії, рівні акаунта, знижки, ставки фінансування, ліквідність і правила інструментів змінюються. Стрес-тест задає межі рішення, але не обіцяє конкретну ціну майбутнього виконання й не усуває вплив заявки на ринок.
Джерела та додаткове читання
Поведінку продукту звірено з документацією та кодом SteadyEdge, а змінні відомості про біржі й платформи ведуть на актуальні офіційні джерела.
Визначте запас стратегії щодо витрат
Відкрийте звіт, у якому окремо показано комісії та фінансування, і розрахуйте максимальне додаткове прослизання, яке стратегія витримає до порушення критерію прийняття.