Strasmore Research
Resúmenes de mercado Matt ConnorPor Matt Connor · Actualizado 2026-09-27

Mercado: 8 de julio de 2026 en cifras

Rebote de un día en semiconductores que los índices apenas sintieron: la mayoría subió, NVDA avanzó por segundo día, MU lideró en dólares y el mercado cayó más de dos a uno.

El miércoles 8 de julio de 2026 fue un rebote de un día en los semiconductores que apenas se reflejó en los índices. SNDK cerró +6.8%, AVGO +4.82% y NVDA +3.66%, una reversión marcada frente a la caída generalizada de los semiconductores del martes, pero los ETFs de índices prácticamente no se movieron: SPY -0.31% y QQQ +0.25%. El mercado amplio mostró una proporción de valores a la baja aún más cercana a two-to-one que el día anterior: 1821 valores al alza frente a 4260 a la baja, con una participación de valores al alza de 29.6%, frente a 33.8% en la sesión anterior. Todas las cifras siguientes se obtienen de una consulta almacenada; expanda cualquier panel para ver el SQL exacto.

El marcador

Cada cambio compara la última barra de un minuto de la sesión regular del 8 de julio con la de la sesión anterior, el martes 7 de julio. Las filas están ordenadas alfabéticamente, por lo que cada ETF conserva una posición fija.

ConsultaSPY / QQQ / DIA / IWM: 8 de julio vs cierre del 7 de julio, horario regular
tickercierre previoapertura del díacierre del díabrecha (%)intradía (%)cambio (%)máximo del díamínimo del díaacciones negociadas (M)
DIA528.48523.34522.72-0.97-0.12-1.09524.46520.033.2
IWM296.2294.03293.47-0.73-0.19-0.92295.1290.6820.3
QQQ709.5704.95711.3-0.640.90.25712.26700.9129.5
SPY747.66743.16745.31-0.60.29-0.31746.15739.5135.6
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-07 13:30:00' AND window_start < '2026-07-07 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-08 13:30:00' AND window_start < '2026-07-08 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
Pruébalo tú mismo

Los cuatro ETFs abrieron con un gap bajista y luego tomaron rumbos distintos. DIA abrió la sesión en -0.97% frente al cierre anterior y siguió perdiendo terreno, para terminar en -1.09%. IWM abrió en -0.73% y se mantuvo a la baja, con un cierre en -0.92%. SPY abrió en -0.6%, recuperó terreno durante la jornada y aun así cerró en -0.31%; la recuperación desde la apertura fue menor que el gap. QQQ abrió en -0.64% y subió hasta +0.25% al cierre, el único de los cuatro en terreno positivo.

¿Fue inusual la sesión?

El movimiento de apertura a cierre de SPY, de 0.29%, ocupó el puesto 16 entre 22 sesiones anteriores. Fue una sesión intermedia para el índice, no un movimiento extremo. El movimiento de cierre a cierre de QQQ, de +0.25%, ocupó el puesto 21 entre 22 sesiones. Fue uno de los movimientos más pequeños del último mes para QQQ, en línea con el cambio moderado registrado por el índice.

ConsultaMovimiento diario de SPY / QQQ en contexto móvil (cierre contra cierre, ~22 sesiones)
QQQ cierre a cierre (%)QQQ rango de movimiento absolutoQQQ sesiones comparadasSPY apertura a cierre (%)SPY rango de movimiento absolutoSPY sesiones comparadasprimera sesión
0.2521220.2916222026-06-05
El SQL exacto detrás de cada cifra
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-08'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-08'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT ticker, d,
           (close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 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-05 13:30:00')
          AND window_start < toDateTime('2026-07-09 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)
Pruébalo tú mismo

Amplitud: más valores en rojo por un margen de dos a uno que el día anterior

ConsultaAmplitud del mercado líquido: proporción de acciones al alza el 8 de julio vs el 7 de julio, filtro de $1M negociado
alzasbajassin cambiostickers líquidosnegociados en ambas sesionesexcluidos por filtro de liquidezalzas (%)alzas del 7 de julio (%)
1821426074615511439528429.633.8
El SQL exacto detrás de cada cifra
SELECT
    countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS advancers,
    countIf(close_8 < close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS decliners,
    countIf(close_8 = close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS unchanged,
    countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS liquid_tickers,
    countIf(close_7 > 0 AND close_8 > 0) AS traded_both_sessions,
    countIf(close_7 > 0 AND close_8 > 0) - countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) / countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000), 1) AS advancer_pct,
    round(100.0 * countIf(close_7 > close_6 AND close_6 > 0 AND dv_7 >= 1000000) / countIf(close_7 > 0 AND close_6 > 0 AND dv_7 >= 1000000), 1) AS jul7_advancer_pct
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
           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,
           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,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS dv_7
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-08 20:00:00'
    GROUP BY ticker
)
Pruébalo tú mismo

La diferencia entre los valores al alza (1821) y los valores a la baja (4260) situó la proporción de valores al alza en 29.6%, frente a 33.8% en la sesión anterior. El cálculo aplica el mismo filtro de liquidez en ambas jornadas. De los 11439 valores con cierre en ambos días, 5284 quedaron por debajo del filtro de $1M negociado y se excluyen del conteo. El rebote liderado por los valores de semiconductores y el cierre mixto del índice se produjeron sobre un mercado general todavía más uniformemente negativo.

El complejo de semiconductores rebotó con fuerza y con un volumen elevado

Las filas están ordenadas alfabéticamente, por lo que cada nombre mantiene una posición fija; la comparación del martes se calcula nuevamente a partir de los cierres del 7 y 6 de julio en el bloque de recibos debajo de la tabla.

ConsultaCatorce acciones de chips: cierre previo, cierre del día, rango diario, volumen en dólares, mínimo/máximo por minuto ET
tickercierre previocierre del díacambio (%)rango (%)mínimo del díamáximo del díaminuto del mínimo (ET)minuto máximo ETvolumen diario en dólares (mil millones)
AMD516.57517.260.134.81498.15522.986835878.93
AVGO370.79388.674.824.91376.89395.095707789.39
INTC110.5110.27-0.215.5104.41110.497139579.48
KLAC216.52221.032.084.2214.3223.46859291.79
LRCX326.12332.932.094.53322.72337.55705872.1
MRVL230.81231.660.375.12224.98236.795705934.57
MU938.95949.371.116.24900.4195957060032.02
NVDA196.93204.143.665.13195.06205.1657093724.17
SNDK1619.261729.46.88.9415901734.6957095916.82
SOXL165.27174.845.7910.82158.87176.755708168.12
SOXS4.824.52-6.22114.464.999295702.97
STX827.4859.683.96.18811.27862.415709593.46
TER343.1351.562.475.6335.06354.276865870.77
WDC532.34550.713.456.91526562.765706003.03
El SQL exacto detrás de cada cifra
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-08 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-08 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
        OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 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,
    round(((day_high - day_low) / prior_close) * 100, 2) AS range_pct,
    round(toFloat64(day_low), 2) AS day_low,
    round(toFloat64(day_high), 2) AS day_high,
    toUInt32(toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York'))) AS low_minute_et,
    toUInt32(toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York'))) AS high_minute_et,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Pruébalo tú mismo

12 de los catorce nombres de semiconductores cerraron al alza, lo contrario de la sesión del martes, cuando 12 de los catorce cerraron a la baja. SNDK lideró el complejo con +6.8% y un volumen negociado de 16.82B de dólares, seguido de cerca por AVGO, con +4.82%; los otros nombres de almacenamiento también avanzaron: STX, +3.9%, y WDC, +3.45%. El vehículo apalancado 3x SOXL subió +5.79% y el inverso SOXS -6.22%, en línea con una recuperación de un día en el complejo subyacente. MU avanzó un +1.11% más moderado, pero registró 32.02B de dólares, el mayor volumen negociado en dólares del panel. NVDA cerró +3.66% por segundo día consecutivo al alza: fue uno de los únicos 2 nombres de este panel que cerraron al alza durante la caída generalizada del martes (+0.67% ese día).

ConsultaResultados: conteo de alzas/bajas del 8 y 7 de julio en las mismas catorce acciones
8 jul verde8 jul rojo7 jul verde7 jul rojoNVDA 7 jul %nombres contabilizados
1222120.6714
El SQL exacto detrás de cada cifra
SELECT
    countIf(close_8 > close_7) AS jul8_green,
    countIf(close_8 < close_7) AS jul8_red,
    countIf(close_7 > close_6) AS jul7_green,
    countIf(close_7 < close_6) AS jul7_red,
    round(anyIf((close_7 / close_6 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul7_pct,
    count() AS names_counted
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
           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
    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-06 13:30:00' AND window_start < '2026-07-08 20:00:00'
    GROUP BY ticker
)
Pruébalo tú mismo

El otro lado: las defensivas y las mega caps de crecimiento no acompañaron

ConsultaRevisión de rotación: ocho acciones, defensivas, mega-caps y biotecnología
tickercierre previoapertura del díacierre del díabrecha (%)intradía (%)cambio (%)volumen diario en dólares (mil millones)
CRNX83.5383.5283.45-0.01-0.08-0.11.38
CVX173.97176.8175.921.63-0.51.121.36
JNJ267.29268.6263.360.49-1.95-1.471.38
LLY1235.641221.11215.87-1.18-0.43-1.62.55
META615.57614.38603.03-0.19-1.85-2.045.86
TSLA402.88399.38393.92-0.87-1.37-2.2211.71
UNH428.18427.14425.56-0.24-0.37-0.611.28
XOM141.65143.44140.961.26-1.73-0.492.08
El SQL exacto detrás de cada cifra
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close_raw,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-08 00:00:00')) AS day_open_raw,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close_raw,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('CRNX', 'CVX', 'JNJ', 'LLY', 'META', 'TSLA', 'UNH', 'XOM')
      AND ((window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
        OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close_raw, 2) AS prior_close,
    round(day_open_raw, 2) AS day_open,
    round(day_close_raw, 2) AS day_close,
    round((day_open_raw / prior_close_raw - 1) * 100, 2) AS gap_pct,
    round((day_close_raw / day_open_raw - 1) * 100, 2) AS intraday_pct,
    round((day_close_raw / prior_close_raw - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Pruébalo tú mismo

Las mega caps de crecimiento se movieron en sentido contrario al complejo de semiconductores: TSLA -2.22%, META -2.04%, LLY -1.6%. CVX fue el único cierre positivo del panel, con un avance de +1.12% tras una apertura con gap alcista, mientras XOM abrió +1.26% y perdió impulso hasta cerrar en -0.49%. Así, la sesión del miércoles quedó dividida en dos: las acciones de semiconductores subieron, las de crecimiento y las defensivas bajaron, y los índices se mantuvieron sin cambios entre ambos grupos. (Las filas están ordenadas alfabéticamente: CRNX, CVX, JNJ, LLY, META, TSLA, UNH, XOM.)

Dónde se negoció el dinero

ConsultaTop 6 por dólares negociados, top 4 por acciones negociadas: 8 de julio, horario regular
tabla de líderestickervolumen en dólares (miles de millones)acciones (millones)precio promedio implícito% del líder del tablero
by dollars tradedMU32.0234.1939100
by dollars tradedSPY26.4935.6744.182.7
by dollars tradedNVDA24.17120.5200.5875.5
by dollars tradedQQQ20.929.5708.4765.3
by dollars tradedSNDK16.8210.11665.3552.5
by dollars tradedTSLA11.7129.7394.2836.6
by shares tradedSOXS2.97636.54.67100
by shares tradedTZA1.37334.84.0952.6
by shares tradedBITO2.29272.48.4142.8
by shares tradedAAL2.79169.316.4826.6
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-08 13:30:00' AND window_start < '2026-07-08 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-08 13:30:00' AND window_start < '2026-07-08 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
Pruébalo tú mismo

MU movió 32.02B dólares, el valor con mayor volumen negociado y el único por encima de la marca de $30B. Le siguieron SPY (26.49B), NVDA (24.17B) y QQQ (20.9B), mientras que SNDK, con 16.82B, y TSLA, con 11.71B, completaron la lista por importe negociado. La clasificación por número de acciones contó una historia distinta: el ETF inverso 3x de semiconductores SOXS negoció 636.5M acciones a un precio promedio implícito de $4.67, reflejo de la mecánica de un vehículo 3x de bajo precio en una jornada de fuerte actividad en el sector de chips.

La forma de la sesión

ConsultaAcciones por bloque de 30 minutos ET, horario regular, con % del mayor bloque del día
hora ETacciones (miles de millones)% del mayor grupo
09:301.9889.9
10:001.3862.9
10:301.3259.9
11:001.1653
11:301.0145.9
12:000.9342.2
12:300.9242
13:000.7534.1
13:300.7634.5
14:000.7734.9
14:300.7534.3
15:000.941.1
15:302.2100
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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
GROUP BY et_time
ORDER BY et_time
Pruébalo tú mismo

El volumen dibujó una U clásica: el bloque de apertura alcanzó 89.9% del bloque más grande del día y disminuyó durante la mañana, hasta tocar fondo en 34.1% en el intervalo de 1:00 a 1:30 p. m., hora del Este de Estados Unidos. La última media hora (15:30 ET) registró el mayor volumen del día, con 2.2B acciones, por encima de las 1.98B de la apertura, el patrón habitual de una sesión regular.

El flujo de opciones

ConsultaFlujo de opciones: operaciones, contratos, % de calls, proporción 0DTE vs martes, contrato principal
operaciones de opciones (millones)contratos (millones)contratos 7 jul (millones)% de calls del volumen% 0DTE% 0DTE 7 julcierre regular de SPYsubyacente top 1strike top 1tipo top 1contratos top 1precio prom. top 1top 1 es 0DTEmoneyness top 1
10.4463.2661.1355.438.731.2745.31SPY745C6779810.8751-0.31
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) = '260708', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
            GROUP BY ticker
            ORDER BY vol DESC
            LIMIT 2
        )
    ) AS top2,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
    ) AS jul7_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
    ) AS jul7_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul7_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) = '260708') / sum(size), 1) AS pct_0dte,
    jul7_pct_0dte,
    spy_regular_close,
    top2.1[1] AS top1_und, top2.2[1] AS top1_strike, top2.3[1] AS top1_type, top2.4[1] AS top1_contracts, top2.5[1] AS top1_avg_px, top2.6[1] AS top1_is_0dte,
    round(toFloat64(top2.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
Pruébalo tú mismo

El flujo consolidado de opciones registró 10.44M operaciones ejecutadas y 63.26M contratos, por encima de los 61.13M del martes, calculados a partir del mismo flujo durante la ventana del martes. Las calls representaron 55.4% del volumen total, lo que refleja una inclinación moderada hacia las calls. Los contratos 0DTE (con vencimiento el mismo día, 260708) concentraron 38.7% del volumen de contratos, frente a 31.2% el martes. El contrato individual con mayor actividad fue SPY 745C, con 677981 contratos a un precio promedio de $0.875; tuvo vencimiento el mismo día y estaba prácticamente at the money frente al cierre regular de $745.31 de SPY.

La cinta de cotizaciones

ConsultaConteo de actualizaciones NBBO de acciones: 8 de julio vs 7 de julio, con actualizaciones por ticker (millones)
actualizaciones 8 jul (millones)actualizaciones del 7 de julio (M)variación diaria (%)actualizaciones de SPY del 8 de julio (M)actualizaciones de QQQ del 8 de julio (M)actualizaciones de NVDA del 8 de julio (M)actualizaciones de TSLA del 8 de julio (M)actualizaciones de MU del 8 de julio (M)
530.55492.767.74.936.531.80.720.6
El SQL exacto detrás de cada cifra
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / countIf(toDate(sip_timestamp) = toDate('2026-07-07')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'SPY') / 1e6, 2) AS jul8_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'QQQ') / 1e6, 2) AS jul8_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'NVDA') / 1e6, 2) AS jul8_nvda_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'TSLA') / 1e6, 2) AS jul8_tsla_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'MU') / 1e6, 2) AS jul8_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
Pruébalo tú mismo

La cinta de cotizaciones registró 530.55M actualizaciones del NBBO el 8 de julio, +7.7% frente a la sesión anterior. Las 6.53M actualizaciones de QQQ encabezaron los tickers mencionados, por delante de las 4.93M de SPY. NVDA (1.8M), TSLA (0.72M) y MU (0.6M) completan los recuentos de los tickers mencionados.

ConsultaSPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: spread cotizado mediano en RTH, en puntos básicos
tickerspread mediano (pb)
SPY0.27
QQQ0.71
NVDA1.52
TSLA2.28
AVGO3.63
MU5.66
SNDK12.21
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-08 13:30:00' AND sip_timestamp < '2026-07-08 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
Pruébalo tú mismo

Entre los siete tickers mencionados, el spread cotizado mediano de SPY durante el RTH fue de 0.27 puntos básicos, en el extremo inferior de lo habitual para el ETF estadounidense de mayor liquidez. QQQ cotizó con un spread de 0.71 puntos básicos y NVDA, de 1.52 puntos básicos. La parte más amplia de la tabla corresponde a los nombres con cotizaciones menos líquidas: MU, con 5.66 puntos básicos, y SNDK, con 12.21 puntos básicos.

ConsultaSpread cotizado promedio de SPY en RTH en contexto del último mes
spread promedio de SPY del 8 de julio (centavos)ranking de menor spreadsesiones comparadassesión con menor spread (centavos)sesión con mayor spread (centavos)primera sesióncotizaciones inválidas excluidas
2.20211221.8092.8652026-06-0542783
El SQL exacto detrás de cada cifra
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-08')), 3) AS jul8_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-08')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-08'))) + 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,
    sum(dropped_invalid) AS dropped_invalid_quotes
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,
           countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-05 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-09 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)
Pruébalo tú mismo

El spread cotizado promedio de SPY durante el RTH, de 2.202 centavos, ocupó el puesto 11 entre 22 sesiones anteriores. Fue una jornada intermedia en cuanto a la estrechez del spread. En el último mes, el rango fue de 1.809 centavos —el más estrecho— a 2.865 centavos —el más amplio—. No hubo un vacío de liquidez ni un evento de liquidez. Fue una sesión normal para el spread cotizado de SPY.

ConsultaCinta NBBO de opciones: actualizaciones totales vs cinta de acciones, más el segmento del root SPY
opciones del 8 de julio (miles de millones)ratio opciones/accionesopciones de SPY del 8 de julio (M)
9.6218.1422
El SQL exacto detrás de cada cifra
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_stock_quote_rows
SELECT
    round(jul8_options_rows / 1e9, 2) AS jul8_options_bn,
    round(jul8_options_rows / jul8_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-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00') / 1e6, 0) AS jul8_spy_options_m
Pruébalo tú mismo

La cinta de opciones registró 9.62 mil millones de actualizaciones del NBBO, 18.1 veces el volumen de la cinta de cotizaciones. La parte correspondiente a las opciones de SPY registró por sí sola 422 millones de actualizaciones durante el horario regular.

Tasas: la curva apenas se movió

ConsultaRendimientos de Treasuries: 8 de julio vs 7 de julio, vencimientos disponibles + 2s10s
punto de la curvarendimiento del 8 de julio (%)cambio en la sesión (pb)
1 month3.67-2
3 month3.871
1 year4.060
2 year4.212
5 year4.314
10 year4.561
30 year5.061
2s10s spread0.35-1
El SQL exacto detrás de cada cifra
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul8_yield_pct,
    round((t.2 - t.3) * 100) AS session_change_bp
FROM (
    SELECT arrayJoin([
        ('1 month',  toFloat64(d.yield_1_month),  toFloat64(p.yield_1_month)),
        ('3 month',  toFloat64(d.yield_3_month),  toFloat64(p.yield_3_month)),
        ('1 year',   toFloat64(d.yield_1_year),   toFloat64(p.yield_1_year)),
        ('2 year',   toFloat64(d.yield_2_year),   toFloat64(p.yield_2_year)),
        ('5 year',   toFloat64(d.yield_5_year),   toFloat64(p.yield_5_year)),
        ('10 year',  toFloat64(d.yield_10_year),  toFloat64(p.yield_10_year)),
        ('30 year',  toFloat64(d.yield_30_year),  toFloat64(p.yield_30_year)),
        ('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
    ]) AS t
    FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-08') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-07') AS p
)
Pruébalo tú mismo

El bono a 5 años lideró los movimientos de la sesión, con +4 pb. El bono a 2 años terminó +2 pb arriba, y ningún otro vencimiento se movió más de 2 pb en ninguna dirección. El spread 2s10s quedó en 0.35% (-1 pb en la sesión), dentro de su rango reciente. El movimiento moderado de las tasas coincidió con el avance moderado del índice.

El calendario detrás de la jornada

ConsultaEx-dividendos, splits, presentaciones ante la SEC y atención de noticias
registros exdividendosplits ejecutadossplits inversossplits directospresentaciones 424B2presentaciones Form 4presentaciones 8-Kpresentaciones totalesartículos de noticiasmedios de noticiasticker de la principal noticiaN.º de noticias principalesVentaja de la principal sobre la siguiente
8110152777516337311923MU170
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-08'
    ) 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-08'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-08') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS forward_splits,
    (SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_424b2,
    (SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_form4,
    (SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_8k,
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') 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
Pruébalo tú mismo

El calendario fue ligero ese día: 81 registros ex-dividendo, 1 split forward ejecutado y 3731 presentaciones ante la SEC en total (con 775 operaciones de insiders reportadas en el Form 4, 527 prospectos 424B2 y 163 informes corrientes 8-K). La cobertura de noticias incluyó 192 artículos de 3 medios, con MU entre los tickers más mencionados, en 17 artículos. No destacó ninguna operación corporativa de una empresa ampliamente conocida en el flujo del día; la narrativa del mercado fue el propio complejo de chips.

La sesión, verificada

ConsultaVerificación de sesión: primera/última barra de SPY ET, conteo de barras regulares, datos de feriados y próximo cierre
Primera barra de SPY (ET)Última barra de SPY (ET)Barras de 1 minuto de SPYBarras de sesión regularSesiones diariasFilas del feriado del 8 de jul.Fecha del próximo cierreNombre del próximo cierre
04:0019:59919390102026-09-07Labor Day
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-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-08') AS jul8_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-08 00:00:00' AND window_start < '2026-07-09 00:00:00'
Pruébalo tú mismo

La sesión cubrió toda la ventana de horario extendido. La primera vela de SPY fue a las 04:00 ET y la última, a las 19:59 ET. La ventana incluyó 390 velas de un minuto del horario regular y 1 sesión de trading (sin sesión reducida; la tabla de feriados no tiene una fila para esa fecha). El próximo cierre programado es Labor Day el 2026-09-07.

Notas sobre los datos

Todas las marcas de tiempo se almacenan en UTC. El horario regular del 8 de julio de 2026 se filtra como sip_timestamp / window_start entre 2026-07-08 13:30:00 y 2026-07-08 20:00:00, lo que corresponde a las 9:30 a. m. y las 4:00 p. m., hora de Nueva York. Los precios decimales se convierten a Float64 antes de cualquier división. Los paneles identificados por ticker —marcador, complejo de semiconductores y rotación— se ordenan alfabéticamente por ticker, de modo que cada referencia en el texto apunta a una fila fija. Las tablas de líderes —volumen y snapshot de cotizaciones— se ordenan por valor, y cada afirmación posicional que contienen se codifica como un límite de validación para esa posición. Todas las comparaciones de los martes en esta página, incluida la participación de breadth, los conteos de semiconductores en verde y rojo, los contratos de opciones y la participación de 0DTE y los conteos de actualizaciones de cotizaciones, se calculan desde cero a partir del 7 de julio —y del 6 de julio cuando se necesita un cierre previo— en el mismo bloque de consulta. Nunca se toman de una publicación anterior.

Notas completas sobre los datos

El panel de breadth cuenta los nombres con un cierre en horario regular en ambas sesiones y al menos $1 millón negociado en el día medido. El conteo excluido (5284 de 11439) permite ver la cola descartada. Las columnas de horario day_low/day_high del complejo de semiconductores usan el patrón argMin/argMaxIf(..., (value, timestamp)) para resolver los empates de forma determinista. Las etiquetas de los buckets de volumen-smile están expresadas en ET (%H:%i), y se calculan con toTimeZone únicamente en la lista SELECT. El panel de operaciones de opciones detecta los vencimientos del mismo día mediante la coincidencia de subcadena del ticker de la OCC (substring(ticker, length(ticker) - 14, 6)), en lugar de options_trades.expiration_date; esa columna está dañada, según la nota permanente de preflight. Los símbolos incluidos en KNOWN_AMBIGUOUS_TICKERS se excluyen de las consultas SQL de líderes de volumen y atención de noticias, para que las menciones de «la mayor cantidad de X» recaigan en nombres verificables. El ticker de la noticia principal utiliza un desempate determinista (argMax(t, (n, t))). top_news_lead_over_next = 0 indica un empate, por eso el texto dice «entre los más mencionados». El panel de bonos del Tesoro combina dos filas de snapshots diarios. Si falta el snapshot de cualquiera de las dos fechas, no se generan filas y el límite de row_count mantiene la publicación. Los conteos de cotizaciones de acciones y opciones abarcan todo el tape mediante particiones diarias. Los conteos de tickers específicos se reportan en millones para coincidir con las unidades de sus columnas. Las medianas del spread utilizan quantileExact, de forma determinista. El panel de spread posterior es un promedio (avgIf), y está etiquetado como tal.

Metodología

  • Fuente de datos de mercado: consolidated tape, delayed_stocks_minute_aggs para los precios y volúmenes del índice y de cada valor, cache_stocks_quotes para los recuentos de NBBO y los spreads cotizados, y cache_options_quotes y options_trades para el options tape.
  • Gestión de zonas horarias: todas las marcas de tiempo almacenadas están en UTC; las etiquetas horarias ET se calculan con toTimeZone(..., 'America/New_York') únicamente en las listas SELECT; las cláusulas WHERE utilizan literales UTC sin transformar.
  • Ventana de horario regular: 13:30–20:00 UTC, verificada con las barras de un minuto observadas de SPY (el panel de verificación de la sesión), no mediante aritmética de calendario.
  • Definición del spread: (ask - bid) / midpoint × 10,000 en puntos básicos sobre cotizaciones válidas de dos puntas para la instantánea; el panel del mes móvil muestra un ancho promedio en centavos, identificado como promedio.
  • Comparaciones con la sesión anterior: se calculan dentro de la consulta a partir del 7 de julio (y del 6 de julio para la comparación diaria del martes), nunca se arrastran desde una publicación anterior.
  • Agregados deterministas: quantileExact, argMin/argMax con claves de tupla y un desempate determinista para las noticias, con el fin de obtener regeneraciones estables.
  • Fecha de corte del warehouse: 10 de julio de 2026 (T+2 para el periodo); los tapes de ambas sesiones están completamente ingeridos con este nivel de profundidad.

Enlaces relacionados: resumen del 7 de julio de 2026, costos de trading de opciones, conceptos básicos del spread bid-ask, opciones 0DTE y volumen relativo.