Resumen del mercado: 8 de julio de 2026
Rebote de un día en semiconductores que los índices apenas reflejaron: la mayoría terminó al alza, NVDA subió por segundo día y el mercado amplio cerró con más de dos a uno a la baja.
El miércoles 8 de julio de 2026, los semiconductores registraron un rebote de un día que los índices apenas reflejaron. SNDK cerró +6.8%, AVGO +4.82% y NVDA +3.66%, una reversión marcada respecto de la fuerte caída de los semiconductores del martes, pero los ETF de índices se mantuvieron sin cambios: SPY -0.31% y QQQ +0.25%. El mercado amplio registró una amplitud aún más negativa, de más de dos a uno frente al día anterior: 1821 acciones al alza frente a 4260 acciones a la baja, con una proporción de acciones al alza de 29.6%, después de 33.8% en la sesión anterior. Todas las cifras siguientes se obtienen de una consulta almacenada; expanda cualquier panel para consultar el SQL exacto.
El marcador
Cada cambio compara la última vela de un minuto de la sesión regular del 8 de julio con la del martes 7 de julio, en sesiones consecutivas. Las filas están en orden alfabético, por lo que cada ETF conserva una posición fija.
| ticker | cierre previo | apertura del día | cierre del día | gap (%) | intradiario (%) | 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 ETF abrieron con brecha a la baja y tomaron rumbos diferentes desde ese momento. 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 gradualmente durante la jornada y aun así cerró en -0.31%; la recuperación desde la apertura fue menor que la brecha. QQQ abrió en -0.64% y subió hasta +0.25% al cierre, el único de los cuatro en terreno positivo.
¿Fue inusual la jornada?
El movimiento de apertura a cierre de SPY, de 0.29%, ocupó el puesto 16 entre 22 sesiones anteriores. Fue una jornada 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. Fue uno de los movimientos mensuales más pequeños de QQQ en el periodo anterior, en línea con el movimiento moderado del índice.
| QQQ cierre a cierre (%) | rango de movimiento absoluto de QQQ | sesiones de QQQ comparadas | SPY apertura a cierre (%) | rango de movimiento absoluto de SPY | sesiones de SPY 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: aún más valores a la baja en una proporción de dos a uno frente al día anterior
| alzas | bajas | sin cambio | tickers líquidos | negociaron 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 que subieron (1821) y los que bajaron (4260) situó la proporción de valores al alza en 29.6%, frente a 33.8% en la sesión anterior. El cálculo aplicó el mismo filtro de liquidez en ambas sesiones. De las 11439 acciones con cierre en ambos días, 5284 quedaron por debajo del filtro de operaciones por $1 millón y se excluyeron del conteo. El rebote impulsado por los chips y el cierre mixto del índice se produjeron en un mercado amplio todavía más uniformemente negativo.
El complejo de chips rebotó con fuerza y con un volumen elevado
Las filas están ordenadas alfabéticamente, por lo que cada nombre conserva 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 (miles de 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 chips 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 16.82B de dólares negociados, seguido de cerca por AVGO, con +4.82%; los otros nombres de almacenamiento también avanzaron: STX, +3.9%, y WDC, +3.45%. El ETF 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 más moderado +1.11%, 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 del martes (+0.67% ese día).
| jul8 al alza | jul8 a la baja | jul7 al alza | jul7 a la baja | NVDA jul7 (%) | 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 | gap (%) | intradiario (%) | cambio (%) | volumen diario en dólares (miles de 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 la dirección opuesta 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, mientras que XOM abrió +1.26% arriba y retrocedió hasta -0.49% al cierre. Así, la sesión del miércoles se dividió en dos: las acciones de semiconductores subieron, las de crecimiento y las defensivas bajaron, y los índices quedaron sin cambios entre ambos grupos. (Las filas están en orden alfabético: CRNX, CVX, JNJ, LLY, META, TSLA, UNH, XOM.)
Dónde se concentró 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 negoció 32.02B de dólares, el nombre con mayor actividad en el mercado 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 tabla por monto en dólares. La tabla por número de acciones mostró una historia diferente: 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 durante una jornada de fuerte actividad en acciones de chips.
La forma de la sesión
| hora ET | acciones (miles de millones) | % del grupo más grande |
|---|---|---|
| 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 forma de U clásica: el bloque de la apertura representó 89.9% del mayor bloque del día y disminuyó durante la mañana, hasta tocar un mínimo de 34.1% en el intervalo de 1:00 a 1:30 p. m., hora del Este (ET). La última media hora (15:30 ET) fue el mayor bloque 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 jul7 (millones) | calls % del volumen | % 0DTE | jul7 % 0DTE | cierre regular de SPY | subyacente top 1 | precio de ejercicio top 1 | tipo top 1 | contratos top 1 | precio promedio 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 sesión del martes. Las calls representaron 55.4% del volumen total, lo que indica una inclinación moderada hacia las calls. Los contratos 0DTE (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 SPY en $745.31.
La cinta de cotizaciones
| actualizaciones jul8 (millones) | Actualizaciones del 7 de jul. (M) | Variación diaria (%) | Actualizaciones de SPY del 8 de jul. (M) | Actualizaciones de QQQ del 8 de jul. (M) | Actualizaciones de NVDA del 8 de jul. (M) | Actualizaciones de TSLA del 8 de jul. (M) | Actualizaciones de MU del 8 de jul. (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 de 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 conteos 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 horario regular fue de 0.27 bps, en el límite inferior de lo normal para el ETF estadounidense con mayor liquidez. QQQ cotizó con un spread de 0.71 bps y NVDA, de 1.52 bps. La parte más amplia de la tabla corresponde a los nombres con cotización menos líquida: MU, con 5.66 bps, y SNDK, con 12.21 bps.
| Spread promedio de SPY del 8 de jul. (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 horario regular, de 2.202 centavos, ocupó el 11 lugar de 22 sesiones previas, un día intermedio en términos de estrechez del spread. El rango del último mes 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 jul. (miles de millones) | Ratio opciones/acciones | Opciones de SPY del 8 de jul. (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 de NBBO, 18.1× el conteo de la cinta de cotizaciones accionarias. La sección de opciones de SPY registró por sí sola 422 millones de actualizaciones durante el horario regular.
Tasas: la curva casi no se movió
| Punto de la curva | Rendimiento del 8 de jul. (%) | 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 plazo se movió más de 2 pb en ninguna dirección. Esto dejó el spread 2s10s en 0.35% (-1 pb en la sesión), dentro de su rango reciente. El movimiento moderado de las tasas coincidió con el movimiento 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 noticia 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 en formularios 4, 527 prospectos 424B2 y 163 informes actuales 8-K). La cobertura noticiosa incluyó 192 artículos de 3 medios, y MU estuvo entre los tickers más mencionados, con 17 artículos. No destacó ninguna acción corporativa de una empresa ampliamente reconocida 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 un minuto de SPY | Barras de la sesión regular | Sesiones diarias | Filas del feriado del 8 de julio | 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. No fue una jornada 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 (tablero de posiciones, complejo de semiconductores y rotación) se ordenan alfabéticamente por ticker, de modo que cada referencia del 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 con el martes en esta página, la proporción de amplitud, los conteos de acciones del complejo de semiconductores en verde y en rojo, los contratos de opciones y la proporción de 0DTE, así como los conteos de actualizaciones de cotizaciones, se calculan nuevamente desde el 7 de julio (y el 6 de julio cuando se necesita un cierre previo) en el mismo bloque de consulta. Nunca se citan de una publicación anterior.
Notas completas sobre los datos
El panel de amplitud cuenta las acciones con un cierre en horario regular en ambas sesiones y con al menos $1M negociado en el día medido. El conteo excluido (5284 de 11439) muestra la parte 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 intervalos de la sonrisa de volumen están expresadas en ET (%H:%i) y se calculan usando toTimeZone únicamente en la lista SELECT. El panel de operaciones de opciones detecta el vencimiento en el mismo día mediante la coincidencia de subcadenas del ticker de OCC (substring(ticker, length(ticker) - 14, 6)), en lugar de options_trades.expiration_date (esa columna no funciona, según la nota permanente de prevalidación). Los símbolos de KNOWN_AMBIGUOUS_TICKERS se excluyen del SQL de líderes de volumen y de atención de noticias, de modo que las menciones de “la mayor cantidad de X” se limiten a nombres verificables. El ticker de la noticia principal usa un desempate determinista (argMax(t, (n, t))); top_news_lead_over_next = 0 indica un empate, por lo que 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 usan 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: cinta consolidada,
delayed_stocks_minute_aggspara los precios y volúmenes del índice y de cada activo,cache_stocks_quotespara los conteos de NBBO y los spreads cotizados,cache_options_quotesyoptions_tradespara la cinta de opciones. - Manejo de la zona horaria: todas las marcas de tiempo almacenadas están en UTC; las etiquetas horarias de ET se calculan con
toTimeZone(..., 'America/New_York')únicamente en las listas SELECT; las cláusulas WHERE usan literales UTC sin transformar. - Ventana del horario regular: 13:30–20:00 UTC, verificada con las barras observadas de un minuto de SPY (el panel de verificación de la sesión), no mediante cálculos de calendario.
- Definición del spread:
(ask - bid) / midpoint × 10,000en puntos base sobre cotizaciones válidas de dos puntas para la instantánea; el panel del mes móvil muestra un ancho promedio en centavos y está etiquetado 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 determinísticos:
quantileExact,argMin/argMaxcon claves de tupla y un desempate determinístico de noticias para regeneraciones estables. - Fecha de corte del warehouse: 10 de julio de 2026 (T+2 para el periodo); las cintas de ambas sesiones están completamente incorporadas con esta profundidad.
Enlaces relacionados: resumen del 7 de julio de 2026, costos de operar opciones, conceptos básicos del spread bid-ask, opciones 0DTE y volumen relativo.