7 Сентября 2026 · опционы

Строка, на которой строится ваш опционный бэктест: один BTC-колл Deribit, поле за полем

Строка, на которой строится ваш опционный бэктест: один BTC-колл Deribit, поле за полем

В прошлом месяце кто-то из исследовательской команды спросил меня, почему наши опционные агенты постоянно отклоняют вполне разумную на первый взгляд идею на длинную гамму. Сигнал был в порядке. Прогноз волатильности тоже. Проблема заключалась в двух полях рыночных данных и одном числе, которого в данных вообще нет.

Вот объект, из-за которого у нас возник спор. Ответ тикера Deribit для BTC-25SEP26-110000-C, полученный в понедельник в 11:20 UTC, когда до экспирации оставалось восемнадцать дней. Я убрал устаревшие поля и оставил всё важное.

{
  "instrument_name": "BTC-25SEP26-110000-C",
  "index_price": 96412.18,
  "underlying_price": 96980.44,
  "underlying_index": "SYN.BTC-25SEP26",
  "estimated_delivery_price": 96412.18,
  "mark_price": 0.0041,
  "mark_iv": 42.14,
  "best_bid_price": 0.0038,  "best_bid_amount": 4.9,
  "best_ask_price": 0.0045,  "best_ask_amount": 12.1,
  "bid_iv": 40.42,           "ask_iv": 43.94,
  "last_price": 0.0043,
  "interest_rate": 0.0,
  "open_interest": 812.7,
  "greeks": {
    "delta": 0.0962, "gamma": 0.0000189,
    "vega": 36.77,   "theta": -42.91,  "rho": 4.61
  },
  "stats": { "volume": 61.2, "high": 0.0051, "low": 0.0036 }
}

instrument_name: четыре факта в одной строке

BTC-25SEP26-110000-C. Базовый актив — BTC, дата экспирации — 25 сентября 2026 года, страйк — 110,000, опцион колл. В этой строке не указано то, в чём ошибается каждый новый бэктест опционов хотя бы однажды: остальная спецификация контракта. Один контракт соответствует 1 BTC базового актива, премия котируется и выплачивается в BTC, а экспирация происходит в 08:00 UTC, а не в 16:00 по какому-либо местному времени.

Именно котировка в BTC — здесь острый угол. Mark 0.0041 означает 0.0041 BTC, или примерно $395 по индексу. Если сохранить это значение как цену, а потом объединить с P&L стратегии, выраженным в USD, вы незаметно создадите позицию, долларовая стоимость которой меняется вместе со спотом, даже когда опцион не меняется. Я видел бэктест, в котором длинный колл принёс прибыль в день падения BTC только потому, что премию посчитали в долларах, хотя исследователь фактически оказался в короткой позиции по премии, номинированной в монетах, в системе учёта в долларах. На поиски ошибки ушло два дня.

index_price и underlying_price: разница $568, и верна только одна цена

Разница между ними составляет $568.26, и это не ошибка. index_price — индекс BTC на Deribit: ориентир спотовой цены, рассчитанный как комбинация котировок крупных бирж, и цена, относительно которой в конечном счёте рассчитываются контракты. underlying_price — цена синтетического форварда для конкретной даты экспирации, SYN.BTC-25SEP26, рассчитанная на основе фьючерсного рынка для той же даты. Перенос позиции на восемнадцать дней при годовой ставке около 12% и даёт эти $568.

Все греки в данных, как и mark IV, рассчитаны от форварда. Если вы сами пересчитываете подразумеваемую волатильность, используя спот просто потому, что загрузили именно этот ряд, получите другое значение для каждого страйка, причём ошибка будет систематически направленной: коллы покажутся дешевле по волатильности, чем они есть, а путы — дороже. Для контракта с экспирацией через 18 дней и базисом 0.6% ошибка в mark IV на этом страйке составит примерно полтора пункта. Это больше, чем большинство волатильностных преимуществ, на которых строят стратегии.

interest_rate: 0.0означает, что Deribit учитывает дисконтирование через форвард, а не через ставку. Не ищите безрисковую кривую, которую можно подставить: так вы учтёте это дважды.

mark_price и mark_iv: цена, по которой нет встречной стороны

0.0041 BTC. Никто не платил эту цену. Deribit рассчитывает mark по аппроксимированной поверхности волатильности, привязанной к стакану, но сглаженной по страйкам и срокам экспирации, чтобы маржинальные требования и ликвидации не скакали из-за одного широкого спреда. Mark используется для маржи и нереализованного P&L и отображается во всех методах получения позиций.

Из-за этого mark — самая соблазнительная цена исполнения в исследованиях криптоопционов и одновременно самая неправильная. Бэктест, который покупает по mark и продаёт по mark, торгует против сглаживающего сплайна. Он покажет Sharpe. Этот Sharpe описывает алгоритм аппроксимации поверхности и ничего не говорит о том, смогли бы вы заключить сделку.

Мы в итоге закрепили такое правило: mark используется для маржи, риска и атрибуции по mid-to-mid. Для исполнения он не подходит никогда. Если бэктесту нужна цена исполнения, а снимка стакана на эту временную метку нет, запуск помечается как неоценённый, а не исполняется по mark. Лучше потерять строку.

best_bid 0.0038 / best_ask 0.0045: спред в трёх единицах измерения

Семь тиков в BTC. Это $67.50 для опциона стоимостью $395, или 17% премии. В единицах волатильности спред составляет 3.5 пункта: 40.4 на bid и 43.9 на ask. Именно так ответит опционный трейдер, если спросить его, насколько широк спред.

Объёмы не менее важны, чем цены: 4.9 контракта на bid и 12.1 на ask. Размер в опционах Deribit указывается в контрактах, то есть 4.9 BTC базового актива, примерно $472k номинала, но всего 0.47 BTC дельты при этом страйке. Для существенной гаммы стратегии нужны десятки контрактов, а видимый объём на лучших ценах составляет лишь часть этого количества. Следующий уровень обычно отстоит ещё на два-три тика. В любом бэктесте опционов с моделью объёма нужно проходить стакан или предполагать цену RFQ/блочной сделки; эти допущения дают совершенно разные результаты.

last_price: 0.0043— это сделка, совершённая в какой-то момент за последние 24 часа, возможно, девятнадцать часов назад и при совершенно другом уровне спота. Для инструмента, которым торгуют 61 контракт в день, такая цена по определению устарела. Не стройте на ней ряд доходности.

греки: пять чисел и четыре системы единиц

Этот блок наносит больше незаметного ущерба, чем все остальные данные вместе: каждое значение размерностно корректно, но единицы измерения не те, какие можно предположить.

ПолеЗначениеЕдиницыТипичная ошибка
delta0.0962BTC базового актива на контрактСчитают долларовой дельтой
gamma0.0000189Изменение Δdelta на каждый $1 изменения базового активаСчитают значением на движение в 1%
vega36.77USD на 1 пункт волатильностиСчитают значением на 100% волатильности или в BTC
theta-42.91USD за календарный деньСчитают значением за торговый день
rho4.61USD на 1% ставкиИгнорируют, и правильно делают

Delta выражена в монетах, vega и theta — в долларах, gamma — на каждый доллар движения спота. Если смешать дельту в монетах с агрегированным риском в долларах, книга, которая выглядит нейтральной, может оказаться длинной на 40 BTC. А theta за календарный день особенно бьёт по стратегиям на выходные: от закрытия в пятницу до открытия в понедельник проходит три дня распада, здесь это около $129 на контракт, хотя торговых сессий не было. Если бэктест идёт по барам и применяет theta на каждом шаге, выходные исчезают из расчётов, и результат всех стратегий с короткой премией незаметно оказывается хуже реального.

open_interest 812.7, volume 61.2: где сосредоточена активность цепочки

Открытый интерес — восемьсот контрактов на страйке, где вчера проторговали шестьдесят один. Это реальный активный страйк: 110,000 — круглый уровень за три недели до экспирации, именно здесь концентрируется поток сделок. Пройдите ещё на два страйка, до 120,000, — открытый интерес упадёт на порядок. На некруглом страйке с немесячной экспирацией вы найдёте инструменты с bid, ask на сорок процентов выше и без сделок за неделю.

Бэктест по всей цепочке, который перебирает каждый листинг, с готовностью исполнит сделки по всем этим инструментам. Мы ввели совместное условие для отбора: котируемый спред меньше 20% mark, не менее 1 контракта по обе стороны и ненулевой объём за предыдущие 24 часа. В обычный день такой фильтр проходит примерно треть всей цепочки BTC. Именно в остальных двух третях и живёт фальшивая альфа.

Поле, которого нет в данных

В этом объекте ничего не сказано о стоимости сделки. Deribit берёт 0.0003 BTC за опционный контракт — одинаково для maker и taker, то есть 0.03% от базового актива, а не от премии, с ограничением в 12.5% цены опциона. Для этого контракта комиссия составляет $28.92 в одну сторону, без ограничения: 12.5% от 0.0041 равны 0.000513, а фиксированная комиссия меньше этой суммы.

Когда комиссия рассчитывается от номинала, а премия зависит от волатильности, стоимость относительно уплаченной суммы резко растёт по мере удаления страйка из денег.

$67.50котируемый спред (17% mark)
$28.92комиссия на контракт в одну сторону
31%полный круг в процентах от премии
3.5 пункташирина bid/ask в единицах волатильности

Купите по ask за 0.0045 ($434), продайте по bid за 0.0038 ($366), дважды заплатите комиссию: полный круг обойдётся в $125.80 для контракта с mark $395. Чтобы выйти в ноль, ваша гипотеза должна принести доход в размере 31% премии. Именно поэтому идею на длинную гамму отклонили, и дело было вовсе не в сигнале.

Ещё интереснее становится, если посчитать стоимость дельты: комиссии зависят от числа контрактов, а число контрактов обратно пропорционально дельте. Для расчёта будем считать mark IV неизменной и равной 42.1% на всех страйках (у реальной цепочки есть перекос, а в крипте крыло коллов обычно торгуется выше ATM, поэтому эта таблица даёт оптимистичную оценку):

ИнструментMark (BTC)DeltaКонтрактов на 1 BTC дельтыКомиссия в одну сторонуСтоимость 1 BTC дельты
97000-C (ATM)0.03730.5181.93$28.92$55.80
110000-C0.00410.09610.4$28.92$301
120000-C0.00040.01379.4$4.82 (с ограничением)$383
BTC perp—1.01.0$48.21$48.21

Ограничение в 12.5% в нижней строке действительно играет роль: без него глубокий wing обходился бы в $2,300 за 1 BTC дельты, и стратегии с лотерейными опционами были бы не просто плохими, а арифметически невозможными. Даже с ограничением покупка экспозиции через страйк 120,000 обходится примерно в восемь раз дороже, чем через бессрочный контракт. Опционы — недешёвый способ выразить направленную ставку, и если бэктест показывает обратное, значит, эта таблица в нём отсутствует.

08:00 UTC, 25 сентября

Последнее, чего тикер вам не сообщает, — как завершится позиция. Deribit рассчитывает опционы по 30-минутному среднему индекса перед 08:00 UTC в день экспирации и берёт комиссию за поставку в размере 0.00015 BTC с опционов в деньгах, также ограниченную 12.5% расчётной стоимости.

Для бэктеста это означает две вещи. Во-первых, окно усреднения имеет значение, и здесь можно ошибиться: опцион, который в 07:59 находится в деньгах на $300, может истечь без стоимости, если последние полчаса выдались неудачными. Бэктест, рассчитывающий цену по отметке на 08:00, будет расходиться с вашим демосчётом на несколько базисных пунктов в большинстве экспираций и значительно сильнее — в некоторых. Во-вторых, комиссия за поставку взимается вне зависимости от того, нужна ли вам экспирация. Стратегия, удерживающая позицию до экспирации, платит три комиссии за цикл, а закрывающаяся в 07:30 — две комиссии и спред. Что дешевле, зависит от страйка; точка переключения находится примерно у премии 0.0012 BTC. Мы рассчитываем это для каждой позиции отдельно, а не задаём единое правило.

Изначально я хотел написать пост о прогнозировании волатильности. Вместо этого неделю разбирался с единицами измерения и ограничениями комиссий — примерно так и выглядит соотношение гламура и реальности в исследованиях опционов.

Двадцать полей. Две цены, которые намеренно расходятся, одна цена, по которой никто не торговал, греки в четырёх системах единиц, а модель издержек целиком находится за пределами данных — на странице документации. Если вы строите бэктест опционов, начните с функции, которая превращает такой объект в позицию с корректными единицами измерения и полным учётом издержек: спреда, комиссии, ограничения, поставки, разницы между монетами и долларами. Любая последующая стратегия унаследует то, что заложено в этой функции.

криптоопционыDeribitподразумеваемая волатильностькомиссиибэктестирование
ПоделитьсяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Все статьи