Объем потока котировок OPRA Options
Узнайте реальный масштаб данных OPRA. Мы сравнили объем обновлений котировок опционов за одну сессию с общим объемом ленты котировок акций.
Поток котировок опционов является крупнейшим потоком рыночных данных в США. Каждый листинговый опционный контракт имеет свои лучшие цены спроса и предложения. OPRA — Options Price Reporting Authority, консолидированная лента для котировок американских опционов — публикует каждое обновление по каждому из них. В 2026-07-13, в течение одной обычной сессии, наше хранилище зафиксировало 8.23 миллиарда обновлений котировок опционов, что в 16.8 раза превышает объем всей ленты котировок акций за тот же день. На этой странице представлены прямые измерения потока данных с указанием точного запроса для каждого числа.
Почему поток котировок опционов такой объемный?
У акции есть только одна национальная лучшая цена спроса и предложения — один bid-ask spread, который необходимо обновлять. Опционная цепочка увеличивает это число: каждый листинг — любое сочетание даты экспирации, цены исполнения и типа (call или put) — имеет свой собственный NBBO. На 2026-07-13 только по инструменту SPY обновлялось 9156 различных контрактов, если учитывать только экспирации 2026 года.
Увеличение объема не ограничивается количеством контрактов. Стоимость опциона меняется вслед за базовой акцией. При изменении цены акции маркетмейкеры обновляют котировки по всей цепочке — по каждой цене исполнения и каждой дате экспирации одновременно, независимо от наличия сделок по этим контрактам. Таков результат математического расчета ниже: за одну сессию происходит миллиарды обновлений котировок, а на каждую совершенную сделку с опционами приходится 776 обновлений котировок.
Объем данных по опционам за один день
Каков этот объем на практике? В таблице ниже представлено количество обновлений котировок опционов, сохраненных нашим хранилищем для 2026-07-13 — это последний завершенный торговый день, который произошел не менее пяти календарных дней назад (согласно правилам, описанным в разделе о дефиците данных). Эти данные сравниваются с полным потоком котировок акций за тот же день. Это то же самое сравнение, которое приводилось в обзоре рынка за 7 июля по данным за понедельник. Оба показателя охватывают полные календарные сутки по всемирному времени (UTC), что соответствует всей торговой сессии опционов в США.
Точный SQL-код для каждого числа
WITH (
SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime(today() - 10)
AND window_start < toDateTime(today() - 4)
) AS session_day,
(
SELECT (count(), uniqExact(ticker))
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= toDateTime(session_day)
AND sip_timestamp < toDateTime(session_day + 1)
) AS stock_tape,
(
SELECT (count(), uniqExact(ticker))
FROM global_markets.options_trades
WHERE sip_timestamp >= toDateTime(session_day)
AND sip_timestamp < toDateTime(session_day + 1)
) AS option_trades_t,
(
SELECT toUInt32(max(sip_timestamp)) - toUInt32(min(sip_timestamp))
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND sip_timestamp >= toDateTime(session_day)
AND sip_timestamp < toDateTime(session_day + 1)
) AS spy_span_seconds
SELECT
toString(session_day) AS session_date,
round(count() / 1e9, 2) AS option_quote_updates_bn,
round(stock_tape.1 / 1e6, 0) AS stock_quote_updates_m,
stock_tape.2 AS stock_symbols_quoted,
round(count() / stock_tape.1, 1) AS option_to_stock_ratio,
round(option_trades_t.1 / 1e6, 1) AS option_trades_m,
round(option_trades_t.2 / 1e3, 0) AS option_contracts_traded_k,
round(count() / option_trades_t.1, 0) AS quote_updates_per_trade,
round(count() / spy_span_seconds / 1e3, 0) AS avg_updates_per_second_k
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= toDateTime(session_day)
AND sip_timestamp < toDateTime(session_day + 1)Общий объем обновлений NBBO по опционам составил 8.23 миллиарда. За этот день фактически торговалось всего 338 тысяч различных контрактов — поток котировок пересчитывает гораздо больше инструментов, чем реально меняет владельцев. Поток котировок акций за тот же день — включая все консолидированные обновления для каждой котируемой акции и ETF, а также предрыночную и внерыночную торговлю — составил 491 миллионов обновлений по 12958 символам. Главный показатель — это соотношение: объем потока котировок опционов был в 16.8 раз больше объема потока котировок акций.
Еще два показателя из того же сканирования раскрывают структуру потока. В среднем за период котирования (на примере цепочки SPY, самой глубокой в потоке) обновления поступали со скоростью 339 тысяч в секунду. Кроме того, в тот день на рынке опционов было совершено 10.6 миллионов фактических сделок — это означает 776 обновлений котировок на каждую сделку. Основную нагрузку на канал создает именно котирование, а не торговля.
Срез одного актива: цепочка опционов SPY за один день
Общий объем котировок трудно оценить, а сканирование всего потока данных обходится дорого — поэтому мы рассмотрим лишь один срез. В таблице ниже указано количество обновлений котировок для опционных контрактов SPY со сроком экспирации в 2026 году за одну сессию в рамках одного дня по UTC: цепочка одного базового актива, выделенная из общего потока данных по диапазону тикеров.
Точный SQL-код для каждого числа
WITH (
SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime(today() - 10)
AND window_start < toDateTime(today() - 4)
) AS session_day
SELECT
toString(session_day) AS session_date,
round(count() / 1e6, 1) AS spy_quote_updates_m,
uniqExact(ticker) AS spy_contracts_quoted,
round(count() / uniqExact(ticker) / 1e3, 1) AS avg_updates_per_contract_k,
uniqExactIf(ticker, substring(ticker, 6, 6) = formatDateTime(session_day, '%y%m%d')) AS same_day_expiry_contracts,
round(100.0 * countIf(substring(ticker, 6, 6) = formatDateTime(session_day, '%y%m%d')) / count(), 1) AS same_day_expiry_pct_of_updates,
quantileExactWeightedIf(0.5)(toInt32(round(toFloat64(ask_price - bid_price) * 100)), 1, bid_price > 0 AND ask_price >= bid_price AND substring(ticker, 6, 6) = formatDateTime(session_day, '%y%m%d')) AS same_day_median_width_cents,
quantileExactWeightedIf(0.5)(toInt32(round(toFloat64(ask_price - bid_price) * 100)), 1, bid_price > 0 AND ask_price >= bid_price) AS all_spy_median_width_cents,
round(countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) / 1e3, 0) AS dropped_invalid_quotes_k,
formatDateTime(toTimeZone(min(sip_timestamp), 'America/New_York'), '%H:%i') AS spy_first_quote_et,
formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%H:%i') AS spy_last_quote_et,
toHour(toTimeZone(min(sip_timestamp), 'America/New_York')) * 60 + toMinute(toTimeZone(min(sip_timestamp), 'America/New_York')) AS spy_first_quote_et_minute,
toHour(toTimeZone(max(sip_timestamp), 'America/New_York')) * 60 + toMinute(toTimeZone(max(sip_timestamp), 'America/New_York')) AS spy_last_quote_et_minute
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND sip_timestamp >= toDateTime(session_day)
AND sip_timestamp < toDateTime(session_day + 1)Один базовый актив сгенерировал 337.1 миллионов обновлений котировок опционов за один день: 9156 контрактов котировались, в среднем — 36.8 тысяч обновлений на один контракт. Для сравнения: весь поток данных по акциям в панели выше — все котируемые акции и ETF вместе взятые — составил 491 миллионов обновлений за эту сессию.
Данные по экспирации в тот же день дают более четкую картину. Опционы 0DTE — контракты, торгуемые в день их экспирации, — доминируют в торговле опционами. В таблице ниже приведены пять наиболее активных контрактов SPY с экспирацией в тот же день. В потоке котировок они составляют лишь малую часть: 334 контрактов с экспирацией в тот же день составили 4.5% от всех обновлений котировок SPY. Маркетмейкеры поддерживают цены по всей цепочке: страйки с экспирацией в декабре обновляются на протяжении всей сессии, независимо от наличия сделок.
Также стоит учитывать ширину спреда. Среди указанных контрактов SPY с экспирацией в тот же день медианная ширина котировок (разница между ценой ask и bid по всем валидным обновлениям NBBO) составила 3¢; для всей цепочки с экспирацией в 2026 году этот показатель составил 4¢. (197 тысяч односторонних или перекрестных обновлений были исключены из медианных значений ширины спреда и учтены в панели выше.)
Как читать тикер опциона (символика OCC)
Каждый контракт на этих панелях идентифицируется символом опциона OCC — это стандартный формат, установленный Options Clearing Corporation. Наш склад добавляет к нему префикс O:. Рассмотрим O:SPY261218C00700000 в качестве примера:
- Root —
SPY: базовый символ опциона, до шести символов, обычно совпадает с тикером базового актива. - Expiration —
261218: дата экспирации в формате YYMMDD — 18 декабря 2026 года. - Type —
Cдля колл-опциона,Pдля пут-опциона. - Strike —
00700000: цена страйк, умноженная на 1 000 и дополненная нулями до восьми знаков — $700.00.
Благодаря этому фиксированному формату можно выделить цепочку одного базового актива с помощью диапазона тикеров: все контракты SPY с экспирацией в 2026 году располагаются между O:SPY26 и O:SPY27, что соответствует фильтру на панели выше. Ниже приведены пять самых активных контрактов SPY за сессию с расшифровкой символов:
Точный SQL-код для каждого числа
WITH (
SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime(today() - 10)
AND window_start < toDateTime(today() - 4)
) AS session_day
SELECT ticker AS occ_ticker,
any(underlying_symbol) AS root,
concat('20', substring(ticker, 6, 2), '-', substring(ticker, 8, 2), '-', substring(ticker, 10, 2)) AS expiry_parsed,
if(any(option_type) = 'C', 'call', 'put') AS call_or_put,
any(toFloat64(strike_price)) AS strike_usd,
round(sum(size) / 1e3, 1) AS contracts_traded_k,
if(substring(ticker, 6, 6) = formatDateTime(session_day, '%y%m%d'), 1, 0) AS expires_same_day
FROM global_markets.options_trades
WHERE sip_timestamp >= toDateTime(session_day)
AND sip_timestamp < toDateTime(session_day + 1)
AND ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
GROUP BY ticker
ORDER BY contracts_traded_k DESC, ticker
LIMIT 5Верхняя часть таблицы объема содержит только внутридневные сделки: все пять контрактов экспирировали 2026-07-13, в дату текущей сессии. Самый активный из них — O:SPY260713P00749000, контракт put со страйком $749 — показал объем в 732.2 тысяч контрактов. Сравните это с предыдущей панелью котировок: торговля сосредоточена в начале цепочки, в то время как котировки распределены по всей цепочке.
Почему данные по котировкам опционов в дефиците
Хранение этого потока данных означает добавление еще одного дня, подобного измеренному выше, — каждую сессию и бесконечно. В этом заключается экономическая суть. Большинство продуктов рыночных данных, как розничных, так и профессиональных, содержат цены акций и иногда сделки с опционами; полная история котировок опционов редко встречается на рынке по любой цене. Наш архив содержит историю котировок акций с 2003 года и историю сделок с опционами с 2014 года, в то время как таблица котировок опционов начинается с 2022 года. Это самый свежий тип тиковых данных, который мы храним, и самая большая таблица в нашей работе.
Важное уточнение: котировки опционов также являются самым медленным набором данных в нашем распоряжении. Новые сессии обычно появляются с задержкой в один-два дня от календарной даты, а иногда и больше, в то время как котировки акций обычно обновляются в течение одного дня. Каждый блок на этой странице привязан как минимум к последней завершенной сессии, произошедшей пять календарных дней назад (2026-07-13 в текущем запуске). Еженедельное обновление повторно запускает каждый запрос по этому же правилу, чтобы каждое число рассчитывалось за полностью загруженный день, а не за частично загруженный текущий период.
FAQ
Каков ежедневный объем потока котировок опционов OPRA?
По нашим данным: 8.23 миллиардов обновлений котировок опционов за 2026-07-13 — в среднем 339 тысяч обновлений в секунду в течение торговой сессии. Помимо котировок, поток OPRA содержит сообщения о сделках и административные сообщения, поэтому официальное количество сообщений еще выше.
Превосходит ли поток котировок опционов поток котировок акций?
Да — разница составляет кратные величины, а не проценты. В сессии, указанной выше, количество обновлений котировок опционов было в 16.8 раза больше количества обновлений котировок акций: 8.23 миллиардов против 491 миллионов. Для каждой акции поддерживается одна актуальная цена NBBO; для опционной цепочки требуется поддерживать сотни или тысячи цен.
Почему рыночные данные по опционам такие дорогие?
Масштаб — это лишь видимая часть: для приема, хранения и обработки потока, исчисляемого миллиардами обновлений за сессию, требуется серьезная инфраструктура, расходы на которую повторяются каждый торговый день. Помимо инженерных затрат, существуют лицензионные сборы бирж. На панелях выше показано, какой объем данных должен содержать полный набор котировок опционов.
Сколько опционных контрактов котируется в обычный день?
Значительно больше, чем совершается сделок. 2026-07-13, 338 тысяч различных контрактов зафиксировали как минимум одну сделку, в то время как только цепочка SPY с экспирацией в 2026 году содержала 9156 котируемых контрактов. Весь объем котируемых инструментов охватывает все базовые активы так же, как цепочка SPY охватывает свои страйки. (Подсчет каждого отдельного контракта в ежедневном потоке котировок требует настолько масштабного сканирования, что мы не включаем этот показатель в еженедельно обновляемую страницу — это единственное число, которое мы намеренно не публикуем.)
Котируются ли опционы в послеторговое время?
Котировки листинговых американских опционов на акции ограничены часами работы биржи. В сессии, указанной выше, первая котировка опциона на SPY появилась в 09:30 ET, а последняя — в 16:15 ET; ночная сессия отсутствует. Для сравнения, лента акций котирует активы в премаркете и после закрытия рынка.
Каждая панель выше сопровождается SQL-запросом, который ее сформировал — разверните запрос, подставьте другой базовый актив или дату, чтобы определить объем части потока, которой вы фактически торгуете в терминале Strasmore.