Marktoverzicht 8 juli 2026 de cijfers
Een herstel in de chipsector had weinig impact op de index. De meeste semis stegen, NVDA steeg voor de tweede dag en de brede markt was twee-tegen-één rood.
Woensdag 8 juli 2026 was een dag van een kortstondig herstel in de chipsector, maar de indexen merkten hier nauwelijks iets van. SNDK sloot met +6.8%, AVGO met +4.82% en NVDA met +3.66% — een scherpe ommekeer ten opzichte van de chip-crash van dinsdag — maar de index ETF's bleven onveranderd: SPY -0.31% en QQQ +0.25%. De brede markt was zelfs nog twee-tegen-één roder dan de dag ervoor: 1821 stijgers tegenover 4260 dalers, met een aandeel stijgers van 29.6% na 33.8% de vorige sessie. Elk onderstaand getal is afkomstig uit een opgeslagen query — klap elk paneel uit voor de exacte SQL.
Het scorebord
Elke verandering vergelijkt de laatste minute-bar van de reguliere sessie van 8 juli met die van dinsdag 7 juli — opeenvolgende handelsdagen. De rijen staan op alfabetische volgorde, zodat elke ETF een vaste positie behoudt.
De exacte SQL achter elk getal
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 tickerDe vier ETF's stonden met een gap down open en bewogen daarna in verschillende richtingen. DIA opende de sessie op -0.97% ten opzichte van de vorige slotkoers en zakte verder, met een slotkoers van -1.09%. IWM opende op -0.73% en bleef dalen, met een slotkoers van -0.92%. SPY opende op -0.6%, herstelde gedurende de dag, maar sloot nog steeds op -0.31% — het herstel vanaf de opening was kleiner dan de gap. QQQ opende op -0.64% en steeg naar +0.25% bij de close, de enige van de vier in positief gebied.
Was de dag ongewoon?
De SPY open-to-close beweging van 0.29% rangschikte op 16 van de 22 voorgaande sessies — een gemiddelde dag voor de index, geen extreme uitschieter. De QQQ close-over-close beweging van +0.25% rangschikte op 21 van de 22 — een van de kleinste bewegingen van de afgelopen maand voor QQQ, wat consistent is met de ingetogen resultaten van de index.
De exacte SQL achter elk getal
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
)
)Breedte: nog meer twee-op-één negatief dan de dag ervoor
De exacte SQL achter elk getal
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
)Het verschil tussen advancers (1821) en decliners (4260) bracht het aandeel van de advancers naar 29.6%, een daling ten opzichte van 33.8% de vorige sessie — dezelfde berekening met dezelfde liquidity filter, toegepast op beide dagen. Van de 11439 namen met een slotkoers op beide dagen, vielen 5284 onder de handelsfilter van $1M en zijn zij uit de telling weggelaten. De door tech-aandelen geleide bounce en de gemengde slotkoers van de index maskeerden een nog uniformer negatieve brede markt.
The chip complex bounced — hard, and on heavy volume
Rows are alphabetical, so each name keeps a fixed position; the Tuesday comparison is computed fresh from the July 7 and July 6 closes in the receipts block below the table.
De exacte SQL achter elk getal
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 of the fourteen chip names closed green — the reverse of Tuesday's session, when 12 of the fourteen closed red. SNDK led the complex at +6.8% on 16.82B of dollars traded, with AVGO close behind at +4.82%; the other storage names followed — STX +3.9%, WDC +3.45%. The 3x wrapper SOXL ran +5.79% and the inverse SOXS -6.22% — consistent with a one-day recovery in the underlying complex. MU rose a more modest +1.11% but printed 32.02B of dollars — the heaviest dollar-volume name in the panel. NVDA closed +3.66% for a second straight green day: it was one of only 2 names in this panel that closed green through Tuesday's rout (+0.67% that day).
De exacte SQL achter elk getal
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
)De andere kant: defensieve waarden en growth mega-caps volgden niet
De exacte SQL achter elk getal
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 tickerDe growth mega-caps bewogen in de tegenovergestelde richting van de chipsector: TSLA -2.22%, META -2.04%, LLY -1.6%. CVX was de enige groene afsluiting in het panel, met een stijging van +1.12% na een vroege gap, terwijl XOM met +1.26% opende en naar -0.49% zakte voor de sluiting. De handel op woensdag was hiermee verdeeld in twee groepen — chipaandelen omhoog, growth en defensieve waarden omlaag — waarbij de indexes tussen beide groepen stilstonden. (Rijen zijn alfabetisch: CRNX, CVX, JNJ, LLY, META, TSLA, UNH, XOM.)
Waar de handel plaatsvond
De exacte SQL achter elk getal
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 verhandelde 32.02B dollars — de meest verhandelde naam op de tape en de enige boven de grens van $30B. SPY (26.49B), NVDA (24.17B) en QQQ (20.9B) volgden, met SNDK op 16.82B en TSLA op 11.71B als afsluiters van het dollarboard. Het aandelenboard liet een ander beeld zien: de 3x inverse semiconductor ETF SOXS verhandelde 636.5M aandelen tegen een impliciete gemiddelde prijs van $4.67 — de mechanica van een goedkope 3x wrapper tijdens een zware dag voor de chipsector.
Het verloop van de sessie
De exacte SQL achter elk getal
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_timeHet volume vertoonde een klassieke U-vorm: de eerste handelsperiode bedroeg 89.9% van de grootste handelsperiode van de dag en nam gedurende de ochtend af, met een dieptepunt van 34.1% in het tijdsbestek van 13:00–13:30 ET. De laatste halfuur (15:30 ET) was de grootste handelsperiode van de dag met 2.2B shares — groter dan de 1.98B van de opening, wat het standaardpatroon is voor een reguliere sessie.
De options tape
De exacte SQL achter elk getal
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'De geconsolideerde options tape registreerde 10.44M prints en 63.26M contracts — hoger dan de 61.13M van dinsdag, berekend op basis van dezelfde tape over de periode van dinsdag. Calls vormden 55.4% van het totale volume, een matige call lean. 0DTE contracts (expiratie op dezelfde dag, 260708) namen 38.7% van het contractvolume, een stijging ten opzichte van 31.2% op dinsdag. Het meest verhandelde individuele contract was SPY 745C — 677981 contracts tegen een gemiddelde prijs van $0.875, een same-day expiry die nagenoeg at the money staat ten opzichte van de regular close van SPY op $745.31.
De quote tape
De exacte SQL achter elk getal
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'De stock-quote tape bevatte op 8 juli 530.55M NBBO updates — +7.7% ten opzichte van de vorige sessie. De 6.53M updates van QQQ leidden de genoemde tickers, gevolgd door de 4.93M van SPY. NVDA (1.8M), TSLA (0.72M) en MU (0.6M) maken de lijst van genoemde aantallen compleet.
De exacte SQL achter elk getal
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 ASCOver de zeven genoemde tickers was de mediane quoted spread van de SPY RTH 0.27 bps — het laagste niveau van een normale sessie voor deze zeer liquide Amerikaanse ETF. QQQ werd gekoteerd op 0.71 bps en NVDA op 1.52 bps. De breedste uitschieters in de tabel horen bij de namen met een lagere liquiditeit: MU op 5.66 bps en SNDK op 12.21 bps.
De exacte SQL achter elk getal
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
)De gemiddelde quoted spread van de SPY RTH bedroeg 2.202 cents. Dit was de 11 van de afgelopen 22 sessies — een gemiddelde dag wat betreft de spread-tightness. De range van de afgelopen maand liep van 1.809 cents (de kleinste) tot 2.865 cents (de grootste). Er was geen sprake van een liquiditeitsgat of een specifieke liquidity event — een normale sessie voor de quoted spread van SPY.
De exacte SQL achter elk getal
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_mDe options tape bevatte 9.62 billion NBBO updates — 18.1× het aantal van de stock-quote tape. Alleen de SPY-opties registreerden 422 million updates tijdens de reguliere handelsuren.
Rentes: de curve bewoog nauwelijks
De exacte SQL achter elk getal
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
)De 5-year leidde de bewegingen tijdens de sessie met +4 bp; de 2-year eindigde +2 bp hoger, en geen andere looptijd bewoog meer dan 2 bp in welke richting dan ook. Hierdoor bleef de 2s10s spread op 0.35% (-1 bp tijdens de sessie), binnen de recente range. De beperkte beweging in de rentes verliep gelijktijdig met de beperkte beweging in de index.
De kalender van de dag
De exacte SQL achter elk getal
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_nextDe kalender was rustig vandaag: 81 ex-dividend records, 1 forward split uitgevoerd, en in totaal 3722 SEC filings (waaronder 775 Form 4 insider trades, 527 424B2 prospectussen en 163 8-K current reports). De nieuwsdekking bestond uit 192 artikelen verspreid over 3 uitgevers, waarbij MU een van de meest genoemde tickers was bij 17 artikelen. Geen bekende corporate action viel op in de handel van vandaag — het narratief van de tape was de chipsector zelf.
De sessie, geverifieerd
De exacte SQL achter elk getal
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'De sessie omvatte een volledige extended-hours periode — de eerste SPY bar om 04:00 ET, de laatste om 19:59 ET — met 390 minute bars tijdens de regular-hours en 1 trading session in de periode (geen half-day; de holiday table bevat geen rij voor deze datum). De volgende geplande sluiting is Labor Day op 2026-09-07.
Data notes
All timestamps are stored in UTC; regular hours on July 8, 2026 are filtered as sip_timestamp / window_start between 2026-07-08 13:30:00 and 2026-07-08 20:00:00, which corresponds to 9:30 am–4:00 pm New York time. Decimal prices are cast to Float64 before any division. Named per-ticker panels (scoreboard, chip complex, rotation) are ordered alphabetically by ticker so each prose reference points at a fixed row; leaderboards (volume, quote snapshot) are value-ordered, and every positional claim they make is encoded as a sanity bound on that position. Every Tuesday comparison on this page — breadth share, chip green/red counts, options contracts and 0DTE share, quote-update counts — is computed fresh from July 7 (and July 6 where a prior close is needed) in the same query block, never quoted from an earlier post.
Full data notes
The breadth panel counts names with a regular-hours close on both sessions and at least $1M traded on the measured day; the dropped count (5284 of 11439) makes the excluded tail visible. The chip complex's day_low/day_high timing columns use the argMin/argMaxIf(..., (value, timestamp)) pattern so ties resolve deterministically. The volume-smile bucket labels are ET (%H:%i), computed with toTimeZone in the SELECT list only. The options-tape panel detects same-day expiry with the OCC-ticker substring match (substring(ticker, length(ticker) - 14, 6)) rather than options_trades.expiration_date (that column is broken, per the standing preflight note). Symbols in KNOWN_AMBIGUOUS_TICKERS are excluded in the volume-leaders and news-attention SQL so "most X" callouts fall through to verifiable names. The top-news ticker uses a deterministic tie-break (argMax(t, (n, t))); top_news_lead_over_next = 0 marks a tie, which is why the prose says "among the most-mentioned". The treasury panel joins two daily snapshot rows; a missing snapshot for either date yields zero rows and the row_count bound holds the post. The stocks-quote and options-quote counts are whole-tape scans over day partitions; named-ticker counts are reported in millions to match their column units. Spread medians use quantileExact (deterministic); the trailing spread panel is an average (avgIf), labeled as such.
Methodologie
- Marktgegevensbron: consolidated tape —
delayed_stocks_minute_aggsvoor index- en per-naam prijzen en volumes,cache_stocks_quotesvoor NBBO-aantallen en quoted spreads,cache_options_quotesenoptions_tradesvoor de options tape. - Tijdzoneverwerking: alle opgeslagen timestamps zijn UTC; ET-tijdlabels worden alleen met
toTimeZone(..., 'America/New_York')in SELECT-lijsten berekend; WHERE-clausules gebruiken ruwe UTC-literalen. - Venster voor reguliere handelsuren: 13:30–20:00 UTC, geverifieerd aan de hand van geobserveerde SPY minute bars (het paneel voor sessieverificatie) en niet via kalenderberekeningen.
- Definitie van spread:
(ask - bid) / midpoint × 10,000in basis points op geldige two-sided quotes voor de snapshot; het paneel voor de voorgaande maand is een gemiddelde breedte in cents, aangeduid als een gemiddelde. - Vergelijkingen met de vorige sessie: berekend via de query vanaf 7 juli (en 6 juli voor de dag-tot-dag vergelijking van dinsdag) — nooit overgenomen uit een eerdere post.
- Deterministische aggregaten:
quantileExact, tuple-keyedargMin/argMax, en een deterministische news tie-break voor stabiele regeneraties. - Warehouse as-of datum: 10 juli 2026 (T+2 voor de periode); de tapes van beide sessies zijn volledig ingeladen op dit niveau.
Cross-links: recap van 7 juli 2026, options trading costs, basis van de bid-ask spread, 0DTE options, en relative volume.