Strasmore Research
Resúmenes de mercado Matt ConnorPor Matt Connor · Actualizado 2026-08-02

Resumen de mercado: 30 de julio de 2026 en cifras

Resumen del 30 de julio de 2026 con índices, amplitud, spread sectorial, flujo de opciones, cotizaciones, tasas y calendario, basado en consultas almacenadas.

Este resumen de mercado del jueves 30 de julio de 2026 cubre toda la sesión a partir de consultas almacenadas: la variación de cierre a cierre de SPY fue de 1.68%, la proporción de valores en alza dentro del mercado líquido fue de 63.5% y el mercado de opciones registró 67.06 millones de contratos. Cada ventana que aparece abajo está delimitada por fechas explícitas en ambos extremos, por lo que volver a ejecutar el SQL de cualquier panel devuelve estas mismas cifras.

El marcador

Cada cambio compara la última barra de un minuto de la sesión regular del 30 de julio con la de la del miércoles 29 de julio, en sesiones de negociación consecutivas. Las filas están en orden alfabético, por lo que cada ETF conserva una posición fija.

ConsultaSPY / QQQ / DIA / IWM: 30 de julio frente al cierre del 29 de julio, horario regular
El SQL exacto detrás de cada cifra
WITH prior AS (
    SELECT ticker, argMax(close, window_start) AS prior_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
    GROUP BY ticker
),
sess AS (
    SELECT ticker,
           argMin(open, window_start) AS day_open,
           argMax(close, window_start) AS day_close,
           max(high) AS day_high,
           min(low) AS day_low,
           round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
    GROUP BY ticker
)
SELECT
    s.ticker AS ticker,
    round(toFloat64(p.prior_close), 2) AS prior_close,
    round(toFloat64(s.day_open), 2) AS day_open,
    round(toFloat64(s.day_close), 2) AS day_close,
    round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
    round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
    round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
    round(toFloat64(s.day_high), 2) AS day_high,
    round(toFloat64(s.day_low), 2) AS day_low,
    s.shares_traded_m
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker
Run this yourself

DIA se movió 1.19%, IWM 1.37%, QQQ 3.34% y SPY 1.68% hasta cerrar en $741.73. Cada fila divide el movimiento en sus dos tramos: SPY abrió 0.9% respecto al cierre del miércoles y se movió 0.77% entre la apertura y el cierre. El tramo nocturno y el tramo intradía no tienen que coincidir. La división entre ambos es la primera huella de una sesión.

¿Fue inusual la jornada?

El dato de una sola sesión dice poco sin conocer su distribución. Por eso, la jornada se clasifica dentro de su propio mes móvil con la misma lógica.

ConsultaMovimiento diario de SPY en contexto histórico reciente (apertura a cierre, del 30 de junio al 30 de julio)
El SQL exacto detrás de cada cifra
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-30')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-30'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-30'))) + 1 AS spy_abs_move_rank,
    count() AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-30 13:30:00')
      AND window_start < toDateTime('2026-07-31 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

El movimiento de apertura a cierre de SPY, de 0.77%, ocupó el puesto 3 entre 22 sesiones móviles según su magnitud absoluta, en una ventana que se remonta hasta 2026-06-30. La clasificación cuenta cuántas sesiones de la ventana registraron un movimiento mayor y suma uno. Por lo tanto, el primer puesto correspondería al mayor movimiento del mes móvil.

Amplitud

El nivel de un índice es un número. La amplitud cuenta cuántas acciones se movieron en la misma dirección.

ConsultaAmplitud del mercado líquido: cierre del 30 de julio frente al cierre del 29 de julio, filtro de $1M negociados
El SQL exacto detrás de cada cifra
SELECT
    countIf(c30 > c29 AND liquid) AS advancers,
    countIf(c30 < c29 AND liquid) AS decliners,
    countIf(c30 = c29 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c30 > c29 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c29, c30, dv30 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv30
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0
    )
)
Run this yourself

Entre 5960 acciones que superaron un umbral de un millón de dólares de volumen negociado en el horario regular, 3782 cerraron por encima del cierre del miércoles y 2122 cerraron por debajo, lo que representa una proporción de acciones alcistas de 63.5%. El filtro dejó fuera 5492 acciones con menor liquidez, que se contabilizan aquí en lugar de descartarse silenciosamente.

La canasta de mega-caps

Los mismos ocho nombres de mega-caps aparecen en cada sesión, ordenados alfabéticamente para que cada uno conserve su fila. El objetivo es mantener una canasta fija: el lector aprende las filas y ningún criterio editorial selecciona ganadores después de los hechos.

ConsultaOcho mega-caps: cambio frente al 29 de julio y dólares negociados en horario regular, 30 de julio
El SQL exacto detrás de cada cifra
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-30 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
        OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Run this yourself

AAPL se movió -1.24%, META -8.17%, MSFT 15.06% y NVDA 2.67%, con 19.63 mil millones de dólares de volumen negociado en el horario regular. TSLA registró 3.53%. La columna en dólares muestra cuánto del flujo de operaciones concentran por sí solos estos ocho nombres; el panel de amplitud de mercado de arriba sirve para comprobar hasta qué punto el resto del mercado avanzó en la misma dirección.

Los movimientos del día

Ambos tableros exigen una rotación de cinco millones de dólares en el horario regular, excluyen cualquier nombre cuyo split se haya ejecutado entre los dos cierres que miden y excluyen un ticker reutilizado conforme al filtro de ambigüedad interno descrito en las notas.

ConsultaMayores subidas y bajadas: cierre del 30 de julio frente al cierre del 29 de julio, $5M+ negociados, sin splits
El SQL exacto detrás de cada cifra
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c30 / c29 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-29' AND execution_date <= '2026-07-30')
          AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c30 / c29 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-29' AND execution_date <= '2026-07-30')
          AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

El mayor avance del tablero, CYCU, subió 489.5% con un volumen negociado de 474.4 millones de dólares. La mayor caída, IREZ, registró -61.2% con un volumen de 90.8 millones. Esta página registra las magnitudes y los comprobantes; no les atribuye ninguna explicación.

Dispersión sectorial

Los once fondos SPDR de sectores selectos, según el cierre del 30 de julio frente al del 29 de julio, ordenados de mejor a peor. La canasta está definida y es fija; no corresponde a una clasificación de un proveedor.

ConsultaETFs sectoriales, cierre del 30 de julio frente al cierre del 29 de julio, ordenados
El SQL exacto detrás de cada cifra
SELECT sector, day_pct, round(max(day_pct) OVER () - day_pct, 2) AS points_behind_best
FROM (
    SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
                   ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
                   ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
                   ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
           round((c30 / c29 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-30 00:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 00:00:00') AS c30
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
          AND ((window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
            OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'))
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Technology encabezó la tabla con 5.52%, mientras que Communications quedó al final con -2.69%, 8.21 puntos porcentuales por detrás. Ese spread representa la dispersión sectorial del día: una sesión en la que los once terminan dentro de un punto porcentual es muy distinta de otra en la que se distribuyen a lo largo de varios puntos.

Dónde se negociaron los dólares

ConsultaTop 6 por dólares negociados, top 4 por acciones negociadas: horario regular del 30 de julio
El SQL exacto detrás de cada cifra
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(1000 * dollar_volume_bn / shares_m, 2) AS implied_avg_price
FROM (
    SELECT
        'by dollars traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY dollar_volume_bn DESC
    LIMIT 6
    UNION ALL
    SELECT
        'by shares traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESC
Run this yourself

MU encabezó la clasificación por volumen en dólares con una facturación de 43.29 mil millones en el horario regular, seguido por MSFT con 42.56 mil millones. La clasificación por acciones responde a una pregunta distinta: CYCU la lideró con 544 millones de acciones y un precio promedio implícito de $0.86. El volumen en dólares identifica la atención del mercado; el volumen de acciones muestra su rotación, y la versión por instrumento de esta medida es el volumen relativo.

La cinta de opciones

ConsultaFlujo de opciones: contratos, participación de calls, participación del mismo día frente al miércoles, contrato de SPY más activo
El SQL exacto detrás de cada cifra
WITH
    (
        SELECT (strike, typ, vol_m, is_0dte)
        FROM (
            SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
                   round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
                   if(substring(ticker, length(ticker) - 14, 6) = '260730', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
              AND underlying_symbol = 'SPY'
            GROUP BY ticker
            ORDER BY vol_m DESC, strike ASC
            LIMIT 1
        )
    ) AS top_spy,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
    ) AS jul29_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260729') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
    ) AS jul29_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul29_contracts_m,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260730') / sum(size), 1) AS pct_0dte,
    jul29_pct_0dte,
    spy_regular_close,
    top_spy.1 AS top_spy_strike,
    top_spy.2 AS top_spy_type,
    top_spy.3 AS top_spy_contracts_m,
    top_spy.4 AS top_spy_is_0dte,
    round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

La cinta de opciones registró 10.93 millones de operaciones por 67.06 millones de contratos, frente a los 66.84 millones del miércoles. Las calls representaron 54.6% del volumen de contratos. Los contratos que vencían en la misma sesión, el grupo de vencimiento en cero días, representaron 25.3%, frente a 33.1% el miércoles, un ritmo determinado por el calendario de vencimientos. El contrato más activo de SPY fue el de 740 C, con 0.56 millones de contratos. Su strike estaba a -1.73 dólares del cierre regular de SPY en $741.73, calculado como strike menos cierre.

La cinta de cotizaciones

Los datos de cotizaciones son el conjunto de datos más escaso de esta mesa, y se miden en cada sesión. Los días ordinarios también quedan registrados.

ConsultaNúmero de actualizaciones NBBO de acciones: 30 de julio frente al 29 de julio, con actualizaciones de tickers identificados (millones)
El SQL exacto detrás de cada cifra
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / 1e6, 2) AS jul30_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / 1e6, 2) AS jul29_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / countIf(toDate(sip_timestamp) = toDate('2026-07-29')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'SPY') / 1e6, 2) AS jul30_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'QQQ') / 1e6, 2) AS jul30_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'NVDA') / 1e6, 2) AS jul30_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

La cinta de cotizaciones accionarias registró 560.75 millones de actualizaciones del NBBO, frente a 722.65 millones el miércoles, un cambio diario de -22.4%. SPY registró 5.55 millones de actualizaciones, QQQ 6.75 millones y NVDA 2.39 millones.

ConsultaSiete nombres: spread mediano cotizado en horario regular, en puntos básicos, con conteos de calidad de cotización, 30 de julio
El SQL exacto detrás de cada cifra
SELECT ticker,
       round(quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
       countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
  AND sip_timestamp >= '2026-07-30 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY ticker
Run this yourself

El spread mediano cotizado de SPY en el horario regular midió 0.27 puntos base del punto medio; el de QQQ, 0.59, y el de NVDA, 1.03. Las dos últimas columnas muestran la divulgación: las cotizaciones de un solo lado y cruzadas se contabilizan por nombre y se mantienen separadas de la mediana, en lugar de eliminarse silenciosamente. Una cotización cruzada, con la demanda por encima de la oferta, es un resultado habitual de una fuente consolidada integrada a partir de muchos centros de negociación con resolución de nanosegundos.

ConsultaSpread mediano de SPY comparado con todas las sesiones de julio, del más estrecho al más amplio
El SQL exacto detrás de cada cifra
SELECT round(anyIf(spread_bps, d = toDate('2026-07-30')), 2) AS jul30_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-30')), groupArrayIf(spread_bps, d != toDate('2026-07-30'))) + 1 AS rank_tightest,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(sip_timestamp) AS d,
           quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00'
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
    HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)
Run this yourself

Al compararse con todas las sesiones de julio bajo una lógica idéntica, el spread mediano de SPY de 0.27 puntos base del día se ubicó en 19 de 21, contando desde el más estrecho, en una ventana que comienza en 2026-07-01. En una cinta tranquila, esa frase es el objetivo del panel: la liquidez de un día ordinario es un hallazgo, publicado y acotado.

ConsultaCinta NBBO de opciones: actualizaciones totales frente a la cinta de acciones, más el segmento del root de SPY, 30 de julio
El SQL exacto detrás de cada cifra
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_stock_quote_rows
SELECT
    round(jul30_options_rows / 1e9, 2) AS jul30_options_bn,
    round(jul30_options_rows / jul30_stock_quote_rows, 1) AS options_to_stock_ratio,
    round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-30 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00') / 1e6, 0) AS jul30_spy_options_m
Run this yourself

La cinta NBBO de opciones registró 10.32 mil millones de actualizaciones, 18.4 veces las de la cinta de cotizaciones accionarias, y solo la raíz de SPY alcanzó 441 millones de actualizaciones en el horario regular.

Tasas

ConsultaCotizaciones de la curva del Tesoro registradas, del 27 al 30 de julio
El SQL exacto detrás de cada cifra
SELECT toString(date) AS date,
       round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
       round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
       round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
       round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-27' AND date <= '2026-07-30'
ORDER BY date
Run this yourself

El archivo del Tesoro lleva aproximadamente una sesión de retraso respecto del mercado. Por eso, este panel muestra las operaciones ejecutadas que tiene registradas: filas con fecha 4 dentro de la ventana. La más reciente, con fecha 2026-07-30, ubicó el rendimiento del bono a dos años en 4.23%, el del bono a diez años en 4.68% y el del bono a treinta años en 5.21%. El spread entre dos y diez años fue de 45 puntos básicos.

El calendario detrás de la jornada

ConsultaEx-dividendos, splits, listings, noticias y mezcla de filings ante la SEC del 30 de julio
El SQL exacto detrás de cada cifra
WITH
    (
        SELECT (argMax(t, (n, t)), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news,
    (
        SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
        FROM global_markets.stocks_sec_edgar_index
        WHERE filing_date = '2026-07-30'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-30') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-30') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00') AS news_publishers,
    top_news.1 AS top_news_ticker,
    top_news.2 AS top_news_n,
    fil.1 AS fil_total,
    fil.2 AS fil_filers,
    fil.3 AS fil_form4,
    fil.4 AS fil_8k,
    fil.5 AS fil_424b2,
    fil.6 AS fil_10q
Run this yourself

200 registros de dividendos pasaron a ex-dividend el 30 de julio; se ejecutaron 3 splits inversos y 3 splits directos, y 3 nuevas cotizaciones llegaron al tape. El feed de noticias incluyó 173 artículos de 2 medios, y NVDA fue el ticker con más cobertura en la ventana de este feed, con 11 artículos. El índice diario de EDGAR contiene 5544 presentaciones correspondientes a la fecha, de 2743 emisores distintos: 745 reportes de insiders mediante Form 4, 460 reportes corrientes 8-K, 1426 suplementos de precios 424B2 y 252 reportes trimestrales 10-Q. Ese índice se publica según su propio calendario, y este panel muestra lo que contiene al momento de su generación.

En agenda

En las próximas dos sesiones, consulte las mismas tablas y mire deliberadamente más allá del periodo. El viernes 31 de julio es la última fecha de negociación del mes en el calendario.

Consulta31 de julio y 3 de agosto en el calendario: cierres, ex-dividendos, splits, el vencimiento del viernes y el rezago del interés en corto
El SQL exacto detrás de cada cifra
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-31' AND date <= '2026-08-03' AND status != 'open') AS closures_next_two_sessions,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-31' AND ex_dividend_date <= '2026-08-03') AS exdiv_records_next_two_sessions,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-31' AND ex_dividend_date <= '2026-08-03') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-31' AND execution_date <= '2026-08-03') AS splits_next_two_sessions,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_thu_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-30') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

La tabla de feriados muestra 0 cierres entre el viernes 31 de julio y el lunes 3 de agosto. 544 registros de dividendos pasan a ex-dividendo durante esas dos sesiones, 0 de ellos corresponden a diez nombres conocidos del sector de consumo, y está previsto que se ejecuten 14 splits. Del volumen de opciones del jueves, 26.7% ya correspondía a contratos con vencimiento el viernes 31 de julio. El dato más reciente de interés en corto disponible corresponde a 2026-07-15, un archivo que se publica con un rezago suficientemente largo como para tener su propia explicación.

La sesión, verificada

ConsultaVerificación de la sesión: primera/última barra de SPY en ET, conteo de barras regulares, registros de feriados y próximo cierre
El SQL exacto detrás de cada cifra
SELECT
    formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
    formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
    countIf(window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-30') AS jul30_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-30' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-30' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-30 00:00:00' AND window_start < '2026-07-31 00:00:00'
Run this yourself

Una sesión regular completa: primera vela de SPY a las 04:00 ET, última a las 19:59 ET, 390 velas de horario regular, 1 sesión en la ventana y 0 filas de feriados para la fecha. El próximo cierre programado es Labor Day el 2026-09-07.

Preguntas frecuentes

¿Cómo se comportó el mercado bursátil el jueves 30 de julio de 2026?

SPY cambió 1.68% entre cierres, hasta $741.73, mientras QQQ se ubicó en 3.34%, DIA en 1.19% e IWM en 1.37%. Entre las acciones líquidas, 3782 subió y 2122 bajó.

¿Qué sector encabezó la sesión el 30 de julio de 2026?

Technology, en 5.52%, medido entre los once fondos SPDR de sectores selectos. El más débil de los once, Communications, registró -2.69%.

¿Qué tan activa estuvo la actividad de opciones el 30 de julio de 2026?

Se negociaron 67.06 millones de contratos, frente a 66.84 millones en la sesión anterior. Los contratos con vencimiento ese mismo día representaron 25.3% del volumen y las calls, 54.6%.

¿Qué acción negoció el mayor monto en dólares el 30 de julio de 2026?

MU, con un volumen en dólares de 43.29 mil millones durante el horario regular, por delante de MSFT, con 42.56 mil millones.

Notas de datos

La edición diaria anterior es 29 de julio de 2026, y el resumen semanal incluye la semana previa a esta. Los paneles identificados por ticker están ordenados alfabéticamente, de modo que las referencias en la prosa apuntan a filas fijas; las tablas de líderes y de movimientos están ordenadas por valor, y cada afirmación de posición que contienen está codificada como un límite de control. La canasta de mega-cap y la canasta sectorial de eleven funds son conjuntos definidos y fijos, no clasificaciones de proveedores. Las tablas de movimientos aplican un umbral de turnover de cinco millones de dólares durante el horario regular, excluyen cualquier nombre cuyo split se haya ejecutado entre los dos cierres que miden y excluyen un símbolo reutilizado conforme al control interno de ambigüedad, de modo que cada mención siempre corresponde a un nombre verificable. Los paneles de cotizaciones cuentan las cotizaciones unilaterales y cruzadas por nombre, en lugar de descartarlas de forma silenciosa. El archivo del Tesoro y el índice diario de EDGAR llegan según sus propios calendarios, por lo que esos paneles reportan lo que contienen en vez de suponer que los datos ya llegaron. Aquí no aparece ningún índice de volatilidad implícita: esas series no están licenciadas para este warehouse, por lo que la volatilidad se obtiene del tape mediante rangos, la participación de opciones del mismo día y el comportamiento de las cotizaciones.

Metodología

  • Fuente de datos de mercado: cinta consolidada. delayed_stocks_minute_aggs para precios y volúmenes, options_trades para la cinta de opciones, cache_stocks_quotes y cache_options_quotes para los paneles de NBBO.
  • Cierre: la última barra de un minuto de la sesión regular; nunca un print supuesto de las 16:00 ni un print de horario extendido.
  • Manejo de zonas horarias: todas las marcas de tiempo almacenadas están en UTC; las cláusulas WHERE usan literales UTC sin modificar, y toTimeZone aparece únicamente en las listas SELECT para las etiquetas ET.
  • Verificación de la sesión: se realiza a partir de la tabla de feriados y las barras observadas; nunca se supone con base únicamente en el calendario.
  • Comparaciones con la sesión anterior: se calculan dentro de la consulta a partir del 29 de julio; nunca se arrastran de una publicación anterior.
  • Decimales: las columnas de precio, tamaño y volumen se convierten a Float64 antes de cualquier división o producto.
  • Agregados deterministas: se usan cuantiles exactos y desempates mediante claves de tupla; cada afirmación de orden o signo en el texto está codificada como un límite de comprobación.
  • Fecha de corte del almacén de datos: 1 de agosto de 2026, dos días después de la sesión, en el límite del retraso habitual de ingesta de la cinta, de uno a dos días; los comprobantes acotados anteriores mantienen la publicación si se detecta que falta algún conjunto de datos durante la generación.

Enlaces cruzados: el resumen diario anterior, el resumen semanal, cuándo vencen las opciones, qué es un spread bid-ask y el spread de dos a diez años.

Cada consulta anterior se ejecuta sin cambios en la terminal de Strasmore si desea volver a apuntar una ventana a otra sesión.