laki ng OPRA options quote feed
Isang araw ng OPRA options quote: 2.5 bilyong NBBO update, 7 beses ng stock tape. Alamin ang volume at sukat ng pinakamalaking market data feed sa US.
Ang options quote feed ang pinakamalaking stream ng market data sa US: bawat listed option contract ay may sariling best bid at best ask, at ang OPRA, ang Options Price Reporting Authority, ang consolidated tape para sa US listed options, ay naglalathala ng bawat update sa bawat isa sa mga ito. Noong 2026-07-21, isang ordinaryong session, naitala ng aming warehouse ang 6.61 bilyon na options quote updates, 17.5 beses ang laki ng buong stock quote tape sa parehong araw. Sinusukat ng page na ito ang firehose nang direkta, kasama ang eksaktong query sa likod ng bawat numero.
Bakit napakalaki ng options quote feed?
Ang isang stock ay may isang national best bid and offer, isang bid-ask spread na dapat bantayan. Ang isang option chain ay nagpaparami nito: bawat nakalistang kontrata, bawat kombinasyon ng expiration date, strike price, at call-or-put, ay may sariling NBBO. Noong 2026-07-21, ang SPY lamang ay may 9018 na natatanging kontratang nagko-quote, kung ang 2026 expiries lamang ang bibilangin.
Ang pagpaparami ay hindi tumitigil sa bilang ng kontrata. Ang halaga ng isang option ay gumagalaw kasabay ng underlying stock nito, at kapag tumaas o bumaba ang presyo ng bahagi, ang mga market maker ay nagre-refresh ng quotes sa buong chain, bawat strike, bawat expiry, nang sabay-sabay, kahit walang nagte-trade sa mga kontratang iyon. Iyan ang hugis ng aritmetikang sinusukat sa ibaba: quote updates sa bilyon bawat session, at 696 na quote updates para sa bawat naisagawang options trade.
Isang araw ng options tape, binilang
Gaano karaming data iyon sa praktika? Binibilang ng panel sa ibaba ang bawat update ng options quote na iniimbak ng aming warehouse para sa 2026-07-21, ang pinakabagong kumpletong session na hindi bababa sa limang araw ang nakalipas, isang panuntunang ipinaliwanag sa seksyon ng kakulangan, at inihahambing ito sa parehong session ng buong stock quote tape, ang parehong head-to-head na ginawa ng July 7 market recap sa Monday tape nito. Sinasaklaw ng parehong bilang ang buong araw ng kalendaryo, na nakabatay sa universal time (UTC), na sumasaklaw sa buong US options session.
Ang eksaktong SQL sa likod ng bawat numero
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)Ang buong options tape ay umabot sa 6.61 bilyon na NBBO updates. 324 libong natatanging kontrata lamang ang aktwal na NAKIPAGTRADE sa araw na iyon, ang quote stream ay nagre-reprice ng mas maraming bahagi ng chain kaysa sa aktwal na nagpapalit ng kamay. Ang stock tape sa parehong araw, bawat consolidated quote update para sa bawat listed stock at ETF, kasama ang premarket at after-hours, ay umabot sa 379 milyong updates sa 12993 na simbolo. Ang ratio ang headline: ang options quote stream ay 17.5 beses ang laki ng stock quote stream.
Dalawang karagdagang pagbabasa mula sa parehong scan ang nagbibigay ng texture sa feed. Na-average sa buong quoting span ng session (sinukat sa chain ng SPY, ang pinakamalalim sa tape), dumating ang updates sa 272 libo bawat segundo. At nag-print ang options market ng 9.5 milyong aktwal na trades sa araw na iyon, 696 quote updates para sa bawat isa sa kanila. Ang quoting, hindi ang trading, ang pumupuno sa pipe.
Isang hiwa ng ugat: Ang option chain ng SPY sa isang araw
Mahirap damhin ang isang buong-tape na numero, at mahal din i-scan ang buong tape, kaya pumutol ng isang hiwa. Binibilang ng panel sa ibaba ang bawat quote update para sa mga SPY option contract na mag-e-expire sa 2026, sa parehong session at parehong araw na nakatali sa UTC: isang chain ng isang underlying, na hinugot mula sa firehose sa pamamagitan ng isang ticker range.
Ang eksaktong SQL sa likod ng bawat numero
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)Isang underlying ang nag-produce ng 246.1 milyong options quote updates sa isang araw: 9018 contracts ang nag-quote, na may average na 27.3 libong updates bawat contract. Para sa sukat, ang buong stock tape sa panel sa itaas, bawat nakalistang share at ETF na pinagsama, ay sumukat ng 379 milyong updates sa session na iyon.
Ang mga same-day expiry ay nagkukuwento ng mas matalas na kwento. Ang 0DTE options, mga contract na nagte-trade sa mismong araw ng kanilang expiration, ay nangingibabaw sa options trading, at ang parsed table sa ibaba ay nagpapakita ng bawat isa sa limang pinaka-abalang SPY contracts ng session na nag-e-expire sa parehong araw. Sa quote stream, sila ay isang maliit na bahagi: ang 334 same-day contracts ay umabot sa 3.5% ng SPY's quote updates. Pinapanatili ng mga market maker na may presyo ang buong chain, ang mga strikes ng December ay nag-a-update sa buong session kahit walang nagte-trade sa kanila.
Ang width ay ang iba pang sukat na dapat kunin dito. Sa mga same-day SPY contracts na iyon, ang median quoted width, ask minus bid, na kinuha sa bawat valid na NBBO update, ay sumukat ng 4¢; sa buong 2026-expiry chain, ang parehong median ay sumukat ng 3¢. (175 libong one-sided o crossed updates ay hindi isinama sa width medians at binilang sa panel.)
Paano basahin ang isang option ticker (OCC symbology)
Bawat kontrata sa mga panel na ito ay tinutukoy ng isang OCC option symbol, ang pamantayang format na pinangangasiwaan ng Options Clearing Corporation. Ang aming warehouse ay nilalagyan ito ng unlaping O:. Kunin ang O:SPY261218C00700000 bilang isang halimbawa:
- Root,
SPY: ang option root, hanggang anim na karakter, karaniwang sariling ticker ng underlying. - Expiration,
261218: ang expiry date bilang YYMMDD, Disyembre 18, 2026. - Type,
Cpara sa isang call,Ppara sa isang put. - Strike,
00700000: ang strike price na pinarami ng 1,000 at nilagyan ng zero-padding hanggang walong digit, $700.00.
Ang nakapirming format na iyon ang nagpapahintulot na ang chain ng isang root ay makuha gamit ang isang simpleng ticker range: bawat SPY contract na mag-e-expire sa 2026 ay nasa pagitan ng O:SPY26 at O:SPY27, ang eksaktong filter sa panel sa itaas. Narito ang limang pinaka-abalang SPY contract ng session na may nakabuklat na simbolo:
Ang eksaktong SQL sa likod ng bawat numero
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 5Ang tuktok ng volume table ay puro same-day traffic: lahat ng limang contract ay nag-expire noong 2026-07-21, ang mismong petsa ng session, at ang pinaka-abala sa kanila, O:SPY260721P00748000, isang $748-strike put contract, ay nag-trade ng 838.2 libong kontrata. Ihambing iyon sa quote panel bago ito: ang trading ay nakatutok sa harap ng chain, habang ang quoting spreads ay sumasaklaw sa lahat nito.
Bakit mahirap makuha ang data ng options quote
Ang pag-imbak ng feed na ito ay nangangahulugang pagdaragdag ng isang araw na katulad ng nasukat sa itaas, bawat sesyon, nang walang katapusan. Iyan ang ekonomiks sa isang linya. Karamihan sa mga produkto ng market-data, retail man o propesyonal, ay nagdadala ng presyo ng stock at minsan ay options trades; ang buong kasaysayan ng options quote ay bihira sa anumang istante, sa anumang presyo. Ang aming sariling warehouse ay may hawak na kasaysayan ng equity quote mula 2003 at kasaysayan ng options trade mula 2014, habang ang talahanayan ng options quote ay nagsisimula noong 2022, ang pinakabatang tick history na aming iniingatan, at sa malayong agwat, ang pinakamalaking talahanayan na aming pinapatakbo.
Isang pagsisiwalat ang dapat na nakikita: ang options quotes din ang pinakamabagal na dumating na dataset na aming hawak. Ang mga bagong sesyon ay karaniwang dumarating isa o dalawang araw pagkatapos ng kalendaryo, minsan higit pa, habang ang equity quotes ay karaniwang naaayos sa loob ng isang araw. Bawat panel sa pahinang ito ay naka-angkla sa pinakabagong natapos na sesyon na hindi bababa sa limang araw ng kalendaryo ang nakalipas (2026-07-21 sa kasalukuyang takbo), at ang lingguhang refresh ay muling nagpapatakbo ng bawat query sa parehong patakaran, na pinapanatili ang bawat bilang na nasukat sa isang ganap na na-ingest na araw sa halip na isang kalahating-load na front edge.
FAQ
Gaano kalaki ang OPRA options feed bawat araw?
Sinusukat sa aming warehouse: 6.61 bilyong options quote updates noong 2026-07-21, average na 272 libong updates bawat segundo sa buong session ng quoting. Ang raw OPRA feed ay may dalang trade at administrative messages bukod sa quotes, at mas mataas pa ang opisyal na message counts nito.
Mas malaki ba ang options quote feed kaysa sa stock quote feed?
Oo, multiple ang agwat, hindi porsyento. Sa session na sinukat sa itaas, ang options quote updates ay 17.5 beses ang dami ng stock quote updates: 6.61 bilyon laban sa 379 milyon. Ang bawat stock ay may isang NBBO na current; ang option chain nito ay may daan-daan o libo-libo.
Bakit napakamahal ng options market data?
Ang scale ang nakikitang dahilan: ang feed na sinusukat sa bilyong updates bawat session ay nangangailangan ng tunay na imprastraktura para mareceive, ma-store, at ma-query, at nauulit ang bill tuwing trading day. Ang exchange licensing fees ay nasa ibabaw ng engineering. Ipinapakita ng mga panel sa itaas kung ano mismo ang kailangang dalhin ng isang buong options quote dataset.
Ilang option contracts ang nagqu-quote sa normal na araw?
Mas marami kaysa sa trade, sa malaking agwat. Noong 2026-07-21, 324 libong distinct contracts ang nag-print ng kahit isang trade, habang ang SPY's 2026-expiry chain lang ay may 9018 contracts na nagqu-quote, at ang buong quoted universe ay sumasaklaw sa bawat root kung paanong ang SPY's chain ay sumasaklaw sa mga strike nito. (Ang pagbilang ng bawat distinct contract sa isang araw na quote stream ay isang scan na napakalaki kaya hindi namin ito isinasama sa isang lingguhang refreshed page — ito ang tanging numero dito na sinasadya naming hindi i-publish.)
Nagqu-quote ba ang options pagkatapos ng oras ng trading?
Ang listed US equity options ay sumusunod sa exchange hours. Sa session na sinukat sa itaas, ang unang option quote ng SPY ay dumating noong 09:30 ET at ang huli noong 16:15 ET, walang overnight session. Ang stock tape, para sa paghahambing, ay nagqu-quote sa premarket at after-hours.
Ang bawat panel sa itaas ay may kasamang eksaktong SQL na gumawa nito, palawakin ang isa, palitan ng ibang root o araw, at sukatin ang bahagi ng feed na aktuwal mong tina-trade sa Strasmore terminal.