Собрано 20 августа 2026. Рыночная часть — по первичным нотисам Cboe, релизам SEC/FINRA и квартальным отчётам Cboe. Исследовательская часть — собственный бэктест на 5158 наблюдениях: 21 имён из GTH-списка, 2025-08-18 — 2026-08-18, исполнимые NBBO по обеим опционным ногам и по акции.
Пять событий, три из которых уже действуют, и одно — главный риск для овернайт-стратегий.
Общий ADV в Q2 2026 — 72.8 млн контрактов, +19%% год к году; в Q1 было 68.6 млн против 60.4 млн годом ранее. Но разложение по сегментам показывает, что «объёмы растут» — это не про опционы на акции.
Читается так: бум — в индексах, ETF и однодневках. Опционы на отдельные акции остаются 74% equity-объёма, но растут почти плоско (+3%). Если ждать, что новая ликвидность сама придёт в single-name премаркет, — ждать придётся долго.
Пунктиры — сигнальные времена твоих стратегий. Зелёные попадают в новое окно, красные нет. Ключевой вывод: 18:00 ET у AMC10 и 19:00 у MOC→19:00 не покрываются вообще — Curb закрывается в 16:15. Из твоих часов в новое окно попадает только утро pm_moo.
Критерий допуска за 6 месяцев: опционный ADV ≥ 150 тыс. контрактов, капитализация ≥ $50 млрд, ADV акции ≥ 10 млн шаров. Пересечение с твоим юниверсом ADV 2M+ (1836 тикеров) — это 21 мега-кап, то есть именно те имена, которые почти никогда не дают гэп ±10% на отчёте.
Прежде чем строить что-либо на премаркетных опционах, я проверил, есть ли они в данных. Зонд по NVDA/TSLA/AAPL/AMD/PLTR/META/MSFT/AMZN/MU/AVGO за 17–20 августа:
| Проверка | Результат |
|---|---|
| Двусторонние котировки до 09:30 | нет — только 0/0 в 08:00, 08:05, 08:10 … 08:30, 09:00 |
| Первый реальный квот, NVDA ATM 19 авг | 09:30:00.089 |
| Минутные бары в окне 07:15–09:30 | 0 баров по всем 20 контрактам |
| Дневной объём против суммы минуток RTH | совпадает (разница −2.0% — артефакт агрегации, не внешний объём) |
| Объём в окне 16:00–16:15 | только бар 16:00; TSLA 15 и 8 контрактов |
| /v3/trades по опционам | 403 NOT_AUTHORIZED — принты вне тарифа |
Вендор в блоге заявил, что расширенные часы приходят в те же trades/quotes эндпоинты «без изменений в коде» с 17 августа. В исторической ленте REST этого пока не видно. Отсюда два следствия. Первое: любой бэктест премаркетной опционной сессии сегодня строится на воздухе — не на малом N, а на нулевом. Второе: когда данные включат, твои существующие опционные и интрадей-агрегаты начнут втягивать GTH-принты, если фильтр 09:30–16:00 не выставлен явно. Дневные бары останутся RTH-only, а минутные — нет.
Опцион не имеет своей «цены акции» — но её можно из него достать. Пут-колл паритет говорит, что колл минус пут плюс дисконтированный страйк должны равняться цене акции. Отсюда синтетическая цена:
Если запас положительный — колл дорог относительно пута, рынок опционов «оценивает» акцию выше. Отрицательный — путы дороги, что классически означает дорогой borrow: шортисты не могут занять бумагу и покупают путы вместо шорта. Именно поэтому запас нельзя брать сырым. Он состоит из четырёх слоёв, и торговый сигнал — только в четвёртом:
| Слой | Природа | Масштаб в наших данных | Сигнал? |
|---|---|---|---|
| Стоимость borrow | постоянный уровень имени | медиана 1.6 bps по книге | нет — это уровень |
| Дивиденд до экспирации | скачок в конкретные даты | до $0.85 на MSFT — в 4 раза больше порога $0.20 | нет |
| Право раннего исполнения | смещение американского пута | единицы центов на ATM, DTE 5 | нет |
| Квантование спредом | котировки дискретны | ширина синтетики 20.2 bps | нет |
| Асинхронность часов | ноги замерены в разные мгновения | 81% всей дисперсии | нет, и это главная ловушка |
| Информированный поток | кто-то знает и торгует опционом | то, что осталось | только это |
Отсюда и метод: сначала выровнять часы, потом снять с имени его собственный постоянный уровень (скользящая медиана 20 дней, строго со сдвигом), и только остаток проверять как сигнал.
Первый прогон брал опционные котировки на 15:55:00, а цену акции — как close минутного бара 15:55, то есть примерно 15:55:59. Рассинхрон до 60 секунд. На бумаге за $200 минута движения — это $0.10–0.20, ровно тот масштаб, который мы ищем. Замер измерял не разницу цен, а дрейф.
И направление ошибки не безобидное: на несинхронных данных правило показывало -7.01 bps при t=-1.17 — то есть уверенный минус, которого в реальности нет. Построил бы на этом «инверсию сигнала» — торговал бы шум.
Замер в 15:55 ET — последняя минута, когда оба рынка точно открыты. Ближайшая недельная экспирация с DTE 3–11, страйк ближайший к цене. Вход по цене акции в момент замера, выход — аукцион открытия следующего дня. Все три ноги — «последняя двусторонняя котировка на момент или раньше», свежесть каждой записана. Раскрытие: это ровно то же построение, что просил вопрос, но на инструменте и в часах, где данные существуют.
Прежде чем говорить о предсказании, надо проверить простое: выходит ли запас за пределы исполнимых границ. Синтетику продают, отдавая колл по биду и забирая пут по аску; покупают наоборот. Если полоса синтетики не пересекается с NBBO акции — это настоящая конверсия, свободные деньги.
Запас в семь раз меньше полосы, внутри которой он измеряется. То, что остаётся, не покрывает даже комиссию: медиана $0.022 минус $0.013 = $0.009 на акцию, или $0.85 на бокс из 100 акций — и это требует одновременного исполнения трёх лег по касанию против маркет-мейкера.
| Правило | N | лонг/шорт | avg, bps | медиана | WR, % | t |
|---|---|---|---|---|---|---|
| как задано: |запас| > $0.20 (несинхронно) | 2377 | 1367 / 1010 | -7.01 | -10.75 | 45.6 | -1.17 |
| как задано: |запас| > $0.20 (синхронно) | 548 | 385 / 163 | +11.28 | +10.32 | 53.5 | +1.03 |
| |запас| > $0.10 | 1473 | 1031 / 442 | +11.33 | +6.78 | 53.0 | +1.92 |
| |запас| > 10 bps | 437 | 319 / 118 | -1.71 | +5.66 | 51.3 | -0.13 |
| |запас| > 20 bps | 124 | 92 / 32 | -21.23 | -1.33 | 50.0 | -0.96 |
| нормированный |z| > 1.0 | 1373 | 669 / 704 | -3.38 | +1.98 | 50.5 | -0.49 |
| нормированный |z| > 1.5 | 702 | 351 / 351 | -0.27 | -6.28 | 48.3 | -0.03 |
| нормированный |z| > 2.0 | 374 | 196 / 178 | -11.11 | -10.58 | 46.3 | -0.89 |
Порог не даёт монотонности: жёстче условие — хуже результат (>10 bps даёт -1.7, >20 bps даёт -21.2). Это подпись шума, а не эджа. Нормировка на собственный уровень имени тоже ничего не вытаскивает.
| Выход | N | avg, bps | медиана | WR, % | t |
|---|---|---|---|---|---|
| премаркет 09:29 | 545 | +11.63 | +12.21 | 53.8 | +1.05 |
| открытие (аукцион) | 548 | +11.28 | +10.32 | 53.5 | +1.03 |
| следующие 11:00 | 548 | +6.59 | +8.55 | 51.3 | +0.49 |
| следующий клоуз | 548 | +12.89 | +2.74 | 50.7 | +0.86 |
Выход в премаркет 09:29 практически совпадает с аукционом: к моменту открытия гэп уже сформирован в премаркете. Это, кстати, самостоятельно полезный факт — переносить выход с аукциона на премаркет почти ничего не меняет.
Правило в плюсе 8 месяцев из 13 — но амплитуда от -47 до +118 bps при N от 16 до 90 сделок в месяц. Это не режимность, это разброс.
Наблюдённые +11.28 bps попадают ровно в тело случайного распределения: p = 0.31. Отдельно смотрю разложение по дрейфу — из +11.28 bps +6.01 bps приходит просто из того, что лонгов 385, а шортов 163, а безусловный овернайт-дрейф на этих именах равен +14.82 bps (t=+4.23). Собственный вклад сигнала: +5.28 bps.
Правило «расхождение больше $0.20 с выходом на открытии» на 21 самом ликвидном имени рынка за 12 месяцев не имеет эджа: p=0.31, вклад сигнала +5.28 bps, книга по правилу Sharpe 0.92 против 2.09 у бессмысленного «держать всё вдолгую овернайт». Арбитражной версии тоже нет — запас в 7 раз уже спреда. Причина не в реализации, а в том, что величина, которую правило ловит, на 81% состоит из рассинхронизации часов.
Возражение по делу: 0.2% могло быть просто неудачным числом, и редкость сама по себе не приговор. Поэтому здесь свип по трём разным координатам, и в каждой строке — сумма за весь год в долларах, а не средний результат на наблюдение. Стратегия, срабатывающая четыре раза в год, вполне годится, если эти четыре раза платят.
Прежде чем свипать, надо было посмотреть на распределение. Всего исполнимых случаев 46 на общую сумму $606, но медиана — $40.72. Значит сумму делают единицы.
| Тикер | дата | $ на размер | край, bps | полоса, bps | свежесть котировки, с | контрактов |
|---|---|---|---|---|---|---|
| BAC | 2026-06-02 | 56.90 | 5.42 | 11.4 | 1.4 | 20 |
| TSM | 2025-09-15 | 46.47 | 1.78 | 11.5 | 2.0 | 10 |
| BAC | 2025-11-26 | 40.84 | 7.70 | 20.7 | 0.8 | 10 |
| AMZN | 2026-02-06 | 40.60 | 3.84 | 15.1 | 0.6 | 5 |
| TSLA | 2025-12-29 | 40.11 | 2.18 | 4.3 | 1.4 | 4 |
| NVDA | 2025-12-30 | 33.82 | 1.64 | 1.6 | 0.6 | 11 |
Строки с устаревшей ногой несут 0.0% всей суммы. Шесть из восьми крупнейших «возможностей» — один день, и свежесть котировок там 20–76 секунд. Квот, не обновлявшийся минуту, — не цена, которую можно взять. Поэтому всё дальше считается только там, где все три ноги проквотированы в пределах 2 секунд: 2729 строк из 2729.
| порог, bps от цены | N | сигналов в день | полоса, bps | до экспирации, bps | положительных, % | случаев с деньгами | $ медиана | $ за год |
|---|---|---|---|---|---|---|---|---|
| 5 | 494 | 1.98 | 39.7 | -17.22 | 3.4 | 17 | $10.75 | $305 |
| 10 | 123 | 0.49 | 68.2 | -24.98 | 4.1 | 5 | $40.60 | $148 |
| 20 | 20 | 0.08 | 98.6 | -31.77 | 10.0 | 2 | $21.25 | $43 |
| 30 | 5 | 0.02 | 105.3 | -42.42 | 20.0 | 1 | $1.67 | $2 |
На синхронных котировках эта координата не просто не работает — она ухудшается с ужесточением порога, и выборка исчезает.
| порог, базис / полполосы | N | сигналов в день | полоса, bps | до экспирации, bps | положительных, % | случаев с деньгами | $ медиана | $ за год |
|---|---|---|---|---|---|---|---|---|
| 0.50 | 575 | 2.31 | 10.3 | -3.49 | 8.0 | 46 | $9.41 | $606 |
| 0.80 | 227 | 0.91 | 7.3 | -0.97 | 20.3 | 46 | $9.41 | $606 |
| 1 | 120 | 0.48 | 5.9 | -0.12 | 38.3 | 46 | $9.41 | $606 |
| 1.20 | 62 | 0.25 | 4.5 | +0.63 | 72.6 | 45 | $9.63 | $605 |
| 1.50 | 36 | 0.14 | 4.1 | +1.26 | 94.4 | 34 | $10.09 | $528 |
| 2 | 17 | 0.07 | 2.9 | +1.94 | 100.0 | 17 | $13.62 | $337 |
| 3 | 2 | 0.01 | 1.9 | +1.44 | 100.0 | 2 | $29.29 | $59 |
Выше 1.0 исполнимый край положителен по построению. Именно здесь сделка и живёт.
Вот это — настоящий результат: при пороге 1.5×полполосы положительных 94.4% и запертый край +1.26 bps, при 2× — 100% и +1.94 bps. Сделка верифицирована. Но посмотри на последний столбец: годовая сумма при этом падает с $528 до $337, потому что событий становится меньше, а размер одного не растёт пропорционально.
| порог, чистый край в bps | N | сигналов в день | полоса, bps | до экспирации, bps | положительных, % | случаев с деньгами | $ медиана | $ за год |
|---|---|---|---|---|---|---|---|---|
| 0 | 46 | 0.18 | 5.4 | +1.15 | 100.0 | 46 | $9.41 | $606 |
| 0.25 | 36 | 0.14 | 4.6 | +1.43 | 100.0 | 36 | $10.98 | $579 |
| 0.50 | 28 | 0.11 | 4.2 | +1.72 | 100.0 | 28 | $11.66 | $501 |
| 1 | 17 | 0.07 | 4.3 | +2.40 | 100.0 | 17 | $19.47 | $404 |
| 2 | 6 | 0.02 | 13.3 | +4.34 | 100.0 | 6 | $40.36 | $194 |
| 5 | 2 | 0.01 | 16.1 | +6.56 | 100.0 | 2 | $48.87 | $98 |
Здесь доля положительных равна 100% по построению — фильтр и есть условие положительности. Смотреть надо на последний столбец.
В принципе — да, но здесь редкость не помогает. Ужесточая порог, ты поднимаешь размер одной сделки с $9.41 до $48.87, а годовая сумма при этом сползает с $606 до $98. Ограничение — не твоя избирательность, а размер самого множества возможностей: их столько, сколько есть, и порог их только отсекает.
| базис > | полоса | N | до экспирации, bps |
|---|---|---|---|
| 5 bps | <10 | 7 | +1.00 |
| 5 bps | <20 | 87 | -2.38 |
| 5 bps | <40 | 250 | -7.67 |
| 5 bps | любая | 494 | -17.22 |
| 10 bps | <10 | 0 | — |
| 10 bps | <20 | 4 | +2.22 |
| 10 bps | <40 | 19 | -4.38 |
| 10 bps | любая | 123 | -24.98 |
| 20 bps | <10 | 0 | — |
| 20 bps | <20 | 0 | — |
| 20 bps | <40 | 1 | +7.70 |
| 20 bps | любая | 20 | -31.77 |
| 30 bps | <10 | 0 | — |
| 30 bps | <20 | 0 | — |
| 30 bps | <40 | 0 | — |
| 30 bps | любая | 5 | -42.42 |
Два условия взаимно исключающие: «базис больше 20 bps» и «полоса меньше 20 bps» вместе дают N=0. Широкий базис и узкий рынок не встречаются одновременно — потому что широкий базис и есть следствие широкого рынка.
Всё выше построено на одном замере в день, в 15:55. Арбитражное окно живёт секунды, и снимок раз в сессию его в принципе не видит. Поэтому — тиковый прогон: полный поток NBBO по обеим опционным ногам и по акции, склеенный в одну временную линию, край считается на каждом обновлении. 3 имён × 3 сессии × 30 минут.
Частота действительно на порядки выше, чем показывал дневной замер. Это подтверждается. Но длительность убивает: медиана 7 миллисекунд, и лишь 20.6% окон стоят дольше половины секунды.
| Фильтр | окон | всего $ | медиана $ | окон на имя за 30 мин |
|---|---|---|---|---|
| любое окно | 194 | $5219.59 | $1.47 | 21.56 |
| стоит ≥ 100 мс | 60 | $2185.88 | $4.06 | 6.67 |
| стоит ≥ 0.5 с | 40 | $1503.98 | $10.11 | 4.44 |
| ≥ 0.5 с И ≥ 0.5 bps | 17 | $1117.54 | $37.99 | 1.89 |
| ≥ 1 с И ≥ 1 bps | 5 | $503.45 | $51.91 | 0.56 |
Из 194 окон 190 приходится на 2026-08-11, и $5174 из $5220. Достижимых окон (стоят ≥ 0.5 с и дают ≥ 0.5 bps) всего 17, и вне того дня их ноль.
При этом 2026-08-11 — не сбой данных, а быстрый рынок: обновлений 17 717 против 9 582 и 8 865, медианная свежесть котировки 0.81 с против 1.5–1.7 с в другие дни, полоса уже. То есть окна открываются именно тогда, когда рынок быстро идёт — экономически это осмысленно, но означает, что поток событий крайне неровный.
Отсюда я не буду экстраполировать годовую цифру. Наивное масштабирование этих $1118 на полную сессию и год даёт шестизначное число, и оно было бы построено на одном получасе одного дня. При N=1 дне отличить «так бывает на каждом пятом дне» от «так случилось один раз» невозможно.
| Тикер | дата | длительность, с | край, bps | контрактов | $ на размер | полоса, bps |
|---|---|---|---|---|---|---|
| AAPL | 2026-08-11 | 14.49 | 1.29 | 150 | $288.37 | 3.0 |
| AAPL | 2026-08-11 | 17.84 | 0.63 | 113 | $136.49 | 3.3 |
| AAPL | 2026-08-11 | 83.46 | 0.96 | 113 | $134.43 | 4.6 |
| AAPL | 2026-08-11 | 1.88 | 0.63 | 69 | $132.65 | 4.3 |
| NVDA | 2026-08-11 | 6.87 | 1.85 | 29 | $116.42 | 2.3 |
| AAPL | 2026-08-11 | 0.79 | 0.63 | 43 | $82.67 | 4.3 |
| AAPL | 2026-08-11 | 3.66 | 1.61 | 27 | $51.91 | 3.6 |
| AAPL | 2026-08-11 | 5.30 | 0.63 | 20 | $38.45 | 3.8 |
Это выглядит как настоящие сделки: окна по 2–83 секунды, 11–150 контрактов на тонкой ноге, $9–288 каждое. Но одна оговорка, которую данные не покрывают: выставленный размер взят по консолидированному NBBO, а лучший бид на колле и лучший аск на путе могут стоять на разных биржах из восемнадцати. Реальный филл требует одновременной маршрутизации в три места и очереди в каждом, так что «размер на NBBO» — это верхняя оценка, а не то, что достанется.
Это уже не направленная ставка, а классическая конверсия. Если синтетика дороже акции — продаём синтетику (продать колл, купить пут) и покупаем акцию; если дешевле — обратное, реверсал. Позиция дельта-нейтральна по построению, поэтому вопрос не «куда пойдёт цена», а сойдётся ли базис и хватит ли его на пересечение спредов. N=4627, имён 21, вход 15:55 ET.
| Порог, bps | N | доля дней, % | ширина рынка на входе, bps | она же в 09:31 | |базис|, bps | базис / полполосы |
|---|---|---|---|---|---|---|
| 0 | 4627 | 100.00 | 18.7 | 40.9 | 2.7 | 0.29 |
| 5 | 1012 | 21.87 | 38.5 | 83.7 | 7.9 | 0.46 |
| 10 | 340 | 7.35 | 60.7 | 111.4 | 14.5 | 0.50 |
| 15 | 155 | 3.35 | 79.3 | 125.8 | 20.5 | 0.53 |
| 20 | 86 | 1.86 | 96.1 | 147.1 | 25.5 | 0.57 |
| 30 | 33 | 0.71 | 126.0 | 274.6 | 42.2 | 0.74 |
Читается так. Медианная ширина рынка синтетики — 18.7 bps. Но среди дней, где базис превысил 20 bps, она уже 96.1 bps, то есть в пять раз шире. Причина механическая: mid может отойти от справедливой цены на 20 bps только если рынок достаточно широкий, чтобы это позволить. На NVDA с полосой 8.8 bps отклонение mid на 20 bps физически почти невозможно.
Последний столбец — отношение базиса к половине полосы, то есть к стоимости одного входа. Оно нигде не доходит до единицы: 0.57 при пороге 20 bps и 0.74 при 30 bps. Значит видимый край не покрывает даже одну сторону входа, не говоря про round-trip. Фильтр «базис больше 0.2%» находит не мисприсинг, а моменты, когда опцион почти не квотируется — ровно те, в которые его нельзя взять.
В хвостах базис откатывает к нулю на 80–90%, корреляция входа с выходом 0.049 — то есть это не случайное блуждание, величина действительно схлопывается. Экономика идеи правильная. Но sd базиса на входе 7.3 bps, а в 09:31 уже 30.8 bps: сразу после открытия само измерение становится шумнее, чем то, что мы ловим.
| Порог | N | до экспирации | разгрузка 09:31 | MOO акция + 09:31 опцион | следующие 15:55 |
|---|---|---|---|---|---|
| 10 bps | 340 | -27.1 WR 11% | -124.5 WR 2% | -116.2 WR 10% | -90.9 WR 0% |
| 15 bps | 155 | -34.4 WR 17% | -156.6 WR 5% | -147.0 WR 10% | -127.0 WR 0% |
| 20 bps | 86 | -42.1 WR 22% | -197.3 WR 7% | -189.9 WR 7% | -143.2 WR 0% |
| 30 bps | 33 | -59.9 WR 33% | -287.5 WR 6% | -278.6 WR 6% | -182.7 WR 0% |
В каждой ячейке средний результат в bps и рядом WR. Все выходы отрицательные, и что важно — разгрузка около открытия хуже всего (−197 bps при пороге 20), потому что в 09:31 опционные спреды вдвое шире обычных. Сам выход «MOO» вообще невозможен как одна сделка: опционы не участвуют в аукционе, акция уходит в 09:30:00, а опцион — только когда возобновится квотирование. Первый двусторонний квот я замерил на 09:30:00.089, то есть ногу закрыть можно почти сразу, но одновременности нет.
Тут разгружаться не нужно: паритет на экспирации точный, базис сходится к нулю сам. P&L зафиксирован на входе и равен запертому базису.
| Порог | N | средний, bps | положительных, % | средний у выигрышных, bps |
|---|---|---|---|---|
| 0 bps | 4627 | -12.3 | 2.23 | +5.5 |
| 10 bps | 340 | -27.1 | 10.88 | +13.8 |
| 20 bps | 86 | -42.1 | 22.09 | +22.3 |
| 30 bps | 33 | -59.9 | 33.33 | +28.8 |
| 50 bps | 14 | -86.3 | 35.71 | +39.1 |
Обрати внимание на форму: чем жёстче порог, тем хуже средний (−27 → −86 bps), хотя доля положительных растёт. Это подпись отбора по широкому спреду — редкие крупные попадания не компенсируют того, что типичная сделка входит глубоко внутрь чужого спреда.
| Тикер | сигналов | цена | ширина рынка, bps | средний, bps |
|---|---|---|---|---|
| NOK | 43 | 8.32 | 124 | -78.8 |
| PFE | 10 | 24.95 | 50 | +16.2 |
| HOOD | 5 | 126.61 | 118 | -39.8 |
| INTC | 5 | 46.61 | 99 | -34.6 |
| MU | 5 | 225.16 | 71 | -11.1 |
| BAC | 4 | 52.38 | 26 | +2.7 |
| AMZN | 2 | 238.22 | 44 | -0.4 |
| AVGO | 2 | 418.95 | 78 | -18.7 |
| PLTR | 2 | 148.11 | 34 | +6.8 |
| TSM | 2 | 428.56 | 74 | -16.1 |
| GOOG | 1 | 319.10 | 6 | +15.9 |
| GOOGL | 1 | 319.23 | 11 | +14.0 |
| META | 1 | 614.76 | 3 | +20.5 |
| NFLX | 1 | 75.70 | 133 | -40.1 |
| NVDA | 1 | 182.79 | 8 | +35.7 |
| TSLA | 1 | 419.32 | 6 | +37.2 |
Половина всех сигналов — NOK: акция за $8.32 с полосой синтетики 124 bps. Порог в процентах на таком имени срабатывает постоянно и означает ровно одно — опцион там почти не торгуется. А если требовать синхронные котировки с обоих концов, сигнал почти исчезает: 7 из 1850 строк.
Выставить лимит по mid на обеих опционных ногах и держать до экспирации — тогда запертый P&L равен самому mid-базису минус комиссия. Это сторона маркет-мейкера в той же самой сделке.
| Порог | N | вход по mid (мейкер), bps | вход с пересечением (тейкер), bps | спред стоит, bps |
|---|---|---|---|---|
| 10 bps | 340 | +14.4 | -27.1 | 41.5 |
| 20 bps | 86 | +26.8 | -42.1 | 68.8 |
| 30 bps | 33 | +43.1 | -59.9 | 103.1 |
Вот и весь спор. При пороге 20 bps мейкерская сторона даёт +26.8 bps, тейкерская — -42.1 bps, а разница 68.8 bps и есть спред. Про направление базиса спорить не о чем: он сходится, и сходится ровно на ту величину, которую ты видишь. Спор только о том, кто получает половину спреда.
Оговорка, без которой мейкерская колонка вводит в заблуждение: пассивный лимит по mid исполняется не всегда, а выборочно — тебя наливают именно тогда, когда контрагент знает, куда базис поедет дальше. Плюс +26.8 bps — это плата за этот риск, а не бесплатные деньги. Замерить adverse selection на этих данных нельзя: у меня нет истории собственных заявок.
Арбитраж есть тогда, когда бид синтетики перебивает аск акции или наоборот. Вот на это и надо фильтровать, а не на mid. Считаю по исполнимым ценам, минус комиссия двух опционных лег, только на свежих котировках.
Настоящий арбитраж существует — но живёт он в противоположном режиме от того, куда указывает фильтр 0.2%: у этих случаев полоса 5 bps, то есть рынок узкий, а не широкий. И размер: 46 случаев за год на 21 самом ликвидном опционном имени США, медиана $9.41 на сделку при связанном капитале $130365. Итого $606 за двенадцать месяцев, если стоять первым в очереди во всех 46 случаях.
Это не стратегия, это работа маркет-мейкера. Как тейкер ты структурно платишь половину полосы на входе и половину на выходе; зарабатывает тот, кто эту полосу выставляет.
Вот это и есть ответ. На NVDA расхождение между стоком и опционом при корректном замере имеет медиану 3.7 цента — в пять раз меньше, чем ширина собственного рынка опциона (18 центов). Порог $0.20 — это 3.0 стандартных отклонений запаса; за год он сработал один раз, и то на несвежих котировках. Если в терминале видно «запас $0.20 на NVDA» — почти наверняка сравниваются цены из разных мгновений, либо котировка опциона старая.
Формальная конверсия на NVDA возникала 33 дней (на свежих ногах 24), медиана $0.022, максимум $0.081 на акцию. После двух опционных лег остаётся меньше цента на акцию — и это в имени с самым узким опционным рынком из всех 21.
| Тикер | N | цена | |запас| med, bps | sd, bps | полоса, bps | свежесть, с | >$0.20, % | конверсия, % | дрейф, bps |
|---|---|---|---|---|---|---|---|---|---|
| AAPL | 250 | 270.02 | 2.0 | 2.9 | 11.1 | 1.9 | 2.4 | 7.2 | +3.4 |
| MSFT | 248 | 449.62 | 2.2 | 3.0 | 13.9 | 1.7 | 15.7 | 2.4 | +3.5 |
| GOOGL | 250 | 315.63 | 2.2 | 3.3 | 14.6 | 1.6 | 4.8 | 2.8 | +9.4 |
| GOOG | 249 | 315.40 | 2.3 | 3.5 | 17.3 | 1.3 | 8.0 | 0.8 | +8.1 |
| TSLA | 250 | 409.09 | 2.0 | 3.6 | 9.0 | 1.2 | 5.6 | 5.2 | +2.0 |
| NVDA | 247 | 187.94 | 1.9 | 3.6 | 8.8 | 1.5 | 0.4 | 13.4 | +17.8 |
| AMZN | 249 | 232.45 | 2.2 | 3.8 | 12.4 | 1.7 | 2.4 | 4.8 | +14.4 |
| AMD | 249 | 232.82 | 2.4 | 3.9 | 19.0 | 1.1 | 12.9 | 0.8 | +36.6 |
| META | 247 | 644.26 | 2.5 | 4.0 | 15.8 | 1.5 | 38.1 | 1.2 | -3.5 |
| PLTR | 250 | 155.50 | 2.5 | 4.0 | 16.6 | 1.6 | 1.2 | 1.2 | +10.3 |
| NFLX | 249 | 93.12 | 2.6 | 4.1 | 16.4 | 2.0 | 15.7 | 4.0 | -42.6 |
| BAC | 244 | 52.70 | 2.4 | 5.4 | 13.0 | 4.0 | 0.0 | 6.6 | +9.3 |
| BABA | 250 | 140.27 | 3.6 | 5.5 | 28.8 | 2.5 | 2.8 | 0.8 | +1.2 |
| TSM | 250 | 340.26 | 4.3 | 6.0 | 38.4 | 1.7 | 30.8 | 2.0 | +30.0 |
| AVGO | 247 | 353.34 | 3.5 | 6.4 | 37.0 | 1.8 | 28.3 | 0.4 | +34.5 |
| ORCL | 250 | 187.24 | 3.3 | 6.4 | 29.4 | 1.0 | 10.0 | 0.4 | +18.3 |
| MU | 248 | 397.05 | 3.8 | 6.7 | 36.8 | 1.4 | 36.3 | 0.8 | +67.3 |
| INTC | 246 | 45.83 | 3.6 | 7.0 | 33.6 | 1.6 | 1.2 | 0.4 | +48.1 |
| HOOD | 250 | 102.48 | 4.1 | 7.4 | 38.1 | 1.8 | 3.2 | 0.0 | +6.8 |
| PFE | 250 | 25.64 | 4.2 | 17.2 | 27.9 | 12.0 | 0.8 | 11.2 | +4.8 |
| NOK | 185 | 8.86 | 13.1 | 26.5 | 86.9 | 38.7 | 0.0 | 0.0 | +38.3 |
NOK и PFE — наглядная иллюстрация, почему порог в долларах бессмысленен: на NOK за $8.86 полоса синтетики 87 bps и свежесть 39 секунд, то есть опцион почти не квотируется, а $0.20 там — 226 bps, недостижимая величина. На META за $644 те же $0.20 — это 3 bps, то есть шум внутри спреда, и порог срабатывает в 38% дней. Порог обязан быть в bps и с поправкой на ширину рынка имени.
Крупнейшие по |запасу| события — вход в 15:55, выход на аукционе открытия. Красная линия — цена входа, зелёная — цена выхода.
Обрати внимание на свежесть в подписях: у самых больших «запасов» котировка одной из ног устаревшая. Это не сделка, это устаревший квот.
Направление — нет. Масштаб — да, и уверенно. ATM-стрэддл, приведённый к одному календарному дню, против реализованного гэпа к открытию:
| Бакет по подразумеваемому движению | N | подразум., bps | реализовано, bps | отношение | дрейф, bps | WR вверх, % |
|---|---|---|---|---|---|---|
| 1 | 860 | 97 | 36 | 0.37 | +2.6 | 52.6 |
| 2 | 860 | 125 | 49 | 0.40 | -6.6 | 52.2 |
| 3 | 859 | 154 | 73 | 0.47 | +13.4 | 52.6 |
| 4 | 860 | 193 | 96 | 0.50 | +25.7 | 55.3 |
| 5 | 859 | 243 | 126 | 0.52 | +22.8 | 53.6 |
| 6 | 860 | 332 | 171 | 0.52 | +31.0 | 52.4 |
Корреляция 0.33, монотонность по всем шести бакетам. Отношение реализованного к подразумеваемому — 0.37…0.52, то есть овернайт-опциональность систематически дороже того, что случается. Важная оговорка: я делю стрэддл на √DTE, а это предполагает равномерную дисперсию по календарным дням; реально ночь несёт лишь часть дневной дисперсии, поэтому отношение ниже единицы частично просто это и отражает, а не только премию за риск. Правильный ответ даёт настоящий P&L продажи стрэддла — ниже.
Второй столбец, на который стоит посмотреть: дрейф растёт вместе с подразумеваемым движением (+2.6 → +31.0 bps). Ночи, за которые опционы просят дорого, в среднем и уходят вверх сильнее. Для книги это довод сайзить овернайт-лонг по подразумеваемому движению, а не равным весом.
Продать ATM-стрэддл в 15:55 по бидам, откупить в 09:31 по аскам. Обе опционные ноги оплачены по касанию в обе стороны — то есть это исполнимый P&L, а не mid-фантазия. N=4627, 21 имён.
Не работает, и не близко. По касанию -53.67 bps на сделку, WR 17.9%, t=-29.48 — то есть проигрыш настолько систематический, что значим в обратную сторону. В процентах от проданной премии это -13.2% за ночь.
Причина видна из сравнения. По mid тот же тест даёт -6.80 bps при WR 62.8% и медиане -28.32 — типичный профиль продажи волатильности: выигрывает часто, проигрывает крупно, и средняя уже отрицательна из-за хвоста. А сверху ложится 47 bps стоимости двух round-trip по опционным спредам. Именно это число, а не направление, делает любые короткие идеи на опционах отдельных акций неисполнимыми для тейкера. И оно подсказывает, чего ждать от GTH: там спреды шире, а обязательств квотить нет вовсе.
Обрати внимание на порядок имён в таблице ниже: наименее убыточные — NVDA и TSLA, у которых самый узкий опционный рынок; катастрофа — NOK, где премия $0.57 при полосе синтетики 87 bps. Ранжирование идёт строго по ширине спреда, а не по волатильности. Это ещё одно подтверждение, что мы смотрим на транзакционные издержки, а не на риск-премию.
| Тикер | N | по касанию, bps | WR, % | премия стрэддла, $ |
|---|---|---|---|---|
| NOK | 141 | -304.23 | 0.7 | 0.57 |
| ORCL | 69 | -111.79 | 1.4 | 10.15 |
| BABA | 58 | -98.80 | 8.6 | 6.07 |
| INTC | 246 | -96.54 | 9.3 | 3.30 |
| MU | 248 | -91.00 | 3.6 | 27.70 |
| PFE | 148 | -87.13 | 1.4 | 0.59 |
| HOOD | 250 | -86.84 | 3.2 | 6.55 |
| TSM | 242 | -65.93 | 0.8 | 14.10 |
| AMD | 249 | -64.86 | 26.5 | 14.15 |
| AVGO | 247 | -60.03 | 6.1 | 14.40 |
| BAC | 242 | -49.10 | 3.7 | 1.39 |
| NFLX | 248 | -37.06 | 4.8 | 3.29 |
| GOOG | 249 | -28.50 | 23.3 | 10.00 |
| META | 247 | -28.11 | 18.2 | 17.75 |
| GOOGL | 250 | -27.90 | 26.8 | 8.35 |
| PLTR | 250 | -24.76 | 19.6 | 8.05 |
| MSFT | 247 | -21.76 | 22.7 | 9.90 |
| AMZN | 249 | -18.26 | 34.9 | 6.31 |
| AAPL | 250 | -11.48 | 32.8 | 5.87 |
| TSLA | 250 | -8.51 | 45.2 | 15.35 |
| NVDA | 247 | -3.81 | 48.6 | 6.40 |
| Идея | Механика | Данные | Готовность | Ожидание |
|---|---|---|---|---|
| Подразумеваемое движение как сайзер | вес овернайт-позиции ∝ стрэддл/√DTE; из таблицы выше дрейф растёт с подразумеваемым | уже собрано | можно считать сегодня | улучшение Sharpe книги без нового сигнала |
| Опционный borrow как шорт-сигнал | запас на 30–60 DTE = подразумеваемая стоимость borrow; всплеск = дорогой шорт | собрано: 556 сигналов AMC10 | ПРОВЕРЕНО — не работает | спред делится на тенор → полоса ±11% годовых, раздел 12 |
| 0DTE Mon/Wed на 8 именах | продажа ATM-стрэддла в день экспирации 09:35 → 15:55 | есть с 26 января 2026 | 1 пул, ~15 мин | короткий горизонт, N около 130 дней на имя |
| Пут вместо шорта в AMC10 | заменить шортовую ногу длинным путом: снимает locate и recall | опционы у 21 имени, но гэпы ±10% там редки | нет пересечения с сигналом | borrow не исчезает — сидит в цене пута через паритет |
| Baseline «сколько гэпа до открытия» | frac(t) = доля овернайт-мува, реализованная к моменту t | собрано: 30 021 событие, 490 сессий | СДЕЛАНО — раздел 13 | к 09:25 уже 100%; смотреть в декабре на frac(04:00) |
| GTH-запас 07:30–09:25 | исходная идея вопроса — запас в премаркетной опционной сессии | сессия с 17 августа, в ленте вендора нет | заблокировано данными | вернуться, когда появится 3–6 месяцев истории |
| Ночной хедж книги на SPX GTH | корректировать хедж овернайт-книги с 20:15 ET вместо слепого SPXL | индексы у вендора отдают 403 — нужен другой источник | нужен фид по SPX | единственный пункт, который бьёт в текущую боль напрямую |
Это была самая перспективная из «похожих» идей: запас на длинном тенорe даёт подразумеваемую стоимость borrow, а всплеск дорогого borrow — документированный шорт-сигнал. Проверял не на абстрактном универсе, а на том, что книга реально шортит: 750 сигналов AMC10 за 24 месяца, оценено 556 (74%), 321 имён. Тенор 44 DTE, замер в 15:55 дня отчёта — то есть до появления сигнала в 18:00, без лукахеда.
И тут ломается всё, причём об арифметику, а не о рынок. Спред делится на тенор. Медианный опционный спред на этих именах — 132 bps от цены; при теноре 0.12 года это ±11% годовых неопределённости в оценке ставки.
Полоса шире самой величины в 99.6% строк. Пригодных к измерению — 30 из 556, то есть 4% исходных сигналов, и на этом огрызке подразумеваемый borrow равен -0.55%, то есть нулю: выживают именно те имена, которые легко занять.
| Величина | Значение |
|---|---|
| Медианный ход AMC10 по SHORT-ноге (N=256) | +163 bps |
| Подразумеваемый borrow, медиана | -0.58% годовых |
| То же за одну ночь | -0.16 bps |
| Подразумеваемый borrow, p90 | 6.70% годовых |
| То же за одну ночь | 1.84 bps |
| Доля эджа, которую съедает borrow в худшем случае | 1.1% |
Если овернайт-финансирование стоит -0.2–1.8 bps против эджа 163 bps, то «borrow 80 bps срезает ⅔ денег» не может быть годовой ставкой фондирования — 80 bps годовых за одну ночь это 0.22 bps. Значит в том расчёте под «borrow» лежит что-то другое: haircut за сделку, отказы locate, более широкие филлы. Это стоит разобрать отдельно — от ответа зависит, ⅔ денег теряются или проценты.
| Квинтиль по borrow | N | borrow, % | ход AMC10, bps | WR, % |
|---|---|---|---|---|
| 1 | 112 | -6.7 | +219 | 60.7 |
| 2 | 111 | -1.8 | +125 | 64.9 |
| 3 | 111 | -0.2 | +58 | 55.0 |
| 4 | 111 | 1.5 | +192 | 65.8 |
| 5 | 111 | 6.5 | +114 | 54.1 |
Верхний квинтиль против нижнего: разница -111 bps при t=-1.22, и немонотонно. Закрыто по двум независимым причинам — величина неизмерима, и даже будь она измерима, за одну ночь она экономически пренебрежима. Возвращаться стоит только с источником реальных borrow-ставок, не выведенных из опционов.
Замер нужен именно сейчас. Все овернайт-эджи книги платятся разрывом между вчерашним клоузом и сегодняшним открытием. Если в декабре появится ликвидная ночная сессия, разрыв начнёт закрываться до 09:30, и отличить сдвиг от смены режима будет уже нечем. Определение зафиксировано, чтобы повтор был сравним:
Юниверс по стоячему правилу: медианный дневной объём ≥ 2 млн шаров, цена ≥ $5. Окно 2024-04-17 — 2026-03-31: 490 сессий, 334 тикеров, N=30021 событий. Открытие берётся из бара 09:30, а не из daily open — там премаркет.
| Время | N | покрытие, % | медиана frac | p25 | p75 | доля ≥80% | не та сторона, % |
|---|---|---|---|---|---|---|---|
| 04:00 | 15321 | 51.0 | 0.664 | 0.243 | 1.000 | 40.5 | 12.9 |
| 05:00 | 20226 | 67.4 | 0.722 | 0.301 | 1.003 | 44.5 | 11.7 |
| 06:00 | 21601 | 72.0 | 0.758 | 0.344 | 1.010 | 46.8 | 10.3 |
| 07:00 | 23836 | 79.4 | 0.758 | 0.389 | 1.000 | 46.4 | 8.5 |
| 07:30 | 24763 | 82.5 | 0.786 | 0.432 | 1.000 | 48.7 | 6.8 |
| 08:00 | 26810 | 89.3 | 0.799 | 0.425 | 1.005 | 49.8 | 8.5 |
| 08:30 | 27603 | 91.9 | 0.877 | 0.578 | 1.030 | 57.8 | 4.9 |
| 09:00 | 28118 | 93.7 | 0.926 | 0.680 | 1.048 | 65.0 | 3.2 |
| 09:15 | 28325 | 94.4 | 0.951 | 0.732 | 1.050 | 69.4 | 2.6 |
| 09:25 | 28762 | 95.8 | 1.000 | 0.915 | 1.040 | 84.8 | 1.0 |
К 09:25 премаркет уже отдал 100% овернайт-мува. Аукциону остаётся 14.7 bps по медиане (p75 39.9 bps). То есть выходы MOO ловят не аукционную премию, а премаркет — и это подтверждается независимо: в разделе 7 выход в 09:29 дал практически тот же результат, что выход на аукционе.
Следствие: в декабре смотреть надо не на аукцион — там уже ноль, ломаться нечему. Смотреть надо на то, насколько раньше завершается мув, то есть на frac(04:00) и frac(07:00).
| Квартиль PM-объёма | N | доля объёма | 04:00 | 07:00 | 08:00 | 09:00 | 09:25 |
|---|---|---|---|---|---|---|---|
| q1 | 7506 | 0.000 | 0.444 | 0.609 | 0.654 | 0.800 | 0.957 |
| q2 | 7505 | 0.004 | 0.583 | 0.662 | 0.695 | 0.871 | 0.999 |
| q3 | 7505 | 0.017 | 0.624 | 0.750 | 0.800 | 0.931 | 1.000 |
| q4 | 7505 | 0.065 | 0.739 | 0.873 | 0.920 | 0.993 | 1.000 |
Зависимость монотонная и сильная: у квартиля с наименьшим премаркетным объёмом к 04:00 реализовано 44.4% мува, у наибольшего — 73.9%. Механизм прямой: больше объёма раньше — мув завершается раньше. Ночная сессия добавляет ровно объём. Вот это и поедет.
Пятиминутный бэкфилл кончается 31 марта, поэтому четыре последних месяца там не покрыты. Кросс-чек на 21 имени GTH-списка по минуткам:
| Окно | N | 04:00 | 07:00 | 08:00 | 09:00 | 09:25 |
|---|---|---|---|---|---|---|
| A 2025-08..2026-03 | 1216 | 0.551 | 0.754 | 0.766 | 0.937 | 0.970 |
| B 2026-04..2026-08 | 975 | 0.557 | 0.760 | 0.841 | 0.895 | 0.943 |
Средний |дрейф| по отметкам 0.031 — сдвига пока нет. Порог тревоги я бы поставил на 0.06.
Premarket-сессия по опционам существует с 17 августа, а в ленте вендора её ещё нет. В тот момент, когда её включат, тихо поедут все опционные выборки, где «данные = RTH» подразумевалось, а не проверялось. Поэтому защита поставлена не в отдельные скрипты, а в примитивы tools/options_lab/massive_options.py, чтобы её унаследовали все вызывающие — включая те, которые я не нашёл.
| Что | Было | Стало |
|---|---|---|
contract_bars(timespan='minute') | отдавал всё, что пришло с фида | параметр session='rth' по умолчанию; проверено — 348 баров 09:30–15:59 вместо всего дня |
contract_quotes() | нули 0/0 попадали в выборку, mid обнулялся | служебные двунулевые котировки отбрасываются, session='rth' по умолчанию; проверено — 0 нулей осталось |
quote_at() | лестница lookback до 120 мин могла перешагнуть через открытие | окно клампится границей своей сессии: в 09:31 берёт котировку 09:30:59, в 09:25 честно отдаёт None вместо премаркетной |
| новое | — | session_of(ts) и таблица SESSIONS — GTH 07:15–09:25, RTH 09:30–16:00, Curb 16:00–16:15 |
Выбранные значения по умолчанию совпадают с тем, что эти вызовы фактически возвращали до 17 августа, поэтому сегодняшнее поведение не меняется — меняется только то, что произойдёт после включения данных. Кто хочет GTH явно, передаёт session='gth' или 'any'.
Проверенные вызывающие: engine.py, friction_map.py, vol_regime.py метятся в 11:00/14:00/15:55 — были и остаются в RTH. earnings_straddle_overnight.py метится в 09:31/09:35/09:55 с lookback 20 мин — вот он и был под реальным риском получить премаркетную котировку как цену выхода; теперь закрыт клампом. Совпадения слова minute в research_results/ — это офсеты по акциям, к OPRA отношения не имеют.
tools/pm5_backfill/, ~20 минут), чтобы декабрьское сравнение baseline шло на одном окне, а не на двух разных.Данные и воспроизводимость. Пул: tools/synth_gap/pull_synth.py (замер), pull_stockq.py (синхронный NBBO акции), pull_exit.py (утренний выход). Анализ: analyze3.py, analyze4.py. Данные: enrichment_data/synth_gap/. Все результаты — raw P&L без проскальзывания, опционные ноги по NBBO, ставка 4.3%, дивиденды из reference-эндпоинта.
Границы. Опционный NBBO у вендора начинается в 2022 — глубже исполнимый бэктест не строится. Исторической IV нет, только live snapshot. Индексные опционы отдают 403, поэтому SPX-версия ночного хеджа здесь не проверена. Принты по опционам сейчас 403 — использованы котировки и бары. Овернайт-дрейф +14.82 bps посчитан на 21 мега-капе за один год сильного тренда и является бенчмарком, а не самостоятельной стратегией.
Источники рыночной части: Cboe notice 61230 · одобрение SEC, 28 мая · Cboe Q1 2026 · Cboe Q2 2026 · FINRA 26-10 (PDT) · Massive: extended hours OPRA · Nasdaq 23×5