OPRA選擇權報價饋送有多大?
我們倉庫單日記錄數十億筆選擇權報價更新,是股票報價帶的數倍,並揭露每筆成交對應的報價更新次數。
選擇權報價饋送是美國最大的市場數據流:每一檔掛牌選擇權合約都帶有自身的最佳買價與最佳賣價,而 OPRA——即選擇權價格報告管理局,美國掛牌選擇權的整合報價帶——會發布每一檔合約的每一次更新。在 2026-07-13 這一個普通交易時段內,我們的資料倉儲記錄了 8.23 億筆選擇權報價更新——是同日整體股票報價帶規模的 16.8 倍。本頁直接測量這條高壓水龍頭,每個數字背後都附有確切的查詢條件。
為什麼選擇權報價資料量如此龐大?
一支股票只有一個全國最佳買賣報價——只需維護一個買賣價差。選擇權鏈則將此放大:每個掛牌合約——每一組到期日、履約價與買權或賣權的組合——都報出自己的 NBBO。在 2026-07-13,僅 SPY 就維持了 9156 個獨立合約的報價,這還只計算其 2026 年到期的合約。
這種放大效應並不止於合約數量。選擇權的價值會隨其標的股票變動,當股價跳動時,造市商會立即更新整個選擇權鏈的報價——每個履約價、每個到期日,同時更新,無論這些合約是否有人交易。這就是下方所衡量數據的算術輪廓:每交易時段數十億次的報價更新,以及每筆成交選擇權交易對應 776 次報價更新。
一天的選擇權報價紀錄,量化計算
實際上這有多少數據?下方面板統計了我們倉庫為 2026-07-13 儲存的每一筆選擇權報價更新——這是至少五個日曆天前的最新完整交易日,這條規則在稀缺性章節中有說明——並將其與同一交易日的完整股票報價紀錄進行對比,與 7月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)整個選擇權報價紀錄總計達到 8.23 億 筆 NBBO 更新。當天實際交易的合約僅有 338 千檔——報價流對選擇權鏈的重新定價,遠多於實際換手的合約。同一天的股票報價紀錄——包含所有上市股票與 ETF 的每一筆綜合報價更新,包括盤前與 盤後 時段——總計為 491 百萬筆更新,涵蓋 12958 檔標的。這個比率就是核心結論:選擇權報價流的規模是股票報價流的 16.8 倍。
同一掃描得出的另外兩項數據,賦予了這條數據流具體的質感。在整個交易時段的報價跨度內(以全市場最深的 SPY 選擇權鏈衡量),更新以每秒 339 千筆的速度送達。而選擇權市場當天總共印出了 10.6 百萬筆實際交易——相當於每筆交易對應 776 筆報價更新。填滿這條管線的是報價,而非交易。
單一標的切片:SPY 選擇權鏈的一天
全市場的數據難以體會,掃描全市場的成本也很高——因此我們只切出一片。下方面板統計了 2026 年到期的 SPY 選擇權合約,在同一個交易時段、同一個以 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 檔同日到期合約僅貢獻了 SPY 報價更新的 4.5%。造市商持續為整條選擇權鏈定價——十二月的履約價報價在整個交易時段不斷更新,無論有沒有人交易。
此處另一個值得衡量的維度是寬度。在這些同日到期的 SPY 合約中,報價寬度中位數——以每一筆有效的 NBBO 更新計算的賣價減買價——為 3¢;在整條 2026 年到期的選擇權鏈中,同樣的中位數為 4¢。(197 千筆單邊或交叉的更新已從寬度中位數計算中排除,並計入面板統計。)
如何解讀選擇權代碼(OCC 符號系統)
這些面板中的每一份合約,都由一個 OCC 選擇權代碼來識別——這是選擇權結算公司(Options Clearing Corporation)管理的標準格式。我們的資料庫會在前面加上 O:。以 O:SPY261218C00700000 為例來說明:
- 根代碼 —
SPY:選擇權根代碼,最長六個字元,通常是標的物本身的股票代碼。 - 到期日 —
261218:到期日,格式為 YYMMDD——也就是 2026 年 12 月 18 日。 - 類型 —
C代表買權,P代表賣權。 - 履約價 —
00700000:履約價乘以 1,000,並補零至八位數——即 700.00 美元。
正是這種固定格式,讓我們能用一個單純的代碼範圍,就切出某個根代碼的合約序列:每一份在 2026 年到期的 SPY 合約,都會落在 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,一份履約價為 749 美元的 put 合約——成交量達到 732.2 千張。將這點與前面的報價面板對照來看:交易集中在序列的前端,而買賣價差則遍布整個序列。
為何選擇權報價資料如此稀缺
儲存這份饋送資料,意味著要日復一日地加入像上述測量那樣的數據——每一節交易日,無限期地進行。這就是其經濟學原理,一句話便能概括。大多數市場數據產品,無論是散戶還是專業級別,都包含股票價格,有時也包含選擇權的成交紀錄;然而,完整的選擇權報價歷史紀錄,在任何貨架上、任何價位上都極為罕見。我們自己的資料倉儲保存了自2003年以來的股票報價歷史,以及自2014年以來的選擇權成交歷史,而選擇權報價表則始於2022年——這是我們所保存的最年輕的逐筆歷史紀錄,也是我們營運中規模遙遙領先的最大資料表。
有一項揭露事項應開誠布公:選擇權報價也是我們所持有的資料集中,送達速度最慢的。新的交易節數據通常會比日曆日晚一兩天到位——有時更久——而股票報價通常能在一天內完成結算。本頁面上的每一個面板,都錨定在至少五個日曆日之前的最新完整交易節(目前運行中為 2026-07-13 ),而每週的刷新作業會依據同一規則重新執行所有查詢,確保每個數字都是在一個已完全匯入的交易日上測量,而非基於一個僅部分載入的前沿數據。
常見問題
OPRA 選擇權報價資料每日規模有多大?
根據我們資料庫的統計:在 2026-07-13 當天,共有 8.23 億筆選擇權報價更新——在該交易日的報價時段內,平均每秒 339 千筆更新。原始的 OPRA 資料饋送在報價之外,還承載了成交與管理訊息,其官方訊息總數會更高。
選擇權報價資料饋送比股票報價資料饋送更大嗎?
是的——差距是以倍數計,而非百分比。在上述測量的交易時段中,選擇權報價更新筆數是股票報價更新筆數的 16.8 倍:8.23 億筆對 491 百萬筆。每檔股票只需維持一組最新的全國最佳買賣價(NBBO);而它的選擇權鏈則需維持數百甚至數千組報價。
為什麼選擇權市場數據這麼昂貴?
規模是可見的部分:一個每日更新量以數十億筆計的資料饋送,需要真實的基礎設施來接收、儲存和查詢,而且這筆成本每個交易日都會重複產生。在工程成本之上,還有交易所的授權費用。上方各面板精確展示了一個完整的選擇權報價資料集必須承載的內容。
一個正常交易日有多少選擇權合約有報價?
有報價的合約數量遠多於有成交的,差距很大。在 2026-07-13 當天,有 338 千檔不同的合約至少產生了一筆成交,而光是 SPY 的 2026 年到期選擇權鏈,就維持了 9156 檔合約的報價——而整個有報價的合約範圍,就像 SPY 的選擇權鏈涵蓋其各個履約價一樣,涵蓋了每一個標的代碼。(計算一天報價串流中每一檔不同合約的數量,本身就是一次規模極大的掃描,因此我們未將其納入每週更新的頁面——這是我們刻意不公佈的唯一一項數據。)
選擇權在盤後有報價嗎?
在美國上市掛牌的股票選擇權遵循交易所交易時間。在上述測量的交易時段中,SPY 的第一筆選擇權報價落在美東時間 09:30 ,最後一筆在美東時間 16:15 ——沒有夜盤交易時段。相較之下,股票的成交報價在盤前和盤後時段都會持續更新。
上方每一個面板都附帶產生該數據的確切 SQL 查詢語句——展開任一查詢,換入不同的標的代碼或日期,即可在 Strasmore 終端機上,估算出您實際交易的那部分資料饋送的規模。