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.
| ticker | cierre previo | apertura del día | cierre del día | brecha (%) | intradía (%) | cambio (%) | máximo del día | mínimo del día | acciones negociadas (M) |
|---|---|---|---|---|---|---|---|---|---|
| DIA | 528.48 | 523.34 | 522.72 | -0.97 | -0.12 | -1.09 | 524.46 | 520.03 | 3.2 |
| IWM | 296.2 | 294.03 | 293.47 | -0.73 | -0.19 | -0.92 | 295.1 | 290.68 | 20.3 |
| QQQ | 709.5 | 704.95 | 711.3 | -0.64 | 0.9 | 0.25 | 712.26 | 700.91 | 29.5 |
| SPY | 747.66 | 743.16 | 745.31 | -0.6 | 0.29 | -0.31 | 746.15 | 739.51 | 35.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 tickerLos 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.
| QQQ cierre a cierre (%) | QQQ rango de movimiento absoluto | QQQ sesiones comparadas | SPY apertura a cierre (%) | SPY rango de movimiento absoluto | SPY sesiones comparadas | primera sesión |
|---|---|---|---|---|---|---|
| 0.25 | 21 | 22 | 0.29 | 16 | 22 | 2026-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
)
)Amplitud: más valores en rojo por un margen de dos a uno que el día anterior
| alzas | bajas | sin cambios | tickers líquidos | negociados en ambas sesiones | excluidos por filtro de liquidez | alzas (%) | alzas del 7 de julio (%) |
|---|---|---|---|---|---|---|---|
| 1821 | 4260 | 74 | 6155 | 11439 | 5284 | 29.6 | 33.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
)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.
| ticker | cierre previo | cierre del día | cambio (%) | rango (%) | mínimo del día | máximo del día | minuto del mínimo (ET) | minuto máximo ET | volumen diario en dólares (mil millones) |
|---|---|---|---|---|---|---|---|---|---|
| AMD | 516.57 | 517.26 | 0.13 | 4.81 | 498.15 | 522.98 | 683 | 587 | 8.93 |
| AVGO | 370.79 | 388.67 | 4.82 | 4.91 | 376.89 | 395.09 | 570 | 778 | 9.39 |
| INTC | 110.5 | 110.27 | -0.21 | 5.5 | 104.41 | 110.49 | 713 | 957 | 9.48 |
| KLAC | 216.52 | 221.03 | 2.08 | 4.2 | 214.3 | 223.4 | 685 | 929 | 1.79 |
| LRCX | 326.12 | 332.93 | 2.09 | 4.53 | 322.72 | 337.5 | 570 | 587 | 2.1 |
| MRVL | 230.81 | 231.66 | 0.37 | 5.12 | 224.98 | 236.79 | 570 | 593 | 4.57 |
| MU | 938.95 | 949.37 | 1.11 | 6.24 | 900.41 | 959 | 570 | 600 | 32.02 |
| NVDA | 196.93 | 204.14 | 3.66 | 5.13 | 195.06 | 205.16 | 570 | 937 | 24.17 |
| SNDK | 1619.26 | 1729.4 | 6.8 | 8.94 | 1590 | 1734.69 | 570 | 959 | 16.82 |
| SOXL | 165.27 | 174.84 | 5.79 | 10.82 | 158.87 | 176.75 | 570 | 816 | 8.12 |
| SOXS | 4.82 | 4.52 | -6.22 | 11 | 4.46 | 4.99 | 929 | 570 | 2.97 |
| STX | 827.4 | 859.68 | 3.9 | 6.18 | 811.27 | 862.41 | 570 | 959 | 3.46 |
| TER | 343.1 | 351.56 | 2.47 | 5.6 | 335.06 | 354.27 | 686 | 587 | 0.77 |
| WDC | 532.34 | 550.71 | 3.45 | 6.91 | 526 | 562.76 | 570 | 600 | 3.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 ticker12 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).
| 8 jul verde | 8 jul rojo | 7 jul verde | 7 jul rojo | NVDA 7 jul % | nombres contabilizados |
|---|---|---|---|---|---|
| 12 | 2 | 2 | 12 | 0.67 | 14 |
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
)El otro lado: las defensivas y las mega caps de crecimiento no acompañaron
| ticker | cierre previo | apertura del día | cierre del día | brecha (%) | intradía (%) | cambio (%) | volumen diario en dólares (mil millones) |
|---|---|---|---|---|---|---|---|
| CRNX | 83.53 | 83.52 | 83.45 | -0.01 | -0.08 | -0.1 | 1.38 |
| CVX | 173.97 | 176.8 | 175.92 | 1.63 | -0.5 | 1.12 | 1.36 |
| JNJ | 267.29 | 268.6 | 263.36 | 0.49 | -1.95 | -1.47 | 1.38 |
| LLY | 1235.64 | 1221.1 | 1215.87 | -1.18 | -0.43 | -1.6 | 2.55 |
| META | 615.57 | 614.38 | 603.03 | -0.19 | -1.85 | -2.04 | 5.86 |
| TSLA | 402.88 | 399.38 | 393.92 | -0.87 | -1.37 | -2.22 | 11.71 |
| UNH | 428.18 | 427.14 | 425.56 | -0.24 | -0.37 | -0.61 | 1.28 |
| XOM | 141.65 | 143.44 | 140.96 | 1.26 | -1.73 | -0.49 | 2.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 tickerLas 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
| tabla de líderes | ticker | volumen en dólares (miles de millones) | acciones (millones) | precio promedio implícito | % del líder del tablero |
|---|---|---|---|---|---|
| by dollars traded | MU | 32.02 | 34.1 | 939 | 100 |
| by dollars traded | SPY | 26.49 | 35.6 | 744.1 | 82.7 |
| by dollars traded | NVDA | 24.17 | 120.5 | 200.58 | 75.5 |
| by dollars traded | QQQ | 20.9 | 29.5 | 708.47 | 65.3 |
| by dollars traded | SNDK | 16.82 | 10.1 | 1665.35 | 52.5 |
| by dollars traded | TSLA | 11.71 | 29.7 | 394.28 | 36.6 |
| by shares traded | SOXS | 2.97 | 636.5 | 4.67 | 100 |
| by shares traded | TZA | 1.37 | 334.8 | 4.09 | 52.6 |
| by shares traded | BITO | 2.29 | 272.4 | 8.41 | 42.8 |
| by shares traded | AAL | 2.79 | 169.3 | 16.48 | 26.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 DESCMU 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
| hora ET | acciones (miles de millones) | % del mayor grupo |
|---|---|---|
| 09:30 | 1.98 | 89.9 |
| 10:00 | 1.38 | 62.9 |
| 10:30 | 1.32 | 59.9 |
| 11:00 | 1.16 | 53 |
| 11:30 | 1.01 | 45.9 |
| 12:00 | 0.93 | 42.2 |
| 12:30 | 0.92 | 42 |
| 13:00 | 0.75 | 34.1 |
| 13:30 | 0.76 | 34.5 |
| 14:00 | 0.77 | 34.9 |
| 14:30 | 0.75 | 34.3 |
| 15:00 | 0.9 | 41.1 |
| 15:30 | 2.2 | 100 |
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_timeEl 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
| operaciones de opciones (millones) | contratos (millones) | contratos 7 jul (millones) | % de calls del volumen | % 0DTE | % 0DTE 7 jul | cierre regular de SPY | subyacente top 1 | strike top 1 | tipo top 1 | contratos top 1 | precio prom. top 1 | top 1 es 0DTE | moneyness top 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10.44 | 63.26 | 61.13 | 55.4 | 38.7 | 31.2 | 745.31 | SPY | 745 | C | 677981 | 0.875 | 1 | -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'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
| 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.55 | 492.76 | 7.7 | 4.93 | 6.53 | 1.8 | 0.72 | 0.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'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.
| ticker | spread mediano (pb) |
|---|---|
| SPY | 0.27 |
| QQQ | 0.71 |
| NVDA | 1.52 |
| TSLA | 2.28 |
| AVGO | 3.63 |
| MU | 5.66 |
| SNDK | 12.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 ASCEntre 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.
| spread promedio de SPY del 8 de julio (centavos) | ranking de menor spread | sesiones comparadas | sesión con menor spread (centavos) | sesión con mayor spread (centavos) | primera sesión | cotizaciones inválidas excluidas |
|---|---|---|---|---|---|---|
| 2.202 | 11 | 22 | 1.809 | 2.865 | 2026-06-05 | 42783 |
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
)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.
| opciones del 8 de julio (miles de millones) | ratio opciones/acciones | opciones de SPY del 8 de julio (M) |
|---|---|---|
| 9.62 | 18.1 | 422 |
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_mLa 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ó
| punto de la curva | rendimiento del 8 de julio (%) | cambio en la sesión (pb) |
|---|---|---|
| 1 month | 3.67 | -2 |
| 3 month | 3.87 | 1 |
| 1 year | 4.06 | 0 |
| 2 year | 4.21 | 2 |
| 5 year | 4.31 | 4 |
| 10 year | 4.56 | 1 |
| 30 year | 5.06 | 1 |
| 2s10s spread | 0.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
)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
| registros exdividendo | splits ejecutados | splits inversos | splits directos | presentaciones 424B2 | presentaciones Form 4 | presentaciones 8-K | presentaciones totales | artículos de noticias | medios de noticias | ticker de la principal noticia | N.º de noticias principales | Ventaja de la principal sobre la siguiente |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 81 | 1 | 0 | 1 | 527 | 775 | 163 | 3731 | 192 | 3 | MU | 17 | 0 |
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_nextEl 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
| Primera barra de SPY (ET) | Última barra de SPY (ET) | Barras de 1 minuto de SPY | Barras de sesión regular | Sesiones diarias | Filas del feriado del 8 de jul. | Fecha del próximo cierre | Nombre del próximo cierre |
|---|---|---|---|---|---|---|---|
| 04:00 | 19:59 | 919 | 390 | 1 | 0 | 2026-09-07 | Labor 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'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_aggspara los precios y volúmenes del índice y de cada valor,cache_stocks_quotespara los recuentos de NBBO y los spreads cotizados, ycache_options_quotesyoptions_tradespara 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,000en 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/argMaxcon 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.