tamaño del feed de cotizaciones de OPRA
Analizamos el volumen del feed de opciones OPRA comparando las actualizaciones de la cinta de opciones con el total de la cinta de acciones en una sesión.
El feed de cotizaciones de opciones es el flujo de datos de mercado más grande de los EE. UU.: cada contrato de opción listado tiene su propio best bid y best ask, y la OPRA —la cinta consolidada para opciones listadas en EE. UU.— publica cada actualización de cada uno de ellos. En 2026-07-13, una sola sesión ordinaria, nuestro almacén registró 8.23 mil millones de actualizaciones de cotizaciones de opciones, lo que representa 16.8 veces el tamaño de toda la cinta de cotizaciones de acciones del mismo día. Esta página mide ese flujo masivo directamente, con la consulta exacta detrás de cada número.
¿Por qué es tan grande el flujo de cotizaciones de opciones?
Una acción tiene un único mejor bid y offer nacional —un bid-ask spread único para mantener la actualización. Una cadena de opciones multiplica esto: cada contrato listado —cada combinación de fecha de vencimiento, precio de ejercicio y tipo call o put— cotiza su propio NBBO. En 2026-07-13, solo el SPY mantuvo 9156 contratos distintos cotizando, considerando únicamente sus vencimientos de 2026.
La multiplicación no termina en el número de contratos. El valor de una opción se mueve con su acción subyacente, y cuando el precio de la acción cambia, los market makers actualizan las cotizaciones en toda la cadena —cada strike, cada vencimiento, de forma simultánea— independientemente de si se operan esos contratos o no. Ese es el resultado del cálculo medido a continuación: miles de millones de actualizaciones de cotizaciones por sesión, y 776 actualizaciones de cotizaciones por cada operación de opciones ejecutada.
Un día de la cinta de opciones, contabilizado
¿Cuántos datos representa esto en la práctica? El siguiente panel contabiliza cada actualización de cotización de opciones almacenada en nuestro almacén para 2026-07-13 —la sesión completa más reciente con al menos cinco días naturales de antigüedad, una regla explicada en la sección de escasez— y la compara con la cinta completa de cotizaciones de acciones de la misma sesión. Es el mismo análisis comparativo que el resumen de mercado del 7 de julio realizó sobre la cinta del lunes. Ambos conteos cubren el día calendario completo, delimitado en tiempo universal coordinado (UTC), que abarca toda la sesión de opciones de EE. UU.
El SQL exacto detrás de cada cifra
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)La cinta completa de opciones alcanzó los 8.23 mil millones de actualizaciones de NBBO. Solo 338 mil contratos distintos realizaron TRADEO ese día; el flujo de cotizaciones repricia una cantidad de la cadena mucho mayor de la que realmente cambia de manos. La cinta de acciones del mismo día —cada actualización de cotización consolidada para cada acción y ETF listado, incluyendo premarket y after-hours— registró 491 millones de actualizaciones en 12958 tickers. La proporción es el dato principal: el flujo de cotizaciones de opciones fue 16.8 veces mayor que el flujo de cotizaciones de acciones.
Dos lecturas adicionales del mismo escaneo aportan contexto al flujo. Promediadas durante el periodo de cotización de la sesión (medidas en la cadena de SPY, la más profunda de la cinta), las actualizaciones llegaron a 339 mil por segundo. Y el mercado de opciones registró 10.6 millones de trades reales ese día —776 actualizaciones de cotización por cada uno de ellos. Lo que llena el canal es la cotización, no el trading.
Una fracción de una raíz: la cadena de opciones de SPY en un día
Es difícil procesar el volumen total del mercado, y analizar la cinta completa es costoso; por ello, analizamos solo una fracción. El siguiente panel contabiliza cada actualización de cotización para los contratos de opciones de SPY con vencimiento en 2026, durante la misma sesión y el mismo día delimitado por UTC: la cadena de un solo activo subyacente, extraída del flujo masivo mediante un rango de ticker.
El SQL exacto detrás de cada cifra
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)Un solo activo subyacente generó 337.1 millones de actualizaciones de cotización de opciones en un solo día: 9156 contratos cotizando, con un promedio de 36.8 mil actualizaciones por contrato. Para dar contexto, la cinta total de acciones en el panel superior —sumando cada acción y ETF listado— registró 491 millones de actualizaciones esa sesión.
Los vencimientos en el mismo día ofrecen una visión más precisa. Las opciones 0DTE —contratos que se negocian en su propio día de vencimiento— dominan la negociación de opciones, y la tabla procesada más abajo muestra cada uno de los cinco contratos de SPY más activos de la sesión con vencimiento ese mismo día. En el flujo de cotizaciones representan una fracción mínima: los 334 contratos con vencimiento en el mismo día representaron el 4.5% de las actualizaciones de cotización de SPY. Los market makers mantienen el precio de toda la cadena; los strikes de diciembre se actualizan durante toda la sesión, independientemente de si se negocian o no.
El spread es la otra medida relevante aquí. Entre esos mismos contratos de SPY con vencimiento en el mismo día, el median del spread cotizado —ask menos bid, calculado sobre cada actualización válida de NBBO— fue de 3¢; en la cadena completa con vencimiento en 2026, ese mismo median fue de 4¢. (Se excluyeron 197 mil actualizaciones de un solo lado o cruzadas de los medianes de spread, y se contabilizaron en el panel).
Cómo leer un ticker de opciones (simbología OCC)
Cada contrato en estos paneles se identifica mediante un símbolo de opción de la OCC, el formato estándar administrado por la Options Clearing Corporation. Nuestro almacén le antepone el prefijo O:. Tome O:SPY261218C00700000 como un ejemplo práctico:
- Root —
SPY: la raíz de la opción, hasta seis caracteres, generalmente el ticker del subyacente. - Expiration —
261218: la fecha de vencimiento en formato YYMMDD — 18 de diciembre de 2026. - Type —
Cpara un call,Ppara un put. - Strike —
00700000: el precio de ejercicio multiplicado por 1,000 y con ceros a la izquierda hasta completar ocho dígitos — $700.00.
Ese formato fijo permite extraer la cadena de una raíz mediante un rango de ticker simple: cada contrato de SPY que vence en 2026 se ordena entre O:SPY26 y O:SPY27, que es el filtro exacto en el panel anterior. Aquí están los cinco contratos de SPY con mayor volumen de la sesión con el símbolo desglosado:
El SQL exacto detrás de cada cifra
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 5La parte superior de la tabla de volumen corresponde únicamente al tráfico del mismo día: los cinco contratos vencieron el 2026-07-13, la fecha de la sesión, y el de mayor actividad — O:SPY260713P00749000, un contrato put con strike de $749 — negoció 732.2 mil contratos. Compare esto con el panel de cotizaciones anterior: el trading se concentra al inicio de la cadena, con spreads de cotización a lo largo de toda ella.
Por qué los datos de cotizaciones de opciones son escasos
Almacenar este feed implica añadir un día como el medido anteriormente —cada sesión, indefinidamente. Esa es la explicación económica en una sola línea. La mayoría de los productos de datos de mercado, tanto minoristas como profesionales, incluyen precios de acciones y, en ocasiones, trades de opciones; el historial completo de quotes de opciones es poco común en cualquier catálogo, sin importar el precio. Nuestro propio almacén contiene el historial de quotes de acciones desde 2003 y el historial de trades de opciones desde 2014, mientras que la tabla de quotes de opciones comienza en 2022 —el historial de ticks más reciente que mantenemos y, por un amplio margen, la tabla más grande que operamos.
Una aclaración debe estar a la vista: las quotes de opciones son también el conjunto de datos que llega con mayor retraso en nuestro sistema. Las nuevas sesiones suelen registrarse con uno o dos días de retraso respecto al calendario —a veces más—, mientras que las quotes de acciones suelen consolidarse en un día. Cada panel en esta página se basa en la sesión completada más reciente con al menos cinco días calendario de antigüedad (2026-07-13 en la ejecución actual), y la actualización semanal vuelve a ejecutar cada consulta bajo esa misma regla, manteniendo cada número medido sobre un día completamente procesado en lugar de un borde frontal con carga parcial.
Preguntas frecuentes
¿Qué tamaño tiene el feed de opciones de OPRA por día?
Medido en nuestro almacén: 8.23 mil millones de actualizaciones de cotizaciones de opciones en 2026-07-13 — un promedio de 339 mil actualizaciones por segundo durante el periodo de cotización de la sesión. El feed bruto de OPRA incluye mensajes de transacciones y administrativos además de las cotizaciones, por lo que sus conteos oficiales de mensajes son aún mayores.
¿Es el feed de cotizaciones de opciones más grande que el de acciones?
Sí — por múltiplos, no por porcentajes. En la sesión medida anteriormente, las actualizaciones de cotizaciones de opciones fueron 16.8 veces el conteo de las actualizaciones de cotizaciones de acciones: 8.23 mil millones frente a 491 millones. Cada acción mantiene un único NBBO actualizado; su cadena de opciones mantiene cientos o miles.
¿Por qué los datos de mercado de opciones son tan costosos?
La escala es la parte visible: un feed medido en miles de millones de actualizaciones por sesión requiere infraestructura real para recibir, almacenar y consultar, y el costo se repite cada día de negociación. Las tarifas de licencia de la bolsa se suman a la ingeniería. Los paneles anteriores muestran exactamente lo que debe transportar un conjunto de datos completo de cotizaciones de opciones.
¿Cuántos contratos de opciones cotizan en un día normal?
Muchos más que las transacciones, por un amplio margen. El 2026-07-13, 338 mil contratos distintos registraron al menos una transacción, mientras que solo la cadena de SPY con vencimiento en 2026 mantuvo 9156 contratos cotizando — y el universo completo de cotizaciones abarca cada ticker de la misma forma que la cadena de SPY abarca sus strikes. (Contar cada contrato distinto en el flujo de cotizaciones de un día es un escaneo tan grande que lo mantenemos fuera de una página de actualización semanal — el único número aquí que deliberadamente no publicamos).
¿Cotizan las opciones fuera de horario?
Las opciones de renta variable de EE. UU. listadas mantienen el horario de la bolsa. En la sesión medida anteriormente, la primera cotización de opciones de SPY ocurrió a las 09:30 ET y la última a las 16:15 ET — sin sesión nocturna. La cinta de acciones, para comparar, cotiza durante el premarket y el after-hours.
Cada panel anterior se entrega con el SQL exacto que lo produjo — expanda uno, cambie un ticker o día diferente, y dimensione la parte del feed en la que usted realmente opera en la terminal Strasmore.