Strasmore Research
Educación Matt ConnorPor Matt Connor · Actualizado 2026-07-23 · data as of July 23, 2026 · refreshed weekly

Por qué los spreads son más amplios al inicio

Analizamos por qué el spread aumenta al inicio de la sesión. Usamos cotizaciones a nivel de tick para ver cómo el costo de la apertura se reduce rápidamente.

Los spreads son más amplios al inicio de la sesión que en casi cualquier otro momento de la jornada regular en EE. UU., y cuanto menor sea la liquidez de la acción, mayor será la penalización. En la ventana móvil a continuación, la primera media hora de negociación tuvo un bid-ask spread mediano de 3.34x el de Etsy, una empresa de mediana capitalización, y de 2.02x el de Apple; mientras que el SPY, el más cotizado de los tres, registró un ratio agrupado de 1x, una línea plana que resulta ser un artefacto de la cuadrícula de precios de un centavo y no de una apertura libre. Esta página cronometra ese periodo a partir de cotizaciones a nivel de tick.

Lo que el spread le cuesta a una orden de mercado

Cada acción muestra dos precios simultáneamente: el bid, la mejor oferta de compra disponible, y el ask, la mejor oferta de venta disponible. La diferencia entre ambos es el bid-ask spread, y una market order —aquella que opera de inmediato al mejor precio disponible— lo paga: las compras se ejecutan al ask, las ventas al bid, y la diferencia se la lleva quien publicó la cotización, generalmente un market maker. Dos propiedades de esa cotización son relevantes a continuación: opera en un horario cuyo periodo más costoso es la mañana, y se mueve en centavos enteros; el spread más ajustado que puede mostrar un ETF de alto precio y una mid-cap mucho más barata es el mismo centavo.

El reloj del spread: una forma, tres niveles de liquidez

El gráfico sigue tres niveles de liquidez: SPY, el ETF del S&P 500; Apple, una mega-cap; Etsy, una mid-cap. Cada actualización válida del NBBO —la mejor oferta y demanda de todo el mercado que muestra su broker, explicada en nuestra explicación del NBBO— en un periodo reciente de varios días se agrupa en intervalos de 30 minutos de la sesión regular. El spread mediano de cada intervalo se divide por el valor más ajustado de ese ticker, por lo que uno significa el nivel más ajustado de la acción.

ConsultaSpread mediano cada media hora, como múltiplo del bucket más ajustado de cada ticker (regular hours, ET)
El SQL exacto detrás de cada cifra
SELECT et_time,
       round(anyIf(rel, ticker = 'SPY'), 2) AS spy_x,
       round(anyIf(rel, ticker = 'AAPL'), 2) AS aapl_x,
       round(anyIf(rel, ticker = 'ETSY'), 2) AS etsy_x
FROM (
    SELECT ticker,
           et_time,
           median_bps / min(median_bps) OVER (PARTITION BY ticker) AS rel
    FROM (
        SELECT ticker,
               formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
               quantileExact(0.5)(toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000) AS median_bps
        FROM global_markets.cache_stocks_quotes
        WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
          AND sip_timestamp >= toDateTime(today() - 14)
          AND sip_timestamp < toDateTime(today() - 3)
          AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
          AND bid_price > 0
          AND ask_price > bid_price
        GROUP BY ticker, et_time
    )
)
GROUP BY et_time
ORDER BY et_time

Los libros de texto llaman a este patrón intradía una "U": apertura amplia, estrechamiento al mediodía y mayor amplitud hacia el cierre. Medido aquí, tiene forma de pendiente de esquí para los activos cuyo spread tiene margen de movimiento. Etsy abrió a 5.78x de su nivel más ajustado, bajó a 2.99x para las 10:30 y a 1.86x a la hora del almuerzo; Apple abrió a 3.04x. Para los tres, la media hora más ajustada es la última —1x, 1x, 1x— por lo que el ensanchamiento que los traders asocian con "el cierre" pertenece a la sesión extendida, después de la subasta de cierre.

La línea de SPY es plana: 1x en el intervalo de apertura, 1x al almuerzo. Su spread mediano no se mueve en todo el día. Esto no es la ausencia de una prima de apertura; es la cuadrícula de centavos.

La cuadrícula de un centavo: dónde se esconde la prima en los nombres con menor spread

El spread mediano de SPY mide 2¢ al inicio y 2¢ al mediodía; son los mismos dos centavos, por lo que su mediana no aporta información adicional. La distribución subyacente sí lo hace. Este panel contabiliza, cada media hora, la proporción de actualizaciones de cotizaciones que se mantienen en el mínimo de un centavo.

ConsultaParticipación de actualizaciones de cotizaciones en el spread mínimo de un centavo, por media hora (regular hours, ET)
El SQL exacto detrás de cada cifra
SELECT et_time,
       round(100 * countIf(ticker = 'SPY' AND spread_c <= 1.0001) / countIf(ticker = 'SPY'), 1) AS spy_pct_penny,
       round(100 * countIf(ticker = 'AAPL' AND spread_c <= 1.0001) / countIf(ticker = 'AAPL'), 1) AS aapl_pct_penny,
       round(100 * countIf(ticker = 'ETSY' AND spread_c <= 1.0001) / countIf(ticker = 'ETSY'), 1) AS etsy_pct_penny
FROM (
    SELECT ticker,
           formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
           toFloat64(ask_price - bid_price) * 100 AS spread_c
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
      AND sip_timestamp >= toDateTime(today() - 14)
      AND sip_timestamp < toDateTime(today() - 3)
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
      AND bid_price > 0
      AND ask_price > bid_price
)
GROUP BY et_time
ORDER BY et_time

SPY se mantuvo en el límite de un centavo durante el 20.7% de sus actualizaciones de la primera media hora, frente al 43.1% en la última media hora; Apple, 3.1% frente al 30.6%; Etsy, 0.2% frente al 8.3%. Todos los nombres abren con una distancia mayor al límite de la que cierran, y la cola también se desplaza: el spread del percentil 90 de SPY al inicio fue de 4¢ frente a 3¢ al mediodía — 1.32x, mientras que su mediana mostró 1x. La prima está presente en SPY; la cuadrícula de un centavo es demasiado gruesa para que la mediana la registre.

¿Por qué los spreads son más amplios en la apertura?

Tres condiciones coinciden en la primera media hora y ninguna persiste hasta la hora del almuerzo.

  • El backlog nocturno se acumula de golpe. Entre el cierre de las 4:00 p.m. y la subasta de apertura de la mañana siguiente, se acumulan diecisiete horas y media de información —resultados, proyecciones, sesiones en el extranjero— mientras el trading continuo está inactivo. Las primeras cotizaciones siguen al gap, no al cierre anterior.
  • El price discovery aún está en proceso. La subasta comprime ese backlog en una sola operación; luego el mercado pasa varios minutos buscando un rango alrededor de ella, y las cotizaciones se reajustan más rápido mientras esa búsqueda continúa.
  • El book aún se está completando. El premarket trading opera con muchos menos participantes cotizando, y la campana no reinicia el book instantáneamente.

El efecto de una suspensión en el tiempo

Una suspensión es la forma extrema de la misma mecánica. Bajo las reglas de limit up-limit down (LULD), una acción cuyo precio se sale de una banda alrededor de su promedio reciente activa una pausa de cinco minutos; una bolsa también puede suspender un ticker por noticias pendientes. Durante la suspensión no hay una cotización de dos lados para cruzar; el one-sided or crossed book en pantalla no es un mercado negociable. El trading se reinicia mediante una subasta de reapertura cuyas primeras cotizaciones cargan con el peso del backlog y el price discovery de una apertura de las 9:30, comprimidos en minutos. Una acción suspendida cerca de la apertura paga la prima dos veces.

El premercado es un mercado distinto

El factor de baja liquidez suele ser una constante; este panel lo tasa —mismas acciones, mismo horario, cinco fases del día, en puntos básicos (bps), centésimas de un porcentaje del precio de la acción, para permitir la comparación de activos con distintos precios.

ConsultaSpread cotizado mediano por fase del día de trading, en basis points (ET clock)
El SQL exacto detrás de cada cifra
SELECT phase,
       round(quantileExact(0.5)(spy_b), 2) AS spy_bps,
       round(quantileExact(0.5)(aapl_b), 2) AS aapl_bps,
       round(quantileExact(0.5)(etsy_b), 2) AS etsy_bps
FROM (
    SELECT multiIf(et_min >= 240 AND et_min < 420, 'Premarket 04:00-07:00',
                   et_min >= 420 AND et_min < 570, 'Premarket 07:00-09:30',
                   et_min >= 570 AND et_min < 600, 'Open 09:30-10:00',
                   et_min >= 720 AND et_min < 840, 'Midday 12:00-14:00',
                   et_min >= 960 AND et_min < 1200, 'After-hours 16:00-20:00', 'other') AS phase,
           if(ticker = 'SPY', spread_bps, NULL) AS spy_b,
           if(ticker = 'AAPL', spread_bps, NULL) AS aapl_b,
           if(ticker = 'ETSY', spread_bps, NULL) AS etsy_b
    FROM (
        SELECT ticker,
               toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
                 + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min,
               toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps
        FROM global_markets.cache_stocks_quotes
        WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
          AND sip_timestamp >= toDateTime(today() - 14)
          AND sip_timestamp < toDateTime(today() - 3)
          AND bid_price > 0
          AND ask_price > bid_price
    )
    WHERE phase != 'other'
)
GROUP BY phase
ORDER BY indexOf(['Premarket 04:00-07:00', 'Premarket 07:00-09:30', 'Open 09:30-10:00', 'Midday 12:00-14:00', 'After-hours 16:00-20:00'], phase)

El premercado no es una apertura deficiente; es un mercado distinto. El spread medio cotizado de Etsy fue de 306.25 bps entre las 4:00 y las 7:00 a.m. ET y de 307.57 bps desde las 7:00 hasta la campana, frente a 30.79 bps en la media hora de apertura y 9.21 bps al mediodía —puntos porcentuales del precio, no centavos. Apple cotizó 9.82 bps temprano frente a 0.96 bps al mediodía; incluso el SPY se amplió a 0.8 bps frente a 0.27 bps. Después de la campana de las 4:00 p.m. el spread se reduce —240.45 bps para Etsy, 6.99 bps para Apple.

El costo en centavos: apertura vs. mediodía

Los costos se miden en centavos. La tabla compara los mismos activos: el spread mediano durante la primera media hora (9:30–10:00 a.m. ET) frente al mediodía (12:00–2:00 p.m. ET), el percentil 90 de las cotizaciones en cada periodo, el conteo de actualizaciones de cotización y las cotizaciones excluidas por ser unidireccionales, bloqueadas o cruzadas.

ConsultaPrima de apertura: spread mediano y percentil 90 al inicio (9:30-10:00 ET) vs. mediodía (12:00-14:00 ET)
El SQL exacto detrás de cada cifra
SELECT ticker,
       round(countIf(isNotNull(spread_cents)) / 1e6, 2) AS valid_updates_m,
       round(quantileExactIf(0.5)(spread_cents, clock_min BETWEEN 810 AND 839), 2) AS open30_cents,
       round(quantileExactIf(0.5)(spread_cents, clock_min BETWEEN 960 AND 1079), 2) AS midday_cents,
       round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839), 2) AS open30_bps,
       round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS midday_bps,
       round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839)
             / quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS open_vs_midday_x,
       round(quantileExactIf(0.9)(spread_cents, clock_min BETWEEN 810 AND 839), 2) AS open30_p90_cents,
       round(quantileExactIf(0.9)(spread_cents, clock_min BETWEEN 960 AND 1079), 2) AS midday_p90_cents,
       round(quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 810 AND 839), 2) AS open30_p90_bps,
       round(quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 810 AND 839)
             / quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS p90_x,
       toString(countIf(isNull(spread_cents))) AS dropped_onesided_locked_crossed
FROM (
    SELECT ticker,
           toHour(sip_timestamp) * 60 + toMinute(sip_timestamp) AS clock_min,
           if(bid_price > 0 AND ask_price > bid_price, toFloat64(ask_price - bid_price) * 100, NULL) AS spread_cents,
           if(bid_price > 0 AND ask_price > bid_price, toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, NULL) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
      AND sip_timestamp >= toDateTime(today() - 14)
      AND sip_timestamp < toDateTime(today() - 3)
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'ETSY'], ticker)

Los centavos por acción y los dólares por cada 100 acciones representan el mismo número, por lo que la tabla funciona como una factura: una operación de ida y vuelta de 100 acciones en Etsy con la cotización mediana de apertura genera una pérdida de $24 frente a $7 con las cotizaciones del mediodía; en Apple, $6 frente a $3. La prima aumenta conforme disminuye el volumen de transacciones: 1x para SPY, 2.02x para Apple, 3.34x para Etsy, cuyas 0.19 millones de actualizaciones de cotización son una fracción pequeña de los 8.97 millones de Apple. La volatilidad supera al tiempo: la primera media hora de SPY, con 0.27 bps, es más ajustada que el mediodía más tranquilo de Etsy (9.21 bps), cuyo peor decil en la apertura registró 75.67 bps.

¿Se presenta la prima en cada sesión?

Agrupar los días de cotizaciones en una mediana responde a una pregunta sobre el periodo, no sobre una mañana específica. Este panel recalcula la relación entre la apertura y el mediodía sesión por sesión: la sesión típica, la más tranquila, la peor y la acción con la apertura más amplia de todas.

ConsultaSesión a sesión: frecuencia y magnitud con la que el open fue más amplio que el mediodía
El SQL exacto detrás de cada cifra
SELECT ticker,
       count() AS sessions,
       round(quantileExact(0.5)(ratio), 2) AS median_session_x,
       round(min(ratio), 2) AS calmest_session_x,
       round(max(ratio), 2) AS worst_session_x,
       round(100 * countIf(ratio > 1) / count(), 0) AS pct_sessions_open_wider
FROM (
    SELECT ticker,
           toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session_date,
           quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839)
             / quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079) AS ratio
    FROM (
        SELECT ticker,
               sip_timestamp,
               toHour(sip_timestamp) * 60 + toMinute(sip_timestamp) AS clock_min,
               toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps
        FROM global_markets.cache_stocks_quotes
        WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
          AND sip_timestamp >= toDateTime(today() - 14)
          AND sip_timestamp < toDateTime(today() - 3)
          AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
          AND bid_price > 0
          AND ask_price > bid_price
    )
    GROUP BY ticker, session_date
    HAVING countIf(clock_min BETWEEN 810 AND 839) > 0
       AND countIf(clock_min BETWEEN 960 AND 1079) > 0
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'ETSY'], ticker)

A lo largo de 7 sesiones, la apertura fue más amplia que el mediodía en el 71% de los SPY, el 100% de Apple y el 100% de Etsy. La prima de la sesión típica: 1x para SPY —en el ticker más líquido del mercado, el spread de centavos mantiene un ensanchamiento constante casi invisible— frente al 2.03x de Apple y el 3.29x de Etsy, donde la prima es inequívoca. La lección es la dispersión: la mañana más tranquila de Etsy abrió a 2.08x su propio mediodía, y su peor mañana a 4.5x. Una prima de apertura es un promedio y un valor extremo, nunca una promesa sobre las 9:31 de mañana.

A stress test: the MU morning of July 7, 2026

Rolling windows smooth away single mornings, so here is one pinned: Micron on Tuesday, July 7, 2026, inside the semiconductor break that day's recap walks through.

ConsultaMU hacia el 7 de julio de 2026: cierre previo de sesión regular, precio de apertura, overnight gap
El SQL exacto detrás de cada cifra
WITH prev AS (
    SELECT argMax(toFloat64(close), window_start) AS prev_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MU'
      AND window_start >= '2026-07-06 13:30:00'
      AND window_start < '2026-07-06 20:00:00'
),
day AS (
    SELECT argMin(toFloat64(open), window_start) AS day_open
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MU'
      AND window_start >= '2026-07-07 13:30:00'
      AND window_start < '2026-07-07 20:00:00'
)
SELECT round((SELECT prev_close FROM prev), 2) AS prior_close,
       round((SELECT day_open FROM day), 2) AS jul7_open,
       round(((SELECT day_open FROM day) - (SELECT prev_close FROM prev)) / (SELECT prev_close FROM prev) * 100, 1) AS overnight_gap_pct

MU closed at $984.31 and opened at $923.01 — an overnight gap of -6.2%. Its spread clock that day:

ConsultaMU — spread cotizado mediano por media hora el 7 de julio de 2026 (ET, regular hours)
El SQL exacto detrás de cada cifra
SELECT et_time,
       median_spread_cents,
       median_spread_bps,
       round(100 * median_spread_cents / max(median_spread_cents) OVER (), 1) AS pct_of_widest,
       dropped_onesided_locked_crossed
FROM (
    SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
           round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 100, bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_cents,
           round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_bps,
           toString(countIf(NOT (bid_price > 0 AND ask_price > bid_price))) AS dropped_onesided_locked_crossed
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'MU'
      AND sip_timestamp >= '2026-07-07 13:30:00'
      AND sip_timestamp < '2026-07-07 20:00:00'
    GROUP BY et_time
)
ORDER BY et_time

The clock kept time. MU's opening half hour ran a median spread of 62¢ — 6.7 bps on a stock opening at $923.01 — the widest half-hour bucket of its session. One bucket later the median was 45¢, then 39¢ at noon and 38¢ in the last half hour. The premium arrived on schedule — and the liquidity tier still ruled: even here MU stayed tighter in percentage terms than Etsy's ordinary open (30.79 bps).

::: Data notes: window, filters, method
The SPY/Apple/Etsy panels roll: eleven calendar days of NBBO updates ending three days before the last refresh (clear of the feed's ingest lag). The regular-hours panels cut the session with a UTC minute-of-day filter on the summer (EDT) clock; the guard below checks it still lands on a 9:30 a.m. ET start at both ends of the window (570 is 9:30 a.m.) — on the winter clock it trips and holds the page for rework. The phases panel converts to the Eastern clock directly, covering 4:00 a.m.–8:00 p.m. ET either way. One-sided (zero bid or ask) and locked or crossed (bid at or above ask) quotes are excluded throughout; session stability keeps only sessions quoting in BOTH windows. Medians and 90th percentiles are exact; the MU panels are pinned to July 6–7, 2026.

ConsultaWindow guard: el filtro de sesión UTC equivale a un inicio a las 9:30 a.m. ET en ambos extremos de la ventana móvil
El SQL exacto detrás de cada cifra
SELECT toHour(toTimeZone(toDateTime(today() - 14) + toIntervalMinute(810), 'America/New_York')) * 60
         + toMinute(toTimeZone(toDateTime(today() - 14) + toIntervalMinute(810), 'America/New_York')) AS win_start_et_min,
       toHour(toTimeZone(toDateTime(today() - 4) + toIntervalMinute(810), 'America/New_York')) * 60
         + toMinute(toTimeZone(toDateTime(today() - 4) + toIntervalMinute(810), 'America/New_York')) AS win_end_et_min

:::

Preguntas frecuentes

¿En qué momento del día los spreads bid-ask son más amplios?

Premercado — El spread mediano cotizado de Etsy fue de 306.25 bps entre las 4:00 y las 7:00 a.m. ET, frente a los 9.21 bps del mediodía. Dentro del horario regular, el periodo más amplio es la primera media hora tras la apertura; el más estrecho, la última media hora antes del cierre.

¿Por qué el spread de SPY se ve plano en la apertura?

Las acciones de EE. UU. se cotizan en centavos enteros, y el spread mediano de SPY se mantiene en 2¢ la mayor parte del día; una cuadrícula demasiado gruesa para registrar un ligero ensanchamiento. Sesión tras sesión, su apertura sigue siendo más amplia que su mediodía en el 71% de las sesiones, y su spread de apertura en el percentil 90 fue de 4¢ frente a 3¢.

¿Es malo colocar una orden de mercado en la apertura?

Es uno de los periodos más costosos de la sesión regular para quienes exigen inmediatez — $24 frente a $7 en un round trip de 100 acciones de Etsy en el intervalo mencionado. Una limit order limita ese costo, con el riesgo de no ejecutarse, y una orden que pueda esperar puede cruzar un gap más estrecho: la prima de Etsy cayó de 5.78x a 2.99x en una hora.

¿Se vuelven a ampliar los spreads al cierre?

No dentro del horario regular — el bloque de la última media hora fue el más estrecho del día para los tres nombres. Ese ensanchamiento ocurre después de la campana de las 4:00 p.m., en la sesión extendida con menor liquidez: Apple cotizó 6.99 bps allí frente a los 0.96 bps del mediodía.

¿Los spreads de las opciones también se amplían en la apertura?

Estos paneles miden únicamente cotizaciones de acciones y no afirman nada sobre las opciones. La mecánica apunta en la misma dirección — la cotización de una opción depende del precio de la acción subyacente, que es menos estable en los primeros minutos — y nuestro desglose de costos de opciones mide los spreads de las opciones directamente.


Cada panel incluye el SQL que lo produjo; sustituya por un ticker que opere y cronometre su spread en la terminal de Strasmore.