Resumen del mercado: 7 de julio de 2026
Semiconductores cayeron con fuerza, pero NVDA subió: QQQ retrocedió más que DIA, hubo dos bajas por cada alza y SPY mostró su spread más estrecho del mes.
El martes 7 de julio de 2026 revirtió la mitad del crecimiento del repunte de reapertura del lunes, y algo más: QQQ cerró en -1.82%, con lo que más que borró su avance del lunes, frente a -0.29% de DIA. En el mercado subyacente, la relación de bajas fue de dos a uno: 4034 acciones en descenso frente a 2091 en alza. La verdadera historia de la sesión fue una ruptura del sector de semiconductores varias veces mayor que la del índice, mientras los gigantes del sector no participaron. Todas las cifras que aparecen a continuación se obtuvieron 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 7 de julio con la del lunes 6 de julio, en sesiones de trading consecutivas.
| 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 | 530.03 | 532.5 | 528.48 | 0.47 | -0.76 | -0.29 | 532.54 | 527.11 | 4.1 |
| IWM | 298.88 | 299.17 | 296.2 | 0.1 | -0.99 | -0.9 | 299.97 | 295.18 | 16.4 |
| QQQ | 722.63 | 714.17 | 709.5 | -1.17 | -0.65 | -1.82 | 716.35 | 704.9 | 37.4 |
| SPY | 751.3 | 750.22 | 747.66 | -0.14 | -0.34 | -0.48 | 750.96 | 745.21 | 38.4 |
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-06 13:30:00' AND window_start < '2026-07-06 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-07 13:30:00' AND window_start < '2026-07-07 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 AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.tickerEl -1.82% de QQQ lideró la baja entre los cuatro ETF de índices; SPY cerró -0.48%, IWM -0.9% y el -0.29% de DIA fue el movimiento menos pronunciado. La diferencia entre gap y movimiento gradual muestra que los dos extremos del mercado discreparon en la apertura: el gap overnight de QQQ fue de -1.17% y su movimiento de apertura a cierre fue de -0.65%; el gap explicó la mayor parte del daño. DIA abrió con un gap al alza de 0.47% y aun así terminó en rojo; su movimiento de apertura a cierre fue de -0.76%. El liderazgo cambió en cada sesión desde el jueves: DIA lideró el jueves, QQQ lideró el lunes y DIA volvió a liderar el martes.
¿Fue inusual la jornada?
| QQQ cierre contra cierre (%) | QQQ rango de movimiento absoluto | sesiones comparadas de QQQ | SPY apertura a cierre (%) | SPY rango de movimiento absoluto | sesiones comparadas de SPY | primera sesión |
|---|---|---|---|---|---|---|
| -1.82 | 9 | 21 | -0.34 | 15 | 21 | 2026-06-05 |
El SQL exacto detrás de cada cifra
SELECT
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-07'))) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ') AS qqq_sessions_compared,
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-07'))) + 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-04 00:00:00')
AND window_start < toDateTime('2026-07-08 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)
WHERE isFinite(cc_pct)A nivel de los índices, no especialmente. El movimiento de cierre a cierre de QQQ de -1.82% se ubica en el puesto 9 de 21 sesiones previas por magnitud absoluta, mientras que el movimiento de apertura a cierre de SPY de -0.34% se ubica en el puesto 15 de 21. El último mes, que incluye las oscilaciones del complejo de memoria de finales de junio, establece un umbral alto. La dispersión subyacente es donde el 7 de julio se destacó.
Breadth: two falling for every one rising
| alzas | bajas | sin cambio | tickers líquidos | tickers negociados en ambas sesiones | excluidos por filtro de liquidez | alzas (%) |
|---|---|---|---|---|---|---|
| 2091 | 4034 | 59 | 6184 | 11460 | 5276 | 33.8 |
El SQL exacto detrás de cada cifra
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
GROUP BY ticker
)
SELECT
countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
count() AS tickers_traded_both_sessions,
count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
/ countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE prior_close > 0 AND day_close > 02091 advancers, 4034 decliners, 59 unchanged, 33.8% of the liquid tape rose, Monday's green print inverted. The filter drops 5276 of 11460 dual-session tickers under $1 million traded, counted here.
El complejo de chips se quebró, salvo sus mayores nombres
Las ventas se concentraron en los semiconductores: los fabricantes de chips, las empresas de equipos que les suministran, el complejo de almacenamiento que los rodea y los ETF apalancados construidos sobre ellos. A continuación se reportan la co-movilidad y la magnitud; los datos no indican por qué ocurrió.
| ticker | cierre previo | cierre del día | cambio (%) | máximo del día (ET) | mínimo del día (ET) | minuto del máximo (ET) | minuto del mínimo (ET) | rango (%) | volumen diario en dólares (miles de millones) |
|---|---|---|---|---|---|---|---|---|---|
| AMD | 551.95 | 516.57 | -6.41 | 12:29 | 10:46 | 749 | 646 | 4.34 | 12.48 |
| AVGO | 373.9 | 370.79 | -0.83 | 13:42 | 10:44 | 822 | 644 | 3.02 | 6.09 |
| INTC | 122.22 | 110.5 | -9.59 | 09:30 | 15:18 | 570 | 918 | 7.54 | 13.82 |
| KLAC | 233.39 | 216.52 | -7.23 | 09:30 | 10:43 | 570 | 643 | 6.13 | 2.91 |
| LRCX | 349.92 | 326.12 | -6.8 | 09:30 | 10:41 | 570 | 641 | 5.64 | 3.97 |
| MRVL | 249.29 | 230.81 | -7.41 | 09:30 | 10:42 | 570 | 642 | 6.5 | 6.42 |
| MU | 984.31 | 938.95 | -4.61 | 15:59 | 10:41 | 959 | 641 | 5.65 | 41.6 |
| NVDA | 195.62 | 196.93 | 0.67 | 13:07 | 10:35 | 787 | 635 | 3.8 | 19.95 |
| SNDK | 1743.08 | 1619.26 | -7.1 | 09:30 | 10:42 | 570 | 642 | 10.36 | 19.73 |
| SOXL | 194.77 | 165.27 | -15.15 | 09:30 | 10:44 | 570 | 644 | 14.53 | 10.8 |
| SOXS | 4.16 | 4.82 | 15.87 | 10:42 | 09:30 | 642 | 570 | 10.3 | 2.78 |
| STX | 869.5 | 827.4 | -4.84 | 09:45 | 10:44 | 585 | 644 | 6.58 | 3.1 |
| TER | 379.66 | 343.1 | -9.63 | 09:30 | 10:41 | 570 | 641 | 9.98 | 1.59 |
| WDC | 577.46 | 532.34 | -7.81 | 09:30 | 11:00 | 570 | 660 | 7.76 | 3.73 |
El SQL exacto detrás de cada cifra
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-07 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-07 00:00:00') AS day_low,
argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS low_bar,
argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 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-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York')) AS high_minute_et,
toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerTeradyne (-9.63%) e Intel (-9.59%) perdieron casi una décima parte de su valor. Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%) y AMD (-6.41%) quedaron cerca. Las acciones de memoria y almacenamiento que rebotaron parcialmente el lunes volvieron a caer: SanDisk -7.1% dentro de un rango máximo-mínimo de 10.36%, Western Digital -7.81%, Seagate -4.84% y MU -4.61%. MU negoció $41.6 mil millones en acciones, más que las otras tres empresas de almacenamiento juntas (el análisis detallado de MU explica los antecedentes).
Los dos gigantes del sector no participaron en la venta: NVDA cerró al alza en 0.67% y Broadcom terminó casi sin cambios en -0.83%, en una jornada negativa para todo el sector, excepto sus mayores integrantes (el análisis detallado de NVDA de junio).
El movimiento estuvo sincronizado, como un vacío de liquidez durante una mañana: TER, LRCX y MU marcaron sus mínimos de la sesión a las 10:41, 10:41 y 10:41 ET, respectivamente. SanDisk, Marvell, KLA, AVGO y SOXL lo hicieron dentro de los mismos minutos. El panel muestra cada marca de tiempo. SOXS, el ETF inverso de semiconductores con apalancamiento 3x, marcó su máximo de la sesión a las 10:42. El movimiento fue completamente inverso. Intel siguió cayendo mucho después de que el resto se estabilizara y alcanzó su mínimo a las 15:18. Los vehículos apalancados reflejan la magnitud: SOXL -15.15% frente a SOXS +15.87%.
El otro lado de la cinta
Aun con una caída de dos a uno, hay un tercio en verde. Esto subió mientras las acciones de chips caían:
| ticker | cierre previo | apertura del día | cierre del día | brecha (%) | intradía (%) | cambio (%) | volumen diario en dólares (miles de millones) |
|---|---|---|---|---|---|---|---|
| CRNX | 42.02 | 83.58 | 83.53 | 98.91 | -0.06 | 98.79 | 4.19 |
| CVX | 168.13 | 170.14 | 173.97 | 1.2 | 2.25 | 3.47 | 1.21 |
| JNJ | 259.33 | 264.89 | 267.29 | 2.14 | 0.91 | 3.07 | 1.92 |
| LLY | 1202.56 | 1232.88 | 1235.64 | 2.52 | 0.22 | 2.75 | 2.87 |
| META | 600.43 | 607.59 | 615.57 | 1.19 | 1.31 | 2.52 | 9.73 |
| TSLA | 419.77 | 416.96 | 402.88 | -0.67 | -3.38 | -4.02 | 13.36 |
| UNH | 418.1 | 423.95 | 428.18 | 1.4 | 1 | 2.41 | 1.61 |
| XOM | 136.49 | 138.56 | 141.65 | 1.52 | 2.23 | 3.78 | 1.63 |
El SQL exacto detrás de cada cifra
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close_raw,
toFloat64(argMinIf(open, window_start, window_start >= '2026-07-07 00:00:00')) AS day_open_raw,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close_raw,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 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-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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 tickerEnergía y salud impulsaron la columna verde: Exxon +3.78%, Chevron +3.47%, Johnson & Johnson +3.07%, Eli Lilly +2.75%, UnitedHealth +2.41%. Las dos megacaps de este panel se dividieron: META subió +2.52%, mientras TSLA devolvió la mayor parte de la subida unidireccional del lunes en -4.02%. Y el print individual más destacado de la cinta: Crinetics Pharmaceuticals (CRNX) cerró +98.79% con $4.19 mil millones negociados, casi duplicándose. Todo el movimiento se produjo como un gap overnight (98.91% en la apertura; la sesión regular lo movió apenas -0.06%), el tipo de ajuste de precio entre sesiones que ocurre donde se negocia antes de la apertura. Los datos no indican por qué.
Dónde se negoció el dinero
| tabla de posiciones | ticker | volumen en dólares (mmd) | acciones (M) | % del líder del tablero |
|---|---|---|---|---|
| by dollars traded | MU | 41.6 | 45.3 | 100 |
| by dollars traded | SPY | 28.68 | 38.4 | 68.9 |
| by dollars traded | QQQ | 26.54 | 37.4 | 63.8 |
| by dollars traded | NVDA | 19.95 | 102.4 | 48 |
| by dollars traded | SNDK | 19.73 | 12.5 | 47.4 |
| by dollars traded | INTC | 13.82 | 124.8 | 33.2 |
| by shares traded | SOXS | 2.78 | 566.3 | 100 |
| by shares traded | BITO | 3.47 | 402.2 | 71 |
| by shares traded | TZA | 1.1 | 278.8 | 49.2 |
| by shares traded | CPOP | 0.02 | 161.3 | 28.5 |
El SQL exacto detrás de cada cifra
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
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-07 13:30:00' AND window_start < '2026-07-07 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESCMU encabezó el flujo en dólares con $41.6 billion, un día después de ceder el primer lugar. Lo recuperó, seguido por SPY ($28.68 billion) y QQQ ($26.54 billion). Otros tres nombres de semiconductores, NVDA ($19.95 billion), SNDK ($19.73 billion) y INTC ($13.82 billion), completaron los seis primeros lugares. La concentración del volumen negociado en acciones individuales es lo que señala el volumen relativo.
En el tablero accionario, SOXS negoció 566.3 million shares. El ETF inverso 3x de semiconductores encabezó el conteo por tercera sesión consecutiva (lunes y jueves corresponden a las operaciones anteriores). Esta vez ocurrió el mismo día en que su sector efectivamente rompió al alza. CPOP ofrece la lección opuesta: se movieron 161.3 million shares por apenas $0.02 billion. El conteo de acciones favorece a los títulos baratos. Base: horario regular del 7 de julio; se excluye una cotización con símbolo reutilizado mientras se verifica la entidad, sus comprobantes.
La forma de la sesión
| hora ET | acciones (mmM) | % del grupo más grande |
|---|---|---|
| 09:30 | 2 | 93.4 |
| 10:00 | 1.58 | 74 |
| 10:30 | 1.34 | 62.7 |
| 11:00 | 1.09 | 50.9 |
| 11:30 | 0.99 | 46.1 |
| 12:00 | 0.91 | 42.6 |
| 12:30 | 0.76 | 35.3 |
| 13:00 | 0.72 | 33.6 |
| 13:30 | 0.64 | 29.8 |
| 14:00 | 0.71 | 33.1 |
| 14:30 | 0.91 | 42.7 |
| 15:00 | 1.14 | 53.2 |
| 15:30 | 2.14 | 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time2 mil millones de acciones durante la primera media hora, un mínimo de 0.64 mil millones a las 13:30 y 2.14 mil millones hacia el cierre de 15:30, la sonrisa habitual, con el mayor volumen al cierre.
La cinta de opciones
| operaciones de opciones (M) | contratos (M) | calls (% del volumen) | vencimiento el mismo día (%) | contratos del mismo día (M) | contratos de SPY (M) | contratos de QQQ (M) | contratos de INTC (M) | subyacente del contrato principal | strike del contrato principal | tipo del contrato principal | el contrato principal es call | volumen del contrato principal | precio promedio del contrato principal | strike principal menos cierre de SPY | subyacente del segundo contrato | strike del segundo contrato | tipo del segundo contrato | el segundo contrato es put | volumen del segundo contrato | precio promedio del segundo contrato | cierre de SPY menos segundo strike | ambos contratos principales vencen el mismo día | cierre de SPY |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10.6 | 61.13 | 55.6 | 31.2 | 19.08 | 12.48 | 8.36 | 0.69 | SPY | 749 | C | 1 | 873438 | 0.647 | 1.34 | SPY | 747 | P | 1 | 785834 | 0.88 | 0.66 | 2 | 747.66 |
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) = '260707', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
) AS spy_regular_close
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS 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) = '260707') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707')) / 1e6, 2) AS same_day_contracts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'INTC')) / 1e6, 2) AS intc_contracts_m,
top2.1[1] AS top_contract_underlying,
top2.2[1] AS top_contract_strike,
top2.3[1] AS top_contract_type,
if(top2.3[1] = 'C', 1, 0) AS top_contract_is_call,
top2.4[1] AS top_contract_volume,
top2.5[1] AS top_contract_avg_price,
round(top2.2[1] - spy_regular_close, 2) AS top_strike_minus_spy_close,
top2.1[2] AS second_contract_underlying,
top2.2[2] AS second_contract_strike,
top2.3[2] AS second_contract_type,
if(top2.3[2] = 'P', 1, 0) AS second_contract_is_put,
top2.4[2] AS second_contract_volume,
top2.5[2] AS second_contract_avg_price,
round(spy_regular_close - top2.2[2], 2) AS spy_close_minus_second_strike,
top2.6[1] + top2.6[2] AS both_top_contracts_same_day,
spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'Se negociaron 61.13 millones de contratos de opciones en 10.6 millones de operaciones ejecutadas, una cinta del tamaño de la de lunes, y las calls aún representaron 55.6% del volumen en una jornada bajista. Los vencimientos del mismo día representaron 31.2% de la cinta (19.08 millones de contratos), la participación de 0DTE de un martes ordinario. Los dos contratos más negociados del día se ubicaron a ambos lados del cierre; ambos fueron strikes SPY con vencimiento el mismo día: la call de $749 (873438 contratos a un precio promedio de $0.647) terminó $1.34 fuera del dinero, y la put de $747 (785834 contratos a $0.88) terminó $0.66 fuera del dinero en el lado opuesto. El cierre de SPY en 747.66 quedó entre las dos mayores apuestas del día, y ambas vencieron sin valor.
La cinta de cotizaciones
Debajo de cada precio de esta página está el flujo de cotizaciones: la National Best Bid and Offer, recotizada continuamente para cada instrumento listado. Es el conjunto de datos más difícil de obtener en este almacén. Aquí se mide en cada sesión, sea normal o no.
| actualizaciones del 7 de jul. (M) | actualizaciones del 6 de jul. (M) | variación diaria (%) | minuto de la última cotización del 7 de jul. (ET) | actualizaciones en la hora de cierre del 7 de jul. (M) |
|---|---|---|---|---|
| 492.76 | 391.96 | 25.7 | 1199 | 77.13 |
El SQL exacto detrás de cada cifra
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / countIf(toDate(sip_timestamp) = toDate('2026-07-06')) - 1) * 100, 1) AS day_over_day_pct,
toHour(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) * 60
+ toMinute(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) AS jul7_last_quote_et_minute,
round(countIf(sip_timestamp >= '2026-07-07 19:00:00' AND sip_timestamp < '2026-07-07 20:00:00') / 1e6, 2) AS jul7_close_hour_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'La cinta de acciones registró 492.76 millones de actualizaciones de NBBO el 7 de julio, 25.7% más que las 391.96 millones del lunes. Hubo más recotizaciones, no cotizaciones más amplias:
| ticker | spread de pocket (pb) | spread de mediodía (pb) | variación del spread (pb) | actualizaciones de pocket (K) | actualizaciones de mediodía (K) | ratio de frecuencia de cotización | actualizaciones de la sesión (M) | cotizaciones no válidas descartadas |
|---|---|---|---|---|---|---|---|---|
| AMD | 9.11 | 6.51 | 2.6 | 13.2 | 2.9 | 4.6 | 0.27 | 101 |
| INTC | 2.75 | 1.8 | 0.95 | 90.6 | 38.4 | 2.4 | 2.18 | 3498 |
| MU | 5.02 | 4.81 | 0.21 | 51.8 | 15.2 | 3.4 | 0.96 | 430 |
| NVDA | 1.04 | 1.01 | 0.03 | 122 | 44 | 2.8 | 2.41 | 266 |
| QQQ | 0.42 | 0.28 | 0.14 | 281.3 | 143.3 | 2 | 5.54 | 391 |
| SNDK | 8.65 | 8.89 | -0.24 | 19.1 | 4.6 | 4.1 | 0.3 | 91 |
| SOXL | 9.89 | 12.48 | -2.59 | 41.1 | 16.9 | 2.4 | 1.11 | 339 |
| SOXS | 19.59 | 21.07 | -1.49 | 50.1 | 13.4 | 3.8 | 0.95 | 0 |
| SPY | 0.27 | 0.27 | 0 | 237.9 | 70.6 | 3.4 | 4.23 | 803 |
| WDC | 10.77 | 12.01 | -1.25 | 6.3 | 2.3 | 2.7 | 0.13 | 22 |
El SQL exacto detrás de cada cifra
SELECT
ticker,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 2) AS pocket_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS midday_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00')
- quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS spread_delta_bps,
round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_updates_k,
round(countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_updates_k,
round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 1) AS quote_rate_ratio,
round(count() / 1e6, 2) AS session_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AMD', 'INTC', 'MU', 'NVDA', 'QQQ', 'SNDK', 'SOXL', 'SOXS', 'SPY', 'WDC')
AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
GROUP BY ticker
ORDER BY tickerEn los mínimos de la mañana, los nombres revisados se recotizaron a múltiplos de su ritmo del mediodía: MU 3.4x, SanDisk 4.1x y AMD 4.6x. El spread bid-ask apenas se movió: el ancho mediano de MU fue de 5.02 bps en ese tramo, frente a 4.81 al mediodía; el de NVDA fue de 1.04 frente a 1.01; y el de SPY no cambió en absoluto (variación de 0 bps sobre un touch de 0.27 bps). Los dos nombres que pagaron una penalización real por ancho fueron AMD (+2.6 bps) e Intel (+0.95). Intel fue el único nombre que siguió cayendo después de ese tramo, mientras que el par apalancado en realidad se estrechó en el mínimo (SOXL -2.59 bps, SOXS -1.49). Un vacío de liquidez se ve como cotizaciones amplias y silencio. Esto fue lo contrario: una tormenta de cotizaciones con el touch prácticamente fijo. Los costos de cruce siguieron dependiendo del nombre: SOXS cotizó con un ancho de 19.59 bps en el mínimo, frente a 1.04 de NVDA.
| spread promedio del 7 de jul. (centavos) | rango de menor spread | sesiones comparadas | sesión con menor spread (centavos) | sesión con mayor spread (centavos) | primera sesión | cotizaciones no válidas descartadas |
|---|---|---|---|---|---|---|
| 1.809 | 1 | 21 | 1.809 | 2.865 | 2026-06-05 | 41883 |
El SQL exacto detrás de cada cifra
SELECT
round(anyIf(avg_spread_cents, d = toDate('2026-07-07')), 3) AS jul7_avg_spread_cents,
arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-07')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-07'))) + 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-08 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
)Y esta es la comprobación habitual que realiza esta sección en cada sesión: según el spread cotizado promedio ponderado por actualizaciones, el 7 de julio fue la sesión más estrecha de SPY en el último mes, con 1.809 centavos, en el lugar 1 de 21, frente a un mes que alcanzó 2.865 centavos en su punto más amplio. Una cinta roja de two-to-one, con el touch del índice en su nivel más estrecho del mes, es un hecho que solo el flujo de cotizaciones puede confirmar.
| filas de cotizaciones de opciones del 7 de jul. | actualizaciones de cotizaciones de opciones del 7 de jul. (mil millones) | actualizaciones de cotizaciones de opciones del 6 de jul. (mil millones) | variación diaria (%) | actualizaciones de cotizaciones de acciones del 7 de jul. (M) | ratio de opciones a acciones del 7 de jul. |
|---|---|---|---|---|---|
| 8694614147 | 8.69 | 6.49 | 34 | 492.76 | 17.6 |
El SQL exacto detrás de cada cifra
WITH
(
SELECT count()
FROM global_markets.cache_options_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_option_rows,
(
SELECT count()
FROM global_markets.cache_options_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260706
) AS jul6_option_rows,
(
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_stock_quote_rows
SELECT
jul7_option_rows AS jul7_option_quote_rows,
round(jul7_option_rows / 1e9, 2) AS jul7_option_quote_updates_bn,
round(jul6_option_rows / 1e9, 2) AS jul6_option_quote_updates_bn,
round((jul7_option_rows / jul6_option_rows - 1) * 100, 1) AS day_over_day_pct,
round(jul7_stock_quote_rows / 1e6, 2) AS jul7_stock_quote_updates_m,
round(jul7_option_rows / jul7_stock_quote_rows, 1) AS jul7_option_to_stock_ratioEl flujo de cotizaciones de opciones es aún mayor y constituye el conjunto de datos más grande de este almacén. El 7 de julio registró 8.69 mil millones de actualizaciones de NBBO de opciones, 17.6 veces el tamaño de toda la cinta de cotizaciones de acciones de esa misma sesión (492.76 millones de actualizaciones). La cinta de opciones del lunes registró 6.49 mil millones, de modo que el flujo de opciones se expandió 34% sesión contra sesión, junto con el 25.7% del flujo de acciones.
| actualizaciones de opciones de SPY (M) | % del flujo total de cotizaciones de acciones | contratos de SPY cotizados | actualizaciones del mismo día (M) | precio de SPY en pocket | precio de SPY al mediodía | spread ATM de pocket ($) | spread ATM de mediodía ($) | variación del spread ATM ($) | actualizaciones ATM de pocket (K) | actualizaciones ATM del mediodía (miles) | proporción de cotizaciones ATM | cotizaciones intradía no válidas descartadas |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 327.55 | 66.5 | 9116 | 13.61 | 746 | 749.08 | 0.01 | 0.01 | 0 | 191.1 | 64 | 3 | 42872 |
El SQL exacto detrás de cada cifra
WITH
(
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_stock_quote_rows,
(
SELECT round(toFloat64(avg(close)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-07 14:36:00' AND window_start < '2026-07-07 14:48:00'
) AS spy_pocket_price,
(
SELECT round(toFloat64(avg(close)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-07 17:30:00' AND window_start < '2026-07-07 17:42:00'
) AS spy_midday_price
SELECT
round(count() / 1e6, 2) AS spy_option_updates_m,
round(100.0 * count() / jul7_stock_quote_rows, 1) AS pct_of_whole_equity_quote_tape,
uniqExact(ticker) AS spy_contracts_quoted,
round(countIf(substring(ticker, -15, 6) = '260707') / 1e6, 2) AS same_day_updates_m,
spy_pocket_price AS spy_price_in_pocket,
spy_midday_price AS spy_price_midday,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
bid_price > 0 AND ask_price >= bid_price
AND substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 3) AS pocket_atm_spread_dollars,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
bid_price > 0 AND ask_price >= bid_price
AND substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 3) AS midday_atm_spread_dollars,
round(pocket_atm_spread_dollars - midday_atm_spread_dollars, 3) AS atm_spread_delta_dollars,
round(countIf(substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_atm_updates_k,
round(countIf(substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_atm_updates_k,
round(pocket_atm_updates_k / midday_atm_updates_k, 1) AS atm_quote_rate_ratio,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)
AND substring(ticker, -15, 6) = '260707') AS dropped_invalid_same_day_quotes
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
HAVING pocket_atm_updates_k > 0 AND midday_atm_updates_k > 0Solo los contratos de SPY con vencimiento en 2026 recibieron 327.55 millones de esas actualizaciones durante el horario regular, distribuidas entre 9116 contratos listados. Eso equivale a 66.5% de lo que cotizó todo el mercado de acciones ese mismo día, desde un solo subyacente. Los vencimientos del mismo día que componen la cinta 0DTE representan 13.61 millones de ellas.
Durante los doce minutos del vacío de liquidez matutino, los contratos del mismo día cercanos al dinero cotizaron con un ancho mediano de $0.01, exactamente el mismo ancho que mostraron en el control del mediodía ($0.01, una variación de 0). La tasa de cotización de ese mismo par fue de 3x: 191.1 miles de actualizaciones en los mínimos, frente a 64 miles al mediodía. El touch de las opciones hizo lo mismo que el touch de la acción. Mantuvo su ancho mientras la maquinaria de cotización operaba a plena intensidad. “Cercano al dinero” significa que el strike está dentro de $2 del precio promedio de SPY en la misma ventana. El panel muestra ambos precios (746 en ese tramo y 749.08 al mediodía).
Tasas: la curva se vendió junto con los activos de crecimiento
| punto de la curva | rendimiento del 7 de julio (%) | cambio en la sesión (pb) |
|---|---|---|
| 1 month | 3.69 | 0 |
| 3 month | 3.86 | -1 |
| 1 year | 4.06 | 11 |
| 2 year | 4.19 | 6 |
| 5 year | 4.27 | 6 |
| 10 year | 4.55 | 7 |
| 30 year | 5.05 | 6 |
| 2s10s spread | 0.36 | 1 |
El SQL exacto detrás de cada cifra
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul7_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-07') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS p
)Los Treasuries se vendieron junto con los activos de crecimiento. El rendimiento del bono a un año subió 11 puntos base hasta 4.06%; el del bono a 10 años, 7 hasta 4.55%; y el del bono a 30 años, 6 hasta 5.05%, por encima del nivel de cinco por ciento. El spread 2s10s se mantuvo en 0.36 puntos porcentuales (cambio de 1 puntos base): un movimiento mayormente paralelo, no un cambio en la forma de la curva.
El calendario detrás de la sesión
| registros exdividendo | splits ejecutados | splits inversos | splits directos | OPI listadas | presentaciones ante la SEC | presentaciones de insiders (Formulario 4) | presentaciones 8-K | artículos de noticias | medios de noticias | ticker más cubierto | el más cubierto es NVDA | artículos sobre el más cubierto | ventaja del más cubierto sobre el siguiente | artículos sobre CRNX |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 80 | 7 | 5 | 2 | 1 | 2438 | 463 | 173 | 215 | 3 | NVDA | 1 | 17 | 4 | 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-07'
) AS news,
(
SELECT (argMax(t, n), 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-07'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-07') AS ex_dividend_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS splits_executed,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-07') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS filings_8k,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
if(top_news.1 = 'NVDA', 1, 0) AS most_covered_is_nvda,
top_news.2 AS most_covered_articles,
top_news.3 AS most_covered_lead_over_next,
(SELECT countIf(has(tickers, 'CRNX')) FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07') AS crnx_articles80 registros de dividendos pasaron a ex-dividend, se ejecutaron 7 splits, 5 de ellos fueron reverse splits, consolidaciones por debajo de un dólar que simulan "ganancias" de tres dígitos en una cinta sin ajustar, frente a 2 splits al alza, y llegó 1 nueva cotización. El índice de la SEC registró 2438 presentaciones: 463 Form 4s y 173 Form 8-K. Nuestro feed de noticias publicó 215 artículos de 3 medios; el nombre más cubierto fue NVDA, con 17 artículos, 4 más que el siguiente nombre. Fue la misma NVDA que cerró al alza durante la jornada bajista de su sector. El feed publicó 0 artículos sobre CRNX, la acción con la mayor ganancia en la cinta; fue la atención de un feed, no la de los medios de todo el mundo.
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 7 de julio | fecha del próximo cierre | nombre del próximo cierre |
|---|---|---|---|---|---|---|---|
| 04:00 | 19:59 | 902 | 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-07') AS jul7_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 00:00:00' AND window_start < '2026-07-08 00:00:00'El 7 de julio fue una sesión completa, no un cierre anticipado: las barras de SPY abarcan de 04:00 a 19:59, hora de Nueva York, con exactamente 390 barras dentro del horario regular. La tabla de feriados contiene 0 filas para esa fecha. El próximo cierre programado es el Labor Day, 2026-09-07.
Notas de datos
- El volumen en dólares es un indicador por minuto: precio de cierre × volumen, sumado por cada vela de un minuto durante el horario regular.
- La separación entre gap y movimiento gradual se mide desde la primera vela de la sesión regular de cada activo (la apertura) frente al último cierre regular de la sesión anterior. El resto corresponde al movimiento entre la apertura y el cierre del 7 de julio.
- Los mínimos matutinos sincronizados se verificaron contra las velas adyacentes al momento de redactar el artículo. Cada uno está respaldado por sus minutos vecinos, no por una sola operación ejecutada; ninguno justificó un comprobante de anomalía. Cuando un extremo se registró durante más de un minuto, el panel muestra la primera vela en que ocurrió, como criterio determinista para resolver empates.
- Una cotización con símbolo reutilizado queda excluida de las clasificaciones de volumen y de la mención de noticias mientras se verifica la entidad; su propia publicación contiene los comprobantes.
- Las estadísticas del spread cotizado excluyen las cotizaciones inválidas (registros NBBO unilaterales o cruzados), y cada panel de spreads indica en una columna propia cuántas observaciones descarta. El “spread promedio ponderado por actualizaciones” calcula el ancho cotizado de cada actualización NBBO válida. Los momentos de mayor actividad pesan más; es una estadística de cotización, no el costo por operación.
- Las cotizaciones de opciones del 7 de julio llegaron después de la primera publicación de este artículo.
cache_options_quotesregistra el mayor retraso de ingestión del almacén de datos, por lo que la primera edición incluyó un comprobante acotado de cero filas en el lugar que ahora ocupan los paneles de cotizaciones de opciones. Las filas llegaron, el límite de cero filas falló al regenerarse el artículo y esta revisión muestra las 8.69 actualizaciones de la sesión. La cinta de cotizaciones de acciones estaba completa desde el inicio: la última actualización del 7 de julio se registró en el minuto ET 1199, con 77.13 millones de actualizaciones durante la última hora regular (las columnas de comprobantes aparecen en el panel de la cinta de cotizaciones). - Los anchos cotizados de las opciones se miden cerca del precio de ejercicio at-the-money. La mediana por actualización de todos los contratos con vencimiento el mismo día es una estadística de composición: los contratos muy in-the-money cotizan con spreads de varios dólares, los muy out-of-the-money cotizan con spreads de centavos y los contratos que vuelven a cotizar cambian durante la sesión. La comparación entre el periodo inicial y el mediodía se limita a los precios de ejercicio situados dentro de $2 del precio promedio de SPY en cada ventana; ambos precios aparecen como columnas en el panel. Las cotizaciones de opciones inválidas (unilaterales o cruzadas) se contabilizan en ese panel; no se eliminan silenciosamente.
- El registro del Tesoro correspondiente al 7 de julio se incorporó con un día de retraso de sesión. La primera edición incluyó un comprobante con el retraso informado; su mecanismo de alerta se activó el 8 de julio, cuando llegó el registro, y esta revisión muestra la curva real.
Metodología
- El periodo es una sola sesión de trading (sesión 1, verificada con las barras observadas y el calendario de feriados; nunca se da por supuesta). Las marcas de tiempo se almacenan en UTC y se convierten a la hora de Nueva York dentro de las consultas. “Cierre” significa la última barra de un minuto de la sesión regular; los cambios diarios comparan el 7 de julio con el 6 de julio, es decir, sesiones de trading consecutivas.
- Las columnas decimales se convierten a flotantes de 64 bits antes de calcular ratios; los vencimientos de las opciones se vuelven a analizar a partir del ticker de OCC, porque la columna de vencimiento de la tabla está dañada. Todos los paneles se leen una sola vez, al momento de redactar, mediante la ruta de solo lectura con acceso controlado. Estado del almacén de datos al 8 de julio de 2026.
- La sección de la cinta de cotizaciones se agregó en la revisión del 8 de julio, la misma revisión que reemplazó el comprobante del rezago de los bonos del Tesoro por la operación ejecutada registrada. Sus paneles de cotizaciones de opciones se reescribieron una vez que llegaron las filas NBBO de opciones del propio 7 de julio. La generación es un proceso por lotes: el panel de cotizaciones de opciones de SPY examina unos cientos de millones de registros NBBO, mientras que los conteos por tamaño de operación leen los totales de filas de las particiones diarias. Por eso, una tabla que contiene miles de millones de filas por sesión puede responder un conteo en menos de un segundo.
Cada panel es el resultado de una consulta almacenada; el gráfico, la tabla y el SQL forman un solo objeto. Pegue cualquiera de ellos en la terminal de Strasmore y hágalo suyo. Sesión anterior: 6 de julio.