¿Por qué las cotizaciones se retrasan 15 minutos?
Por qué las cotizaciones se retrasan 15 minutos: el licenciamiento de datos de bolsa fija la regla y muestra cuánto cuesta la falta de actualidad en precios reales.
Las cotizaciones de acciones tienen un retraso de 15 minutos en la mayoría de los sitios web gratuitos por motivos de licenciamiento. La infraestructura no es lenta: el precio sale del motor de negociación de una bolsa y llega a una pantalla en una fracción de segundo. Los 15 minutos son una condición contractual establecida en los acuerdos que determinan quién puede mostrar precios en tiempo real y cuánto paga por ese acceso.
De dónde surge el precio de una acción antes de llegar a usted
Una sola acción estadounidense cotiza al mismo tiempo en más de una docena de mercados públicos, además de una larga cola de operaciones fuera de bolsa que reportan sus prints por separado. Cada mercado publica sus propias cotizaciones y operaciones. Los planes del sector consolidan toda esa información en un solo tape: uno cubre las acciones listadas en NYSE y otro, las listadas en Nasdaq. Los procesadores que los operan son los SIP, sigla de securities information processors. Ese tape consolidado genera la mejor oferta nacional de compra y venta, es decir, el mejor par de precios disponible en cualquier mercado en ese instante. Lo explicamos en detalle en nuestra guía sobre qué es el NBBO.
Las bolsas también venden sus propios direct feeds. Son más rápidos y detallados que el tape consolidado, y se licencian por separado.
Por qué las cotizaciones bursátiles tienen un retraso de 15 minutos: la respuesta está en las licencias
Los datos de mercado son una fuente de ingresos para las bolsas. Cada distribuidor de precios —un broker, un sitio web, un terminal o una app móvil— firma acuerdos con las bolsas y con los planes de distribución de datos. Esos acuerdos dividen los mismos datos en dos productos. Los datos en tiempo real están sujetos a tarifas y se reportan por usuario cada mes. Los datos con retraso, una vez que tienen al menos 15 minutos de antigüedad, quedan fuera del esquema de tiempo real y el distribuidor puede ofrecerlos sin contabilizar usuarios.
Los esquemas acumulan varios cargos: una tarifa de acceso por la infraestructura de transmisión, una cuota mensual por usuario para cada persona que puede ver un precio en tiempo real y tarifas por datos no visibles para las máquinas que consumen precios sin supervisión humana. Las tarifas se presentan públicamente y cambian casi todos los años, por lo que la estructura importa más que las cifras de este año. Alguien paga una cuota mensual por persona para acceder a precios en tiempo real. Nadie paga por un precio con 15 minutos de retraso.
Esa es toda la explicación de por qué la versión gratuita es gratis. El volumen es la otra mitad del costo de distribuir precios en tiempo real: el flujo de datos transmite continuamente actualizaciones de cotizaciones durante la sesión, y las opciones son el caso extremo, como muestra el tamaño del flujo de cotizaciones de opciones.
Qué valor tiene realmente un retraso de 15 minutos
Un retraso importa en la medida en que el precio se mueve durante ese intervalo, algo que se puede medir. El panel siguiente toma cada barra de un minuto de las sesiones regulares de SPY, el fondo que replica al S&P 500, hasta junio de 2026, y compara cada una con la barra de 15 minutos posterior. Los datos están agrupados por la hora en que se registró la barra inicial.
El SQL exacto detrás de cada cifra
WITH regular_bars AS
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et,
toTimeZone(window_start, 'America/New_York') + INTERVAL 15 MINUTE AS et_later,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND close > 0
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
formatDateTime(toStartOfHour(a.et), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3) AS median_gap_pct,
round(quantileDeterministic(0.95)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3) AS p95_gap_pct,
count() AS sample_count
FROM regular_bars AS a
INNER JOIN regular_bars AS b ON b.et = a.et_later
GROUP BY et_time
ORDER BY et_timeLas barras registradas en la primera hora de negociación, que comienza a las 9:30 a. m., hora del Este, se movieron una mediana de 0.125% durante los 15 minutos siguientes, con un percentil 95 de 0.556%. En la hora 15:00, la mediana fue de 0.065%. Cada grupo reúne 630 pares de minutos superpuestos, por lo que son cifras típicas y no el resultado aislado de un solo día. La curva no es plana. Un retraso fijo oculta más información en algunas horas que en otras.
Lo que oculta también depende del valor. Misma medición, seis tickers ampliamente seguidos y el mismo mes.
El SQL exacto detrás de cada cifra
WITH regular_bars AS
(
SELECT
ticker,
toTimeZone(window_start, 'America/New_York') AS et,
toTimeZone(window_start, 'America/New_York') + INTERVAL 15 MINUTE AS et_later,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'AMD')
AND close > 0
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
a.ticker AS ticker,
round(quantileDeterministic(0.5)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3) AS median_gap_pct,
round(quantileDeterministic(0.99)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3) AS p99_gap_pct
FROM regular_bars AS a
INNER JOIN regular_bars AS b ON b.ticker = a.ticker AND b.et = a.et_later
GROUP BY ticker
ORDER BY median_gap_pct DESCAMD presentó la mayor brecha típica de los seis, de 0.361%, y SPY la menor, de 0.071%. La columna del percentil 99 merece una segunda lectura: en el peor uno por ciento de las ventanas de 15 minutos de ese mes, AMD recorrió 2.532%.
Este es el mismo concepto aplicado a un solo día. El panel identifica la sesión de junio de 2026 con el mayor rango intradía de SPY y traza dos líneas: la cotización en tiempo real en cada marca de diez minutos y lo que mostraba una página con 15 minutos de retraso en ese momento.
El SQL exacto detrás de cada cifra
WITH
widest_session AS
(
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND close > 0
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY d
ORDER BY (max(toFloat64(high)) - min(toFloat64(low))) / min(toFloat64(low)) DESC
LIMIT 1
),
session_bars AS
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et,
toTimeZone(window_start, 'America/New_York') - INTERVAL 15 MINUTE AS et_earlier,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND close > 0
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM widest_session)
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
formatDateTime(a.et, '%H:%i') AS et_time,
round(a.px, 2) AS live_price,
round(b.px, 2) AS delayed_price,
round(abs(a.px - b.px), 2) AS gap_delta,
formatDateTime(a.et, '%b %e') AS session_label
FROM session_bars AS a
INNER JOIN session_bars AS b ON b.et = a.et_earlier
WHERE toMinute(a.et) % 10 = 0
ORDER BY a.etEl Jun 9, a las 09:50, hora del Este, SPY cotizaba en tiempo real a 746.13, mientras que la vista retrasada mostraba 744.22, una diferencia de $1.91. Para 15:50, ambas cotizaciones eran 735.29 y 734.49. Las líneas se superponen cuando el mercado está tranquilo y se separan cuando el precio se mueve. Un retraso no tiene costo en un mercado sin cambios, pero sí puede ocultar más información justo en los momentos que los operadores están observando.
La regla de visualización: qué debe mostrar un sitio web
La Regulation NMS establece un requisito de visualización consolidada en la Rule 603(c). Un proveedor que muestra datos de cotizaciones al público debe presentar información consolidada: la mejor oferta nacional de compra y venta, junto con la última operación consolidada. No debe presentar la cotización de un solo mercado como si fuera el precio de referencia. Los proveedores también deben identificar los datos retrasados como retrasados. De ahí proviene la letra pequeña al pie de casi todas las páginas financieras. Para quien consulta una cotización gratuita, esto implica dos cosas.
- Una cotización gratuita en tiempo real de un solo mercado muestra un precio real, pero no es el NBBO. Refleja el libro de órdenes de un mercado, que puede tener un spread más amplio que la mejor oferta disponible.
- Es normal que una página muestre la última operación en tiempo real sin mostrar el bid o el ask. La última operación y las cotizaciones son productos con licencias separadas, y la última operación es la opción más barata.
Para entender qué ocurre cuando dos mercados coinciden en la parte superior del libro, consulta mercados bloqueados y cruzados.
Profesional o no profesional: la prueba que determina su tarifa
El costo de los datos en tiempo real para una persona depende de una clasificación. Esa clasificación depende de su actividad laboral, no de su patrimonio. En el lenguaje que utilizan las bolsas, usted es un suscriptor no profesional cuando cumple todas las condiciones siguientes.
- Es una persona física que utiliza los datos para fines personales, no en nombre de una empresa ni de otra entidad.
- No está registrado ni acreditado ante la SEC, la CFTC, una agencia estatal de valores, una bolsa o asociación de valores, ni un mercado de contratos de futuros.
- No trabaja como asesor de inversiones ni como gestor de activos, y no desempeña funciones que exigirían uno de esos registros.
- No utiliza los datos con fines empresariales, incluso si trabaja para un empleador que le reembolsa la suscripción.
Si no cumple una sola de estas condiciones, las bolsas lo clasifican como profesional. La tarifa se cobra por bolsa, por usuario y por mes, y es un múltiplo de la tarifa no profesional. Un analista junior de un fondo que mantiene una cuenta personal pequeña es un usuario profesional. Un inversionista jubilado con una cartera grande que opera únicamente su propio dinero no lo es. Los distribuidores están obligados a recopilar su respuesta y reportarla. Por eso, todo registro para datos en tiempo real pregunta por su empleador y sus registros profesionales.
¿Qué es una cotización snapshot?
Un snapshot es una lectura única tomada en el momento de la consulta: el último precio, o la mejor oferta y demanda vigentes, que se devuelve una sola vez y nunca se actualiza. Un stream es una suscripción activa en la que cada cambio se envía conforme ocurre. Las licencias suelen fijar precios distintos para ambos servicios: por consulta en un caso y por usuario al mes en el otro. Por eso, una API gratuita puede ofrecer un endpoint de snapshot con retraso, pero no un stream en tiempo real. Si actualiza un snapshot cada segundo, en la práctica ha reconstruido un stream, y los acuerdos de licencia están redactados para detectar ese uso.
Cómo saber si el precio que aparece está retrasado
- La marca de tiempo es la única señal fiable. Una cotización en tiempo real lleva una marca de tiempo de uno o dos segundos respecto al reloj ET actual.
- El máximo del día y el volumen acumulado también se quedan obsoletos. Por eso, una página retrasada puede no mostrar un máximo que el tape registró hace diez minutos.
- Durante los primeros 15 minutos después de la apertura de las 9:30 a. m. ET, una página retrasada no muestra datos de la sesión actual. Muestra el cierre anterior o un print del premarket.
- La prueba de inmovilidad, que consiste en observar si el número cambia, solo funciona con valores que se mueven.
Este último punto necesita datos que lo respalden.
El SQL exacto detrás de cada cifra
WITH regular_bars AS
(
SELECT
ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
toTimeZone(window_start, 'America/New_York') AS et,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'AMD')
AND close > 0
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
),
stepped AS
(
SELECT
ticker,
et,
px,
lagInFrame(px) OVER (PARTITION BY ticker, session_date ORDER BY et
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_px
FROM regular_bars
)
SELECT
ticker,
round(100 * countIf(px != prev_px) / count(), 1) AS minutes_price_moved_pct,
round(quantileDeterministic(0.5)(abs(px / prev_px - 1) * 10000, toUInt64(toUnixTimestamp(et))), 1) AS median_move_bps
FROM stepped
WHERE prev_px > 0
GROUP BY ticker
HAVING count() > 0
ORDER BY minutes_price_moved_pct DESCHasta junio de 2026, AMD registró un precio distinto al de la minuta anterior en 99.8% de las minutas de la sesión regular. El movimiento mediano entre minutos fue de 9.6 puntos básicos. Un punto básico equivale a una centésima de punto porcentual. KO fue el que menos actualizó su precio de los seis, con 94.1%. En valores tan activos, que el último precio no cambie durante varios minutos en mitad de una sesión es una señal razonable de que se está viendo un dato retrasado o almacenado en caché. En una acción con poca liquidez, esa misma inmovilidad es normal. Por eso, la marca de tiempo sigue siendo la prueba.
Qué cotizaciones bursátiles gratuitas son realmente en tiempo real
Dos fuentes ofrecen precios en vivo de forma fiable a los inversores particulares, y una etiqueta habitual merece una revisión más detenida.
- Una cuenta de corretaje con fondos. Los brokers tramitan para sus clientes la autorización de uso no profesional y muestran cotizaciones en vivo en la app. Por eso el formulario de apertura preguntaba por su empleador.
- El sitio web del operador de la bolsa, para los valores que esa bolsa lista. Son cotizaciones en tiempo real de un solo mercado, por lo que muestran un único libro de órdenes y no el NBBO consolidado.
- Cualquier servicio que anuncie cotizaciones gratuitas en tiempo real sin exigir inicio de sesión ni autocertificación. Revise el sello de la cotización antes de utilizarla como referencia.
Cuando el destino es un programa y no una pantalla, la clasificación vuelve a cambiar: el consumo por máquinas se licencia bajo condiciones de non-display, en un esquema separado del aplicable por usuario. Nuestros artículos sobre APIs gratuitas de datos bursátiles y consultar datos de mercado con SQL explican esos niveles.
Preguntas frecuentes
¿Por qué las cotizaciones de acciones tienen exactamente 15 minutos de retraso?
Quince minutos es el umbral a partir del cual los precios de las acciones estadounidenses dejan de considerarse un producto en tiempo real sujeto a tarifas, según los acuerdos de datos de las bolsas. Un distribuidor puede publicar cualquier dato con al menos esa antigüedad sin informar el número de usuarios.
¿Qué convierte a alguien en suscriptor profesional de datos de mercado?
El registro ante un regulador de valores o futuros, el empleo en una función de inversión, recibir los datos en nombre de una entidad o cualquier uso comercial de los precios. El patrimonio neto y el tamaño de la cuenta no influyen.
¿Cómo puedo saber si una cotización está retrasada?
Compara la marca de tiempo de la cotización con la hora actual del este de EE. UU. (ET) y busca la etiqueta de retraso que los proveedores están obligados a mostrar. En un valor activo durante el horario regular, que el precio permanezca sin cambios durante varios minutos también es una señal.
¿Las cotizaciones gratuitas en tiempo real son iguales al NBBO?
A menudo, no. La cotización gratuita de una sola bolsa muestra el libro de órdenes de ese centro de negociación. El NBBO es la mejor oferta de compra y venta entre todos los centros de negociación, calculada a partir del consolidated tape.
¿El retraso de 15 minutos importa para los datos de cierre?
No. Una vez que termina la sesión, la versión retrasada y la versión en tiempo real del precio de cierre o del volumen diario son idénticas. El retraso solo afecta durante la sesión.
Cada panel incluye el SQL que lo generó, por lo que cualquier cifra anterior puede volver a calcularse para otro ticker u otro mes. Para medir cuánto valen 15 minutos en un valor que sigues, solicítalo en inglés sencillo en la terminal de Strasmore.