Strasmore Research
Resúmenes de mercado Matt ConnorPor Matt Connor · Actualizado 2026-07-23

Resumen de mercado 9 de julio de 2026

Equipos de chips y mega-caps presentaron gaps volátiles antes de un cierre verde. Analizamos el movimiento de NVDA y la amplitud del mercado en este reporte.

El jueves 9 de julio de 2026 presentó una alta volatilidad en un solo minuto, antes de la apertura del mercado. Las acciones de equipos de semiconductores operaban muy por encima del cierre del miércoles en el premarket, mientras que META se situaba un -3.16% por debajo; la apertura de las 9:30 confirmó ambas posiciones. Posteriormente, la tendencia inicial se revirtió parcialmente: los saltos en los semiconductores disminuyeron, META recuperó sus niveles y la sesión cerró un 71.5% en verde, siendo la jornada con mayor amplitud de la semana. NVDA, que se mantuvo en verde tras la caída del martes, cerró en rojo. Cada cifra presentada a continuación proviene de una consulta almacenada.

Qué configuró la apertura

Los gaps no se formaron a las 9:30. Entre las 4:00 am y las 9:29 am ET, la cinta del premarket ya había ajustado los precios de estos valores, y la impresión de apertura se situó en ese nivel.

ConsultaTrayectoria premarket, 4:00-9:29 am ET: última cotización premarket vs cierre del miércoles y la apertura posterior
El SQL exacto detrás de cada cifra
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    formatDateTime(first_pm_bar, '%H:%i') AS first_premkt_bar_et,
    round(premkt_last, 2) AS premkt_last,
    round((premkt_last / prior_close - 1) * 100, 2) AS premkt_pct,
    round(premkt_shares / 1e3, 1) AS premkt_shares_k,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_open / premkt_last - 1) * 100, 2) AS open_vs_premkt_pct
FROM (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS prior_close,
        minIf(toTimeZone(window_start, 'America/New_York'), window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00') AS first_pm_bar,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00')) AS premkt_last,
        sumIf(toFloat64(volume), window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00') AS premkt_shares,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS day_open
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'KLAC', 'LRCX', 'META', 'NVDA')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
ORDER BY ticker

La última cotización de KLAC en el premarket se situó +8.49% sobre el cierre del miércoles y abrió +8.14%; LRCX subió +9.64% hacia una apertura de +9.67%; META registró -3.16% y abrió -3.16%. Lea open_vs_premkt_pct: los seis abrieron dentro del uno por ciento de su último precio en el premarket. NVDA es la excepción — 0.16% durante la noche sobre 3741.7k acciones, el mayor volumen de premarket de los seis y el movimiento más pequeño (trading en premarket y after-hours).

¿Hubo un catalizador? Nuestros datos no señalan ninguno

Un resumen debe indicar qué movió a una acción. En este caso, nuestras tablas no muestran nada: el feed de noticias y el índice de presentaciones de la SEC están vacíos para los cuatro nombres con mayores gaps.

ConsultaCatalizadores registrados: noticias y filings de la SEC por ticker, del cierre del miércoles al jueves
El SQL exacto detrás de cada cifra
SELECT
    ticker,
    toUInt32(sum(overnight_articles)) AS overnight_articles,
    toUInt32(sum(session_articles)) AS session_articles,
    toUInt32(sum(sec_filings)) AS sec_filings,
    toUInt32(sum(filings_8k)) AS filings_8k
FROM (
    SELECT
        arrayJoin(['AMD', 'KLAC', 'LRCX', 'META', 'MSFT', 'MU', 'NVDA', 'TER', 'WDC']) AS ticker,
        toUInt64(0) AS overnight_articles, toUInt64(0) AS session_articles,
        toUInt64(0) AS sec_filings, toUInt64(0) AS filings_8k
    UNION ALL
    SELECT
        arrayJoin(tickers) AS ticker,
        countIf(published_utc < '2026-07-09 13:30:00') AS overnight_articles,
        countIf(published_utc >= '2026-07-09 13:30:00') AS session_articles,
        toUInt64(0) AS sec_filings, toUInt64(0) AS filings_8k
    FROM global_markets.stocks_news
    WHERE published_utc >= '2026-07-08 20:00:00' AND published_utc < '2026-07-09 20:00:00'
    GROUP BY ticker
    UNION ALL
    SELECT
        ticker, toUInt64(0), toUInt64(0),
        count() AS sec_filings,
        countIf(form_type = '8-K') AS filings_8k
    FROM global_markets.stocks_sec_edgar_index
    WHERE filing_date >= '2026-07-08' AND filing_date <= '2026-07-09'
    GROUP BY ticker
)
WHERE ticker IN ('AMD', 'KLAC', 'LRCX', 'META', 'MSFT', 'MU', 'NVDA', 'TER', 'WDC')
GROUP BY ticker
ORDER BY ticker

0 artículos nocturnos, 0 intradía, 0 presentaciones de la SEC para KLAC — la misma fila vacía para LRCX, TER y WDC. NVDA, que nunca tuvo gaps, tuvo la mayor cobertura de los nueve (7 nocturnos, 9 intradía) y cerró en rojo. Esto es la atención de un solo feed, no de los medios mundiales, y una fila vacía no es prueba de la ausencia de un evento — pero nada en nuestros datos identifica una causa, y "causa desconocida" es una respuesta completa.

El marcador

Cada cambio compara la última barra de minuto de la sesión regular del 9 de julio con la del miércoles; las filas están en orden alfabético, por lo que cada ETF mantiene una posición fija.

ConsultaSPY / QQQ / DIA / IWM — 9 de julio vs cierre del 8 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-08 13:30:00' AND window_start < '2026-07-08 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-09 13:30:00' AND window_start < '2026-07-09 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

Los cuatro cerraron en verde. QQQ lideró con +1.67%, tras un gap de +0.99% y una subida de +0.68%; el de pequeña capitalización IWM registró +1.29%, SPY +0.85% hasta $751.64, y DIA quedó al final con +0.29%. El sector de crecimiento lideró, el Dow quedó rezagado.

¿Fue un día inusual?

A nivel de índices, no: el cierre sobre cierre de QQQ con un +1.67% ocupó el puesto 10 de 21 sesiones consecutivas por magnitud; el rango de apertura a cierre de SPY fue del 8 de 22. La volatilidad se concentró entre los grupos del día.

ConsultaMovimiento diario de SPY / QQQ en contexto histórico (~22 sesiones)
El SQL exacto detrás de cada cifra
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-09')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-09'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-09'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ' AND isFinite(cc_pct)) AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-09')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-09'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-09'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT ticker, d,
           if(isFinite(close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1),
              (close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100, NULL) AS cc_pct,
           oc_pct
    FROM (
        SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMax(toFloat64(close), window_start) AS close_px,
               (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN ('SPY', 'QQQ')
          AND window_start >= toDateTime('2026-06-08 13:30:00')
          AND window_start < toDateTime('2026-07-10 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)

Amplitud: la sesión con mayor amplitud de la semana

ConsultaAmplitud de liquidación (liquid-tape): participación de advancers el 9 de julio vs 8 de julio, filtro de $1M transados
El SQL exacto detrás de cada cifra
SELECT
    countIf(close_9 > close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS advancers,
    countIf(close_9 < close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS decliners,
    countIf(close_9 = close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS unchanged,
    countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000) AS liquid_tickers,
    countIf(close_8 > 0 AND close_9 > 0) AS traded_both_sessions,
    countIf(close_8 > 0 AND close_9 > 0) - countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(close_9 > close_8 AND close_8 > 0 AND dv_9 >= 1000000) / countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000), 1) AS advancer_pct,
    round(100.0 * countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) / countIf(close_8 > 0 AND close_7 > 0 AND dv_8 >= 1000000), 1) AS jul8_advancer_pct
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS close_9,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS dv_9,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS dv_8
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)

4263 acciones al alza frente a 1631 acciones a la baja — una proporción de acciones al alza de 71.5% tras 29.6% el miércoles, bajo el mismo cálculo y el mismo filtro de $1M de volumen negociado (5385 de 11351 tickers caen por debajo de este nivel). Comparado con el resto de la semana:

ConsultaLa semana hasta ahora: movimientos de índices y participación de advancers por sesión completada
El SQL exacto detrás de cada cifra
WITH per_day AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(toFloat64(close), window_start) AS c,
           sum(toFloat64(close) * toFloat64(volume)) AS dv
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-09 20:00:00'
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker, d
),
lagged AS (
    SELECT ticker, d, c, dv,
           lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d) AS prev_c
    FROM per_day
)
SELECT
    toString(d) AS date,
    round(anyIf((c / prev_c - 1) * 100, ticker = 'SPY'), 2) AS spy_pct,
    round(anyIf((c / prev_c - 1) * 100, ticker = 'QQQ'), 2) AS qqq_pct,
    round(100.0 * countIf(c > prev_c AND prev_c > 0 AND dv >= 1000000) / countIf(c > 0 AND prev_c > 0 AND dv >= 1000000), 1) AS advancer_pct,
    countIf(c > 0 AND prev_c > 0 AND dv >= 1000000) AS liquid_names
FROM lagged
WHERE d >= toDate('2026-07-06')
GROUP BY d
ORDER BY d

El lunes comenzó con 62.4% acciones al alza; el martes y el miércoles cayeron a 33.9% y 29.6%, y el valor de 71.4% del jueves es el más alto de las cuatro sesiones completadas de la semana (el viernes 10 de julio es posterior a este resumen). El QQQ también lo reflejó: -1.82% el martes, 0.25% el miércoles, +1.67% el jueves.

Más allá de los chips: cómo operó el resto del mercado

La amplitud indica que la mayoría de las acciones subieron; sin embargo, no significa que el rally fuera uniforme. A continuación: una cesta con igual ponderación de tres activos líquidos por sector, la misma cesta declarada cada día.

ConsultaOcho cestas de sectores declaradas, tres nombres cada una: cierre del 9 de julio vs cierre anterior, ponderación igualitaria
El SQL exacto detrás de cada cifra
SELECT
    sector,
    count() AS names,
    round(avg(pct_chg), 2) AS avg_pct_chg,
    round(min(pct_chg), 2) AS worst_name_pct,
    round(max(pct_chg), 2) AS best_name_pct,
    round(avg(pct_chg) - max(avg(pct_chg)) OVER (), 2) AS gap_to_best_sector_pct
FROM (
    SELECT
        ticker,
        multiIf(ticker IN ('AMD', 'AVGO', 'KLAC'), 'Semiconductors',
                ticker IN ('AAPL', 'MSFT', 'GOOGL'), 'Big tech',
                ticker IN ('JPM', 'BAC', 'GS'), 'Financials',
                ticker IN ('CAT', 'HON', 'GE'), 'Industrials',
                ticker IN ('XOM', 'CVX', 'COP'), 'Energy',
                ticker IN ('JNJ', 'UNH', 'PFE'), 'Healthcare',
                ticker IN ('KO', 'PG', 'WMT'), 'Staples',
                'Utilities') AS sector,
        (toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
         / toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) - 1) * 100 AS pct_chg
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'KLAC', 'AAPL', 'MSFT', 'GOOGL', 'JPM', 'BAC', 'GS', 'CAT', 'HON', 'GE',
                     'XOM', 'CVX', 'COP', 'JNJ', 'UNH', 'PFE', 'KO', 'PG', 'WMT', 'NEE', 'DUK', 'SO')
      AND window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)
GROUP BY sector
ORDER BY avg_pct_chg DESC

Semiconductors lideró con +4.24%, mientras que Energy se quedó atrás con -2.01% — un spread de -6.25 puntos (gap_to_best_sector_pct). El sector financiero fue la cesta no relacionada con chips más fuerte con +1.88%; Consumo básico (-0.91%), Servicios públicos (-0.96%) y Energía cerraron en rojo. Las grandes tecnológicas (AAPL, MSFT y GOOGL) promediaron un moderado +0.17%. La mayor reversión del día (de apertura a cierre), el movimiento de +8.1% de META, queda fuera de las ocho cestas; dentro de esta, la apertura de MSFT en -2.25% hacia un cierre de +0.33% fue el giro más pronunciado.

La apertura de los semiconductores y el retroceso posterior

gap_pct es la apertura frente al cierre del miércoles; intraday_pct es el resto del día. Las filas están en orden alfabético.

ConsultaCatorce nombres de chips: gap en la apertura vs el resto del día, 9 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-09 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-09 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-09 00:00:00') AS day_low,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_open, 2) AS day_open,
    round(day_close, 2) AS day_close,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

KLAC abrió con un +8.14% sobre el cierre del miércoles, luego perdió -3.98%; LRCX abrió con un +9.67% y retrocedió -3.26%; TER (+7.87%) y WDC (+7.89%) siguieron el mismo patrón. MU tuvo un gap de +7.07%, cayó -2.56%, pero cerró con un +4.33% sobre 33.56B — el ticker con mayor volumen del mercado por segundo sesión (resumen del miércoles contiene el primero). AMD y SNDK fueron las excepciones: AMD sumó 1.75% tras una apertura de +3.87% para finalizar con +5.68%, y SNDK, que ya estaba +6.14% en la apertura, sumó otro 1.23% para cerrar con +7.45%. Y NVDA: una apertura de +0.16% —sin gap— hacia un cierre de -0.68%.

ConsultaResultados: conteo de verdes/rojos el 9 de julio en los catorce nombres, y el giro de dos días de NVDA
El SQL exacto detrás de cada cifra
SELECT
    countIf(close_9 > close_8) AS jul9_green,
    countIf(close_9 < close_8) AS jul9_red,
    countIf(close_8 > close_7) AS jul8_green,
    round(anyIf((close_9 / close_8 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul9_pct,
    round(anyIf((close_8 / close_7 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul8_pct,
    count() AS names_counted
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS close_9
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
      AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)

12 de los catorce cerraron en verde; los cierres rojos del 2 fueron la excepción estructural en un día alcista, junto con NVDA en -0.68%, un día después de cerrar con +3.66%. El nombre de chips más grande del mercado se mantuvo al margen de la celebración de su propio sector, a pesar de tener la mayor cobertura de noticias.

La otra cara: las mega-caps abrieron a la baja y se recuperaron

ConsultaOcho mega-caps y defensivos: gap en la apertura vs el resto del día, 9 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-09 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'CVX', 'GOOGL', 'JNJ', 'META', 'MSFT', 'TSLA')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_open, 2) AS day_open,
    round(day_close, 2) AS day_close,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Siete de las ocho acciones abrieron por debajo del cierre del miércoles; lo que siguió las diferenció. META abrió -3.16% a la baja y subió un +8.1% hasta un cierre de 4.69% — la reversión más violenta entre apertura y cierre en la página. MSFT abrió -2.25% a la baja y se recuperó hasta +0.33%; AMZN (+1.4%) y AAPL (+0.93%) siguieron la misma tendencia; TSLA no tuvo gap y subió hasta +3.21%. Las acciones que se mantuvieron a la baja no fueron de crecimiento: GOOGL (-0.76%), CVX (-1.06%), JNJ (-1.62%). Por qué las acciones tienen gaps durante la noche explica la mecánica.

Dónde se negoció el dinero

ConsultaTop 6 por dólares transados, top 4 por acciones transadas — 9 de julio horario regular
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,
    round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
        / max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
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-09 13:30:00' AND window_start < '2026-07-09 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-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, pct_of_board_leader DESC

MU volvió a liderar el tablero de dólares con 33.56B, superando a SPY (24.37B), NVDA (21.28B) y SNDK (20.59B); el sector de memorias ocupó dos de los cuatro primeros puestos. El tablero de acciones muestra un mercado distinto: SOXS lideró con 558.1M acciones, con un precio implícito de $3.91 (volumen relativo).

ConsultaAcciones por bucket de 30 min ET, horario regular, con % del bucket más grande del día
El SQL exacto detrás de cada cifra
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
    round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
GROUP BY et_time
ORDER BY et_time

Un patrón clásico: el volumen de apertura fue de 1.79B acciones (91.4% de las mayores), el punto más bajo al mediodía fue de 0.64B, y la subasta de cierre de media hora fue la mayor del día con 1.96B. Incluso en un día definido desde la apertura, el volumen terminó concentrado en el cierre.

El tape de las opciones

ConsultaOptions tape: prints, contratos, % de calls, participación de 0DTE vs miércoles, contratos principales
El SQL exacto detrás de cada cifra
WITH
    (
        SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))
        FROM (
            SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,
                   sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,
                   if(substring(ticker, length(ticker) - 14, 6) = '260709', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
            GROUP BY ticker
            ORDER BY vol DESC
            LIMIT 3
        )
    ) AS top3,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
    ) AS jul8_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260708') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
    ) AS jul8_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul8_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) = '260709') / sum(size), 1) AS pct_0dte,
    jul8_pct_0dte,
    spy_regular_close,
    top3.1[1] AS top1_und, top3.2[1] AS top1_strike, top3.3[1] AS top1_type,
    round(toFloat64(top3.4[1]) / 1e3, 1) AS top1_contracts_k, top3.5[1] AS top1_avg_px, top3.6[1] AS top1_is_0dte,
    top3.1[2] AS top2_und, top3.2[2] AS top2_strike, top3.3[2] AS top2_type, top3.6[2] AS top2_is_0dte,
    top3.1[3] AS top3_und, top3.2[3] AS top3_strike, top3.3[3] AS top3_type, top3.6[3] AS top3_is_0dte,
    round(toFloat64(top3.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'

El tape registró 9.99M impresiones y 58.85M contratos —frente a los 63.26M del miércoles—; las calls representaron el 58% del volumen, con la participación de las 0DTE bajando a 28.7% desde el 38.7%. Los tres contratos con mayor actividad fueron calls de SPY para el mismo día: la 751C (846.6K contratos, promedio de $0.526), la 752C y la 750C —una escalera de strikes alrededor del cierre de SPY en $751.64 (opciones 0DTE cubre el producto).

¿Cobertura o apuesta? Una cobertura compra strikes fuera del dinero; una apuesta compra el lado que desea.

ConsultaOpciones 0DTE de SPY: contratos por distancia de strike al precio de cierre
El SQL exacto detrás de cada cifra
WITH (
    SELECT toFloat64(argMax(close, window_start))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY' AND window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
) AS spy_close
SELECT
    multiIf(dist < -2, 'Strike >2% below close',
            dist < -0.5, 'Strike 0.5-2% below',
            dist <= 0.5, 'Strike within 0.5%',
            dist <= 2, 'Strike 0.5-2% above',
            'Strike >2% above close') AS strike_bucket,
    round(toFloat64(sumIf(size, option_type = 'C')) / 1e3, 1) AS call_contracts_k,
    round(toFloat64(sumIf(size, option_type = 'P')) / 1e3, 1) AS put_contracts_k,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_share_pct
FROM (
    SELECT option_type, size, (toFloat64(strike_price) / spy_close - 1) * 100 AS dist
    FROM global_markets.options_trades
    WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
      AND underlying_symbol = 'SPY'
      AND substring(ticker, length(ticker) - 14, 6) = '260709'
)
GROUP BY strike_bucket
ORDER BY min(dist)

El tape de mismo día se situó en el dinero: 3768.9k calls y 2563.3k puts dentro de medio punto porcentual del cierre (59.5% calls). Los wings se dividieron por dirección —por debajo del cierre, 1356.5k puts frente a 255.4k calls (el 1.2% de las calls está más profundo en el dinero); por encima del cierre, las calls tomaron el 91.6% de un bucket mucho más delgado de 29.1k. El volumen de los wings se concentró en strikes a la baja, donde se compra protección: una escalera at-the-money, no una al alza.

La cinta de cotizaciones

ConsultaConteo de actualizaciones NBBO de acciones: 9 de julio vs 8 de julio, con actualizaciones por ticker (millones)
El SQL exacto detrás de cada cifra
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09')) / 1e6, 2) AS jul9_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-09')) / countIf(toDate(sip_timestamp) = toDate('2026-07-08')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'SPY') / 1e6, 2) AS jul9_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'QQQ') / 1e6, 2) AS jul9_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'NVDA') / 1e6, 2) AS jul9_nvda_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'TSLA') / 1e6, 2) AS jul9_tsla_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'MU') / 1e6, 2) AS jul9_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'

El dato más discreto del día: 383.44M actualizaciones del NBBO en la cinta de acciones, -27.7% frente al miércoles. La volatilidad se concentró en los niveles de precio, no en el volumen de transacciones. QQQ lideró los tickers con nombre con 4.35M, por encima de los 2.71M de SPY y los 1.83M de NVDA.

ConsultaSPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: spread cotizado mediano en RTH en puntos base
El SQL exacto detrás de cada cifra
SELECT
    ticker,
    round(quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000), 2) AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA', 'MU', 'SNDK', 'AVGO')
  AND sip_timestamp >= '2026-07-09 13:30:00' AND sip_timestamp < '2026-07-09 20:00:00'
  AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps ASC

El spread medio cotizado de SPY fue de 0.27 bps, QQQ 0.42 y NVDA 0.99 — cifras normales. El extremo más amplio: MU con 4.23 bps y SNDK con 8.79 bps (el bid-ask spread es el costo que esto mide).

ConsultaSpread cotizado promedio de SPY en RTH en contexto de último mes
El SQL exacto detrás de cada cifra
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-09')), 3) AS jul9_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-09')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-09'))) + 1 AS tightness_rank,
    count() AS sessions_compared,
    round(min(avg_spread_cents), 3) AS tightest_session_cents,
    round(max(avg_spread_cents), 3) AS widest_session_cents,
    toString(min(d)) AS first_session
FROM (
    SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
           avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-08 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-10 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

El spread medio cotizado de SPY de 2.071 cents se situó en el 10 de las 22 sesiones anteriores, dentro de un rango de 1.8092.865 cents: no hubo estrés en las cotizaciones, incluso con esa apertura.

ConsultaOptions NBBO tape: actualizaciones totales vs tape de acciones, más el slice de SPY
El SQL exacto detrás de cada cifra
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00') AS jul9_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00') AS jul9_stock_quote_rows
SELECT
    round(jul9_options_rows / 1e9, 2) AS jul9_options_bn,
    round(jul9_options_rows / jul9_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-09 13:30:00' AND sip_timestamp < '2026-07-09 20:00:00') / 1e6, 0) AS jul9_spy_options_m

La cinta de cotizaciones de opciones registró 6.9 billion actualizaciones del NBBO — 18 veces el volumen de la cinta de acciones; solo el componente de SPY alcanzó los 242M.

Tasas: el reporte del 9 de julio

ConsultaEstado de prints de Treasuries: registros del 9 de julio y la curva del 8 de julio (última al redactar)
El SQL exacto detrás de cada cifra
SELECT
    (SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-09') AS jul9_print_rows,
    toString(any(date)) AS latest_print_date,
    round(toFloat64(any(yield_2_year)), 2) AS latest_2y_pct,
    round(toFloat64(any(yield_10_year)), 2) AS latest_10y_pct,
    round(toFloat64(any(yield_30_year)), 2) AS latest_30y_pct,
    round(toFloat64(any(yield_10_year)) - toFloat64(any(yield_2_year)), 2) AS latest_2s10s_pct
FROM global_markets.treasury_yields
WHERE date = '2026-07-09'

El reporte de los bonos del Tesoro del 9 de julio se publicó con el retraso habitual del archivo de rendimientos diarios — la fila 1 ya está registrada. La curva del día (2026-07-09): el rendimiento de 2 años en 4.16%, el de 10 años en 4.54%, el de 30 años en 5.05% y el spread 2s10s en 0.38 puntos — el rendimiento de 2 años bajó respecto al nivel del 8 de julio, mientras que el tramo largo se mantuvo estable.

El calendario detrás de la jornada

ConsultaEx-divs, splits, filings de la SEC, atención en noticias
El SQL exacto detrás de cada cifra
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-09'
    ) AS news,
    (
        SELECT (argMax(t, (n, t)), max(n), max(n) - arraySort(x -> -x, groupArray(n))[2])
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-09'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-09') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS forward_splits,
    (SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_424b2,
    (SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_form4,
    (SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_8k,
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_total,
    news.1 AS news_articles, news.2 AS news_publishers,
    top_news.1 AS top_news_ticker, top_news.2 AS top_news_n, top_news.3 AS top_news_lead_over_next,
    if(top_news.1 = 'NVDA', 1, 0) AS top_news_is_nvda

Un calendario rutinario bajo una apertura inusual: registros ex-dividend de 127, 5 splits inversos, 1 splits directos, presentaciones ante la SEC de 2979 (623 Form 4s, 605 424B2s, 149 8-Ks). El feed generó 184 artículos a través de 3 editores; el ticker con más cobertura fue NVDA, con 20 artículos, seguido por 8 frente al siguiente nombre.

En espera

De nuestras propias tablas: datos sobre la próxima sesión, no pronósticos.

ConsultaPróximamente: la siguiente sesión, lista de ex-dividendos, escalera de expiry de SPY y reloj de short-interest
El SQL exacto detrás de cada cifra
SELECT
    toString(min(d)) AS next_session_date,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-10') AS next_session_holiday_rows,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-10') AS ex_div_records_next,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JNJ', 'KO', 'PG', 'XOM', 'CVX', 'JPM', 'WMT', 'PEP', 'HON', 'CAT'))
     FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-10') AS household_ex_div_next,
    (SELECT round(toFloat64(sum(size)) / 1e6, 2) FROM global_markets.options_trades
     WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
       AND underlying_symbol = 'SPY' AND substring(ticker, length(ticker) - 14, 6) = '260710') AS spy_next_expiry_contracts_m,
    (SELECT round(toFloat64(sum(size)) / 1e6, 2) FROM global_markets.options_trades
     WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
       AND underlying_symbol = 'SPY' AND substring(ticker, length(ticker) - 14, 6) = '260717') AS spy_monthly_expiry_contracts_m,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest) AS latest_short_settlement,
    (SELECT count() FROM global_markets.stocks_short_interest WHERE settlement_date = '2026-07-15') AS jul15_short_rows
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY' AND window_start >= '2026-07-10 00:00:00' AND window_start < '2026-07-14 00:00:00'
)

La próxima sesión es el 2026-07-10, con 0 días festivos en contra: un viernes normal. 153 empresas pagan dividendos esa mañana, 0 de nuestra lista de nombres conocidos. El vencimiento del SPY de este viernes es el más pesado que ya se ha negociado — 1.66M contratos el 9 de julio frente a 0.57M frente al mensual de julio. Reloj de interés corto: el último cierre registrado es el 2026-06-30, con 0 filas aún pendientes para mediados de julio — FINRA publica aproximadamente ocho días hábiles después del cierre (por qué el interés corto tiene dos semanas de antigüedad).

La sesión, verificada

ConsultaVerificación de sesión: primera/última barra de SPY ET, conteo de barras regulares, resultados de feriados, 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,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-09') AS jul9_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_date,
    (SELECT concat(monthName(min(date)), ' ', toString(toDayOfMonth(min(date))), ', ', toString(toYear(min(date))))
     FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_label,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-09 00:00:00' AND window_start < '2026-07-10 00:00:00'

Una sesión ordinaria completa: primera barra de SPY 04:00 ET, última 19:59 ET, 390 barras regulares de un minuto, sin fila de feriados. Próximo cierre: Labor Day, September 7, 2026.

Preguntas frecuentes

¿Qué ocurrió en el mercado de acciones el 9 de julio de 2026?

Todos los ETF de índices cerraron al alza — QQQ +1.67%, IWM +1.29%, SPY +0.85%, DIA +0.29%, con un 71.5% de acciones líquidas al alza. Las empresas de equipos para chips tuvieron un gap alcista seguido de una caída; las mega-caps tuvieron un gap bajista y se recuperaron.

¿Por qué subieron las acciones de equipos para chips como KLAC y LRCX el 9 de julio de 2026?

Nuestros datos no indican una razón: no hay artículos ni presentaciones ante la SEC para KLAC, LRCX, TER o WDC desde el cierre del miércoles hasta el jueves. El movimiento ya estaba descontado en el premarket, antes de las 9:30 am ET.

¿Por qué cayó NVDA mientras el sector de chips subía?

NVDA cerró -0.68% mientras que el 12 de catorce nombres de chips cerró en verde. Nunca tuvo un gap (0.16% en la apertura) y fue el ticker con más cobertura con 20 artículos — una co-ocurrencia récord, pero la causa no está en estos datos.

¿Fue el 9 de julio de 2026 un día inusual para el mercado?

No a nivel de índice: el movimiento de QQQ ocupó el puesto 10 de 21 sesiones anteriores por magnitud, y el spread promedio de SPY fue del 10 de 22. La dispersión subyacente fue de: -6.25 puntos entre la mejor y la peor cesta de sectores.

Notas de datos

El horario regular es de 13:30 a 20:00 UTC (9:30 am–4:00 pm ET); el panel de premarket utiliza el horario de 08:00–13:30 UTC. Las ocho canastas sectoriales están seleccionadas y ponderadas de forma igualitaria, con tres activos líquidos cada una, según cada ticker listado en el SQL de dicho panel. Este es un método declarado, no una clasificación de un proveedor: tres activos representan el sector, no la totalidad del mismo. El panel de catalizadores incluye únicamente nuestro feed de noticias y el índice EDGAR.

Notas de datos completas

Los paneles por ticker están ordenados alfabéticamente, por lo que cada referencia en el texto apunta a una fila fija; los leaderboards están ordenados por valor, con cada posición delimitada. La impresión de los bonos del tesoro y la liquidación de posiciones cortas de mediados de julio están limitadas a cero filas; su llegada requerirá una reescritura de este post.

Metodología

  • Fuentes: cada panel utiliza tablas SQL específicas: agregados por minuto, cachés de NBBO para acciones y opciones, operaciones de opciones, nuestro feed de noticias, el índice EDGAR, dividendos, interés corto, días feriados y rendimientos del tesoro.
  • Convenciones: los literales UTC se usan en las cláusulas WHERE y las etiquetas ET solo en SELECT; gap = apertura de la primera barra regular ÷ cierre de la regular anterior − 1; las cifras de la sesión y semana anterior se calculan en la consulta y no se arrastran de publicaciones previas. Almacén de datos con fecha de corte al 13 de julio de 2026.