Resumen bursátil del 6 de julio de 2026
Tras el feriado del Día de la Independencia: gap alcista liderado por crecimiento, brecha sectorial varias veces mayor que el índice, reverse split y spreads más estrechos del mes.
El lunes 6 de julio de 2026, la primera sesión tras el fin de semana del Día de la Independencia, abrió con un gap alcista liderado por los valores de crecimiento y mantuvo esa subida. QQQ cerró en 1.39%, frente al 0.42% de DIA, el reflejo de la rotación del jueves, y la amplitud fue positiva: subieron 3861 valores líquidos, frente a 2242. La mayor parte del movimiento correspondió al gap de reapertura, valorado en la cotización más ajustada del índice durante el último mes. Todas las cifras siguientes se obtienen de una consulta almacenada.
La tabla de posiciones
Los cambios comparan la última vela de un minuto de la sesión regular del 6 de julio con la del jueves 2 de julio, un feriado bursátil anterior.
| 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 | 527.83 | 528.72 | 530.03 | 0.17 | 0.25 | 0.42 | 530.03 | 525.85 | 2.8 |
| IWM | 297.53 | 297.75 | 298.88 | 0.07 | 0.38 | 0.45 | 300.41 | 297.62 | 17.1 |
| QQQ | 712.74 | 719.93 | 722.63 | 1.01 | 0.38 | 1.39 | 726.08 | 718.45 | 26 |
| SPY | 744.8 | 748.74 | 751.3 | 0.53 | 0.34 | 0.87 | 752.41 | 747.41 | 42 |
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-02 13:30:00' AND window_start < '2026-07-02 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-06 13:30:00' AND window_start < '2026-07-06 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.tickerQQQ, con 1.39%, encabezó los cuatro ETFs de índices, mientras que DIA, con 0.42%, quedó rezagado. Fue exactamente lo contrario de el jueves, cuando DIA subió y QQQ cayó. SPY cerró en 0.87% e IWM, en 0.45%. La diferencia entre un gap y una subida gradual define la sesión: QQQ abrió 1.01% por encima del cierre del jueves y solo sumó 0.38% adicionales entre la apertura y el cierre. El gap de 0.53% de SPY explicó la mayor parte de su avance diario de 0.87%. IWM (0.07%) y DIA (0.17%) apenas registraron un gap y subieron gradualmente dentro de la sesión.
¿Fue un día inusual?
| movimiento del día (%) | rango de movimiento abs. | sesiones comparadas | primera sesión |
|---|---|---|---|
| 0.34 | 13 | 19 | 2026-06-08 |
El SQL exacto detrás de cada cifra
SELECT round(anyIf(oc_pct, d = toDate('2026-07-06')), 2) AS day_move_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-06'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-06'))) + 1 AS abs_move_rank,
count() AS sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-06 00:00:00')
AND window_start < toDateTime('2026-07-07 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)A nivel del índice, no: el movimiento de apertura a cierre de SPY, de 0.34%, ocupa el puesto 13 entre las últimas 19 sesiones por magnitud absoluta, en la zona media. La operativa intradía fue normal; la mayor parte del movimiento se produjo en la apertura.
Breadth: green tape, growth back in front
| alzas | bajas | sin cambio | tickers líquidos | tickers negociados en ambas sesiones | excluidos por filtro de liquidez | alzas (%) |
|---|---|---|---|---|---|---|
| 3861 | 2242 | 86 | 6189 | 11550 | 5361 | 62.4 |
El SQL exacto detrás de cada cifra
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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 > 03861 advancers, 2242 decliners, 86 unchanged, 62.4% of the liquid tape rose. Index weighting and equal-count breadth agreed, both green, where Thursday split them. The filter drops 5361 of 11550 dual-session tickers under $1M traded.
Por sector: ¿qué tan amplia fue la dispersión?
Cuatro megacaps no representan a todo el mercado. El panel valora la sesión mediante los once grandes ETFs sectoriales, un fondo por cada segmento del S&P 500, con la misma canasta en cada sesión. Observe el spread entre el mejor y el peor sector: la dispersión del día.
| ticker | cambio (%) | gap (%) | intradiario (%) | volumen diario ($ mil millones) | puntos detrás del líder |
|---|---|---|---|---|---|
| XLK | 1.71 | 1.19 | 0.52 | 1.43 | 0 |
| XLF | 0.99 | 0.42 | 0.56 | 1.64 | 0.72 |
| XLI | 0.9 | 0.43 | 0.47 | 1.2 | 0.81 |
| XLY | 0.75 | 0.35 | 0.39 | 0.98 | 0.96 |
| XLC | 0.6 | 0.43 | 0.17 | 0.82 | 1.11 |
| XLB | -0.06 | -0.13 | 0.08 | 0.85 | 1.77 |
| XLE | -0.15 | -0.32 | 0.17 | 1.15 | 1.86 |
| XLRE | -0.92 | 0.09 | -1.01 | 0.28 | 2.63 |
| XLU | -1.03 | -0.11 | -0.92 | 0.73 | 2.74 |
| XLV | -1.03 | -0.35 | -0.69 | 2.35 | 2.75 |
| XLP | -1.08 | -0.24 | -0.85 | 1.06 | 2.79 |
El SQL exacto detrás de cada cifra
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
toFloat64(argMinIf(open, window_start, window_start >= '2026-07-06 00:00:00')) AS day_open,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
day_dollar_bn,
round(max((day_close / prior_close - 1) * 100) OVER () - (day_close / prior_close - 1) * 100, 2) AS points_behind_leader
FROM per_name
ORDER BY pct_chg DESC, ticker ASCTecnología (XLK) lideró la sesión con 1.71%, casi todo explicado por la brecha: 1.19% en la apertura y 0.52% durante las siguientes seis horas y media. Le siguieron los sectores financiero (0.99%) e industrial (0.9%). Después, la tabla cambia: cinco filas en verde dan paso a seis en rojo, encabezadas por los sectores defensivos, con utilities, salud y consumo básico en niveles de hasta -1.08%. Entre el máximo y el mínimo, 2.79 puntos porcentuales separaron al mejor del peor en una jornada en la que el ETF que replica al S&P se movió 0.87%, varias veces el movimiento del índice. Esto muestra por qué no debe interpretarse una jornada positiva como un movimiento uniforme. Real estate y utilities siguieron un patrón opuesto al de tecnología: aperturas casi planas (0.09%, -0.11%) y luego una caída durante toda la sesión (-1.01% y -0.92% de apertura a cierre).
El foco de la sesión: el desplome de las acciones de memoria se revirtió a medias
El complejo de memoria y almacenamiento que se desplomó el miércoles y el jueves rebotó el lunes, pero solo en parte.
| ticker | cierre previo | cierre del día | cambio (%) | máximo del día | máximo del día (ET) | mínimo del día | mínimo del día (ET) | rango (%) | volumen diario ($ mil millones) |
|---|---|---|---|---|---|---|---|---|---|
| MU | 975.77 | 984.31 | 0.88 | 1019 | 10:45 | 980.85 | 15:59 | 3.89 | 30.9 |
| SNDK | 1743.59 | 1743.08 | -0.03 | 1837.77 | 10:44 | 1713.2 | 13:59 | 7.27 | 13.85 |
| STX | 820.25 | 869.5 | 6 | 886.89 | 10:39 | 848 | 13:02 | 4.59 | 2.56 |
| WDC | 538.99 | 577.46 | 7.14 | 601 | 10:44 | 563.61 | 09:30 | 6.63 | 3.78 |
El SQL exacto detrás de cada cifra
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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, 2) AS day_high,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
round(day_low, 2) AS day_low,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerLos dos fabricantes de unidades lideraron el rebote: Western Digital 7.14% y Seagate 6%. Ambos alcanzaron su máximo a media mañana (10:44 y 10:39 ET). Las dos acciones con mayor volumen no participaron: MU sumó 0.88% y marcó su mínimo en la vela de cierre (15:59); SanDisk terminó con una subida de -0.03%, dentro de un rango de 7.27%. MU aún negoció $30.9 mil millones en acciones, más que las otras tres combinadas (el análisis detallado de MU cubre sus resultados trimestrales).
La otra mitad de la rotación se concentró en las megacaps:
| ticker | cierre previo | cierre del día | cambio (%) | máximo del día | máximo del día (ET) | mínimo del día | mínimo del día (ET) | rango (%) | volumen diario ($ mil millones) |
|---|---|---|---|---|---|---|---|---|---|
| AAPL | 308.22 | 312.81 | 1.49 | 314.2 | 11:45 | 307 | 09:30 | 2.35 | 11.7 |
| MSFT | 389.62 | 386.88 | -0.7 | 389.15 | 09:30 | 381.22 | 09:39 | 2.08 | 9.32 |
| NVDA | 194.51 | 195.62 | 0.57 | 197.55 | 12:14 | 193.99 | 09:30 | 1.84 | 15.14 |
| TSLA | 392.81 | 419.77 | 6.86 | 420 | 15:59 | 390.5 | 09:37 | 7.55 | 19.17 |
El SQL exacto detrás de cada cifra
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA')
AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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, 2) AS day_high,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
round(day_low, 2) AS day_low,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerTSLA subió de forma sostenida hasta 6.86%. Marcó su mínimo a las 09:37 ET y su máximo en la vela de cierre (15:59), justo lo contrario de su caída del jueves. AAPL sumó 1.49% y NVDA 0.57%. MSFT fue la única megacap en terreno negativo, con una caída de -0.7%. Marcó su máximo en la apertura de las 09:30.
Dónde se concentró el dinero negociado
| clasificación | ticker | volumen ($ mil millones) | acciones (M) | % del líder del tablero |
|---|---|---|---|---|
| by dollars traded | SPY | 31.49 | 42 | 100 |
| by dollars traded | MU | 30.9 | 30.9 | 98.1 |
| by dollars traded | TSLA | 19.17 | 46.6 | 60.9 |
| by dollars traded | QQQ | 18.79 | 26 | 59.7 |
| by dollars traded | NVDA | 15.14 | 77.2 | 48.1 |
| by dollars traded | AMD | 14.26 | 25.5 | 45.3 |
| by shares traded | SOXS | 1.86 | 467.1 | 100 |
| by shares traded | BITO | 3.06 | 358.5 | 76.8 |
| by shares traded | SBEV | 0.07 | 281.9 | 60.4 |
| by shares traded | TZA | 0.62 | 161.6 | 34.6 |
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-06 13:30:00' AND window_start < '2026-07-06 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-06 13:30:00' AND window_start < '2026-07-06 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) DESCSPY lideró el volumen negociado en dólares, con $31.49 mil millones; MU ($30.9 mil millones) quedó un paso atrás y puso fin a la racha de cuatro sesiones de MU en el primer lugar (la recaudación corresponde a lunes a jueves). En el mercado de acciones, SOXS, el ETF de semiconductores inverso 3x, negoció 467.1 millones de acciones y volvió a encabezar el recuento, incluso mientras subían los chips que sigue.
| hora ET | acciones (mil millones) | % del grupo más grande |
|---|---|---|
| 09:30 | 1.96 | 93.7 |
| 10:00 | 1.31 | 62.7 |
| 10:30 | 1.09 | 51.9 |
| 11:00 | 1.06 | 50.5 |
| 11:30 | 0.88 | 42 |
| 12:00 | 0.84 | 40 |
| 12:30 | 0.76 | 36.3 |
| 13:00 | 0.77 | 36.5 |
| 13:30 | 0.81 | 38.7 |
| 14:00 | 0.69 | 32.8 |
| 14:30 | 0.68 | 32.5 |
| 15:00 | 0.84 | 40.3 |
| 15:30 | 2.1 | 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-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
GROUP BY et_time
ORDER BY et_time1.96 mil millones de acciones en la primera media hora, un mínimo de 0.68 mil millones a las 14:30, 2.1 mil millones cerca del 15:30 cierre: la habitual sonrisa intradía, con mayor actividad en ambos extremos.
La cinta de opciones
| operaciones de opciones (M) | contratos (M) | calls como % del volumen | vencimiento el mismo día (%) | contratos con vencimiento el mismo día (M) | contratos de SPY (M) | contratos de QQQ (M) | contratos de TSLA (M) | activo subyacente del contrato principal | strike del contrato principal | tipo de contrato principal | el contrato principal es call | vencimiento del contrato principal | volumen del contrato principal (M) | precio promedio del contrato principal | cierre de SPY menos strike |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10.53 | 60.98 | 58.4 | 38.7 | 23.57 | 12.1 | 6.88 | 4.29 | SPY | 751 | C | 1 | 2026-07-06 | 1.08 | 0.564 | 0.3 |
El SQL exacto detrás de cada cifra
WITH
(
SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
sum(size), count(), round(avg(toFloat64(price)), 3))
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
GROUP BY ticker
ORDER BY sum(size) DESC
LIMIT 1
) AS top_contract,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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) = '260706') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260706')) / 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 = 'TSLA')) / 1e6, 2) AS tsla_contracts_m,
top_contract.1 AS top_contract_underlying,
top_contract.2 AS top_contract_strike,
top_contract.3 AS top_contract_type,
if(top_contract.3 = 'C', 1, 0) AS top_contract_is_call,
top_contract.4 AS top_contract_expiry,
round(toFloat64(top_contract.5) / 1e6, 2) AS top_contract_volume_m,
round(top_contract.7, 3) AS top_contract_avg_price,
round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'Se negociaron opciones por 60.98 millones de contratos en 10.53 millones de operaciones ejecutadas, de las cuales 58.4% correspondieron a calls. Los vencimientos del mismo día representaron 38.7% de la cinta (23.57 millones de contratos), una proporción habitual de 0DTE para un lunes, por debajo de la cifra de la víspera del festivo, con doble concentración, registrada el jueves. El contrato más negociado fue la call de SPY con strike de $751 y vencimiento ese mismo día: 1.08 millones de contratos a un precio promedio de $0.564. SPY cerró $0.3 por encima del strike, por lo que terminó in the money. Una call encabezó la tabla, mientras que el jueves terminó con una put en primer lugar.
La cinta de cotizaciones: ¿la apertura con gap se operó con spreads amplios?
Debajo de cada precio aparece el flujo de cotizaciones: la mejor oferta de compra y venta nacional (NBBO), que se actualiza continuamente para cada valor listado. Una apertura con gap es un momento en el que las cotizaciones pueden volverse desfavorables, por lo que la medimos en cada sesión.
| actualizaciones del 6 de jul. (M) | actualizaciones del 2 de jul. (M) | variación diaria (%) | primeros 30 min del 6 de jul. (M) | 30 min del mediodía del 6 de jul. (M) | últimos 30 min del 6 de jul. (M) |
|---|---|---|---|---|---|
| 391.96 | 597.22 | -34.4 | 58.66 | 20.74 | 33.7 |
El SQL exacto detrás de cada cifra
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / countIf(toDate(sip_timestamp) = toDate('2026-07-02')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 14:00:00') / 1e6, 2) AS jul6_open_half_hour_m,
round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 18:00:00') / 1e6, 2) AS jul6_midday_half_hour_m,
round(countIf(sip_timestamp >= '2026-07-06 19:30:00' AND sip_timestamp < '2026-07-06 20:00:00') / 1e6, 2) AS jul6_close_half_hour_m
FROM global_markets.cache_stocks_quotes
WHERE (sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00')
OR (sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00')La cinta registró 391.96 millones de actualizaciones del NBBO el lunes, frente a 597.22 millones el jueves: -34.4%, un tercio menos de mensajes que en la sesión previa al feriado. Además, se concentraron en la apertura: 58.66 millones durante la primera media hora, frente a 20.74 millones a la 1:30 p. m. y 33.7 millones hacia el cierre. Hubo menos cotizaciones que el jueves, pero no fueron más amplias:
| ticker | spread de apertura (pb) | spread del mediodía (pb) | variación del spread (pb) | actualizaciones de apertura (miles) | actualizaciones del mediodía (miles) | razón de tasas de cotización | actualizaciones de la sesión (M) | cotizaciones inválidas descartadas |
|---|---|---|---|---|---|---|---|---|
| DIA | 0.76 | 0.57 | 0.19 | 105.9 | 19.6 | 5.4 | 0.83 | 7 |
| IWM | 0.67 | 0.33 | 0.34 | 219.1 | 98.4 | 2.2 | 2.56 | 62 |
| MSFT | 3.88 | 1.56 | 2.32 | 25.2 | 6.6 | 3.8 | 0.32 | 121 |
| MU | 8.09 | 4.46 | 3.63 | 53.5 | 15.2 | 3.5 | 0.69 | 317 |
| QQQ | 0.83 | 0.42 | 0.42 | 357.9 | 121.4 | 2.9 | 3.96 | 239 |
| SNDK | 21.07 | 8.16 | 12.9 | 14.9 | 4.6 | 3.3 | 0.16 | 38 |
| SPY | 0.27 | 0.27 | 0 | 276.9 | 92.8 | 3 | 3.35 | 883 |
| STX | 30.94 | 25.62 | 5.32 | 2.9 | 0.8 | 3.4 | 0.04 | 11 |
| TSLA | 4.57 | 1.68 | 2.89 | 40.6 | 17.7 | 2.3 | 0.6 | 553 |
| WDC | 14.67 | 9.28 | 5.39 | 9.5 | 2.1 | 4.5 | 0.1 | 40 |
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-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00'), 2) AS open_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-06 17:30:00' AND sip_timestamp < '2026-07-06 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-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42: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-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 2) AS spread_delta_bps,
round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / 1e3, 1) AS open_updates_k,
round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00') / 1e3, 1) AS midday_updates_k,
round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 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 ('DIA', 'IWM', 'MSFT', 'MU', 'QQQ', 'SNDK', 'SPY', 'STX', 'TSLA', 'WDC')
AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 20:00:00'
GROUP BY ticker
ORDER BY tickerEl spread entre la oferta de compra y la oferta de venta es el costo de cruzar el mercado, expresado en puntos básicos del precio medio. Un punto básico equivale a un centavo por cada acción de $100. Ningún valor analizado cotizó con un spread más estrecho en los primeros doce minutos del gap que al mediodía, y el spread de SPY fue idéntico en ambos momentos (0.27 puntos básicos; cambio de 0 puntos básicos), aunque el ETF actualizó sus cotizaciones 3 veces más rápido durante la apertura. El costo de un spread más amplio se concentró en acciones individuales, no en fondos indexados: SanDisk registró el mayor incremento (+12.9 puntos básicos, de 8.16 a 21.07), seguido de MU con +3.63 y TSLA con +2.89, frente a los 0.42 puntos básicos de QQQ, con un spread de 0.83 puntos básicos. Seagate responde a la pregunta «¿acaso no es todo líquido?»: registró un spread de 30.94 puntos básicos en la apertura, más de cien veces el de SPY.
| spread promedio del 6 de jul. (centavos) | posición por estrechez | sesiones comparadas | sesión más amplia (centavos) | promedio de otras sesiones (centavos) | primera sesión | cotizaciones inválidas descartadas |
|---|---|---|---|---|---|---|
| 1.815 | 1 | 21 | 2.865 | 2.337 | June 4, 2026 | 41468 |
El SQL exacto detrás de cada cifra
SELECT
round(anyIf(avg_spread_cents, d = toDate('2026-07-06')), 3) AS jul6_avg_spread_cents,
arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-06')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-06'))) + 1 AS tightness_rank,
count() AS sessions_compared,
round(max(avg_spread_cents), 3) AS widest_session_cents,
round(avgIf(avg_spread_cents, d != toDate('2026-07-06')), 3) AS other_sessions_avg_cents,
replaceAll(formatDateTime(min(d), '%M %e, %Y'), ' ', ' ') 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-04 00:00:00')
AND sip_timestamp < toDateTime('2026-07-07 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
)Durante toda la jornada regular, el 6 de julio fue la sesión más estrecha de SPY en el último mes: el spread cotizado promedio ponderado por actualizaciones fue de 1.815 centavos, con un rango de 1 entre 21 sesiones desde June 4, 2026. El promedio mensual fue de 2.337 centavos y alcanzó 2.865 en su punto más amplio. Aunque el feriado redujo el número de cotizaciones, el comprador del índice obtuvo el spread más barato del mercado.
Tasas: una curva estable durante el fin de semana largo
| punto de la curva | rendimiento del 6 de jul. (%) | cambio durante la sesión (pb) |
|---|---|---|
| 1 month | 3.69 | -1 |
| 3 month | 3.87 | 5 |
| 1 year | 3.95 | -1 |
| 2 year | 4.13 | -1 |
| 5 year | 4.21 | -2 |
| 10 year | 4.48 | -1 |
| 30 year | 4.99 | 1 |
| 2s10s spread | 0.35 | 0 |
El SQL exacto detrás de cada cifra
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul6_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-06') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS p
)La curva apenas se movió durante el fin de semana largo. El bono a 10 años se situó en 4.48% y el spread 2s10s en 0.35 puntos porcentuales; ambos niveles estuvieron a uno o dos puntos básicos del último print del 2 de julio. El plazo a 3 meses fue el único que registró un movimiento relevante, hasta 5 puntos básicos.
El calendario detrás de la sesión
| registros ex-dividendo | splits ejecutados | splits inversos | splits directos | IPOs listadas | presentaciones ante la SEC | presentaciones Form 4 de insiders | presentaciones 8-K | artículos de noticias | medios de noticias | ticker con mayor cobertura | artículos con mayor cobertura |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 119 | 15 | 14 | 1 | 0 | 3164 | 1219 | 201 | 236 | 3 | NVDA | 25 |
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-06'
) AS news,
(
SELECT (argMax(t, n), max(n))
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-06'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS ex_dividend_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_executed,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-06') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS filings_8k,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
top_news.2 AS most_covered_articles119 registros de dividendos pasaron a cotizar ex-dividendo, se ejecutaron 15 splits, llegaron 0 nuevas cotizaciones y el índice de la SEC registró 3164 presentaciones, 1219 Formularios 4, 201 informes 8-K, un volumen de actividad inferior al del jueves previo al feriado. El flujo de noticias incluyó 236 artículos; el nombre con mayor cobertura fue NVDA, con 25.
El muro de los reverse splits detrás de las pantallas de mayores movimientos
14 de los 15 splits fueron reverse splits, es decir, consolidaciones de acciones, en su mayoría con precios inferiores a un dólar, frente a 1 forward splits. Un reverse split convierte muchas acciones antiguas en una sola a un precio proporcionalmente mayor. Una pantalla que no ajusta los precios lo reporta como una «ganancia» de tres dígitos, aunque no se haya ganado nada. El muro completo:
| ticker | acciones anteriores | acciones nuevas | acciones anteriores por cada nueva | cierre del 2 de julio | cierre del 6 de julio | cambio porcentual sin ajustar |
|---|---|---|---|---|---|---|
| INLF | 200 | 1 | 200 | 0.02 | 6.31 | 31450 |
| NTCL | 50 | 1 | 50 | 0.09 | 4.62 | 5033.3 |
| NIPG | 30 | 1 | 30 | 0.24 | 8.18 | 3308.3 |
| JZ | 30 | 1 | 30 | 0.1 | 2.99 | 2890 |
| HKIT | 25 | 1 | 25 | 0.17 | 4.13 | 2329.4 |
| CRIS | 20 | 1 | 20 | 0.35 | 5.9 | 1585.7 |
| NVVE | 18 | 1 | 18 | 0.32 | 4.94 | 1443.8 |
| ABTC | 15 | 1 | 15 | 0.56 | 8.47 | 1412.5 |
| TXXS | 10 | 1 | 10 | 2.35 | 24.34 | 935.7 |
| SLAI | 7 | 1 | 7 | 0.45 | 3.19 | 608.9 |
| SNAL | 5 | 1 | 5 | 0.61 | 3.03 | 396.7 |
| NIVF | 3 | 1 | 3 | 0.46 | 1.5 | 226.1 |
El SQL exacto detrás de cada cifra
SELECT
s.ticker AS ticker,
toFloat64(s.split_from) AS old_shares,
toFloat64(s.split_to) AS new_shares,
round(toFloat64(s.split_from) / toFloat64(s.split_to), 0) AS old_shares_per_new,
p.prev_close AS jul2_close,
d.day_close AS jul6_close,
round((d.day_close / p.prev_close - 1) * 100, 1) AS unadjusted_pct_chg
FROM (
SELECT ticker, any(split_from) AS split_from, any(split_to) AS split_to
FROM global_markets.stocks_splits
WHERE execution_date = '2026-07-06'
GROUP BY ticker
) s
INNER JOIN (
SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS prev_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
GROUP BY ticker
HAVING prev_close > 0
) p ON s.ticker = p.ticker
INNER JOIN (
SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS day_close
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'
AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
GROUP BY ticker
HAVING day_close > 0
) d ON s.ticker = d.ticker
ORDER BY unadjusted_pct_chg DESC, ticker ASCCada una de las 12 filas es una consolidación que muestra una «ganancia» de tres dígitos o superior en el tape sin ajustar. La lista va desde 31450% en la parte superior, una consolidación 200-por-1 con un cierre sin ajustar de $0.02 a $6.31, hasta 226.1%, con el ratio más pequeño (3-por-1). A mitad de la tabla aparece el caso más claro para entenderlo: un reverse split de 10-por-1 llevó el cierre sin ajustar de TXXS de $2.35 el jueves a $24.34 el lunes. Diez acciones antiguas se convirtieron en una, no hubo un rally de diez veces. Un screener basado en la variación del precio sin ajustar coloca toda esta tabla por encima de cualquier movimiento real. El nuestro excluye los splits. El forward split del jueves de CRWD simuló lo contrario: un desplome.
La sesión, verificada, la primera después del receso
| primera barra de SPY (ET) | última barra de SPY (ET) | barras de 1 minuto de SPY | barras de sesión regular | sesiones del día | barras de SPY del 3 de julio | fecha del próximo cierre | nombre del próximo cierre |
|---|---|---|---|---|---|---|---|
| 04:00 | 19:59 | 917 | 390 | 1 | 0 | September 7, 2026 | 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-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars,
(SELECT replaceAll(formatDateTime(min(date), '%M %e, %Y'), ' ', ' ') FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'El 6 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. El viernes anterior, 3 de julio, registró 0 barras de SPY, debido al cierre total por el Día de la Independencia, que cayó en sábado. Próximo cierre: Labor Day, September 7, 2026. La semana de cuatro sesiones anterior al receso se analiza en el resumen semanal.
Preguntas frecuentes
¿Cómo se comportó el mercado bursátil el 6 de julio de 2026?
Los cuatro grandes ETFs de índices cerraron al alza: QQQ 1.39%, SPY 0.87%, IWM 0.45% y DIA 0.42%. 62.4% de los nombres líquidos avanzaron, en su mayoría debido a un gap alcista de apertura tras la sesión nocturna.
¿Qué sector lideró el 6 de julio de 2026?
Tecnología (XLK) lideró los once ETFs sectoriales con 1.71%. El extremo defensivo llegó a apenas -1.08%. La diferencia entre el mejor y el peor desempeño fue de 2.79 puntos porcentuales, varias veces el movimiento de 0.87% del ETF que sigue al S&P.
¿Estuvo abierto el mercado bursátil el Día de la Independencia de 2026?
No. El 4 de julio cayó en sábado y las bolsas observaron el Día de la Independencia el viernes 3 de julio. Esto queda registrado arriba en las 0 barras de un minuto de SPY que muestran operaciones ejecutadas. El 6 de julio fue la primera sesión de regreso.
¿Por qué algunas acciones mostraron ganancias enormes en un solo día el 6 de julio?
Se ejecutaron splits inversos de 14. Consolidar muchas acciones antiguas en una sola, a un precio proporcionalmente más alto, hace que una pantalla sin ajustar muestre una “ganancia” de cientos por ciento, aunque el valor de la posición del tenedor no cambie. Los nombres 12 mencionados arriba son todos de ese tipo.
¿Los spreads fueron amplios durante la apertura con gap?
Solo en acciones individuales. El spread cotizado mediano de SPY durante los primeros doce minutos fue de 0.27 puntos básicos, igual que al mediodía. SanDisk cotizó un spread 12.9 puntos básicos más amplio que al mediodía.
Notas sobre los datos
- El volumen negociado en dólares es un indicador aproximado por minuto: precio de cierre × volumen, sumados en cada barra de un minuto.
- La cesta sectorial es un método declarado, no un campo del proveedor: los once grandes ETFs sectoriales del S&P (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV y XLY), siempre el mismo conjunto en cada sesión.
- Los spreads cotizados son las medianas de (ask − bid) ÷ mid entre cotizaciones válidas con ambos lados; se excluyen las cotizaciones de un solo lado, en cero o cruzadas, y se contabilizan en el panel.
- Una cotización con un símbolo reutilizado queda excluida de las clasificaciones hasta verificar la entidad (comprobantes).
Metodología
- El periodo corresponde a una sola sesión de trading (1 sesión, verificada a partir de las barras observadas). Las marcas de tiempo se almacenan en UTC y se convierten a la hora de Nueva York dentro de las queries. «Cierre» significa la última barra de un minuto de la sesión regular; los cambios diarios comparan el 6 de julio con el 2 de julio, la sesión anterior al cierre del 3 de julio. La comparación se verificó con las barras y nunca se asumió.
- Los decimales se convierten a floats de 64 bits antes de realizar las operaciones de ratios. Los paneles se leen una sola vez, al momento de redactar, mediante la ruta de solo lectura con acceso controlado.
Cada panel es el resultado de una query 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: 2 de julio. Siguiente: 7 de julio.