Marktoverzicht 7 juli 2026 in cijfers
De semiconductor sector daalde hard terwijl NVDA groen bleef. De markt was twee-tegen-één rood en de SPY spread bereikte het laagste niveau in een maand tijd.
Dinsdag 7 juli 2026 heeft de groei van de stijging bij de opening van maandag volledig tenietgedaan: QQQ sloot op -1.82%, waarmee de winst van maandag meer dan werd uitgewist, tegenover -0.29% voor DIA. Op de markt waren er twee-tegen-één dalende koersen: 4034 liquid decliners tegenover 2091 advancers. De belangrijkste ontwikkeling van de dag was een beweging in de semiconductor-sector die meerdere malen groter was dan de index — een sector waarin een van de grootste namen niet meedeed. Elk onderstaand getal is afkomstig uit een opgeslagen query — klik op een paneel voor de exacte SQL.
Het scorebord
Elke wijziging vergelijkt de laatste minute-bar van de reguliere sessie van 7 juli met die van maandag 6 juli — opeenvolgende handelsdagen.
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-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.tickerDe -1.82% van QQQ was de grootste daling onder de vier index ETF's; SPY sloot met -0.48%, IWM met -0.9%, en de -0.29% van DIA was de kleinste verandering. De vergelijking tussen de gap en de grind laat zien dat de twee uitersten bij de opening van mening verschilden: de overnight gap van QQQ was -1.17% en de open-to-close grind was -0.65% — de gap veroorzaakte de meeste schade — terwijl DIA omhoog gapte met 0.47% maar toch rood sloot, met een open-to-close beweging van -0.76%. De marktleiderschap is elke sessie sinds donderdag gewisseld: DIA leidde op donderdag, QQQ leidde op maandag, en DIA leidde opnieuw op dinsdag.
Was de dag ongebruikelijk?
De exacte SQL achter elk getal
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)Op indexniveau niet bijzonder. De close-over-close beweging van QQQ van -1.82% staat qua absolute omvang op de 9 plaats van 21 voorgaande sessies, en de open-to-close beweging van SPY van -0.34% staat op de 15 plaats van 21 — een maand met grote schommelingen eind juni stelt een hoge lat. De dispersie daaronder was waar 7 juli opviel.
Breedte: twee dalende voor elke stijgende
De exacte SQL achter elk getal
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% van de liquid tape steeg, maandagse groene print keerde om. De filter verwerkt 5276 van de 11460 dual-session tickers met een handelsvolume onder $1 miljoen.
De chipsector stortte in — behalve de grootste namen
De verkoop concentreerde zich op halfgeleiders: de chipmakers, de leveranciers van apparatuur, de omliggende opslagsector en de leveraged ETF's die hierop gebaseerd zijn. De correlatie en omvang worden hieronder gerapporteerd; de data geeft geen verklaring voor de oorzaak.
De exacte SQL achter elk getal
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%) en Intel (-9.59%) verloren bijna een tiende van hun waarde, gevolgd door Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%) en AMD (-6.41%). De namen in de geheugen- en opslagsector die maandag een halve bounce lieten zien herstelden niet: SanDisk -7.1% over een 10.36% high-to-low range, Western Digital -7.81%, Seagate -4.84% en MU -4.61% — waarbij MU een handelsvolume van $41.6 miljard realiseerde, meer dan de andere drie opslagnamen gecombineerd (de MU deep-dive bevat de achtergrondinformatie).
De twee reuzen van de sector bleven gespaard: NVDA sloot groen op 0.67% en Broadcom eindigde nagenoeg vlak op -0.83% — een rode dag voor de gehele sector, minus de grootste leden (NVDA's juni deep-dive).
De timing was gesynchroniseerd — één enkele luchtbel in de ochtend: TER, LRCX en MU bereikten hun laagste punt van de sessie op 10:41, 10:41 en 10:41 ET, terwijl SanDisk, Marvell, KLA, AVGO en SOXL binnen dezelfde minuten bewogen (het overzicht bevat elk tijdstip), en SOXS, de 3x inverse semiconductor ETF, zijn sessie-high bereikte op 10:42 — de beweging was volledig omgekeerd. Intel bleef dalen lang nadat de rest stabiliseerde, met een laagste punt op 15:18. De leveraged wrappers vertalen de omvang: SOXL -15.15% tegenover SOXS +15.87%.
De andere kant van de tape
Een verhouding van twee-tegen-één in de rode cijfers laat nog steeds een groene derde zien. Dit steeg terwijl de chips daalden:
De exacte SQL achter elk getal
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 tickerEnergie en healthcare zorgden voor de groene kolom: Exxon +3.78%, Chevron +3.47%, Johnson & Johnson +3.07%, Eli Lilly +2.75%, UnitedHealth +2.41%. De twee megacaps in dit overzicht splitsten: META steeg met +2.52%, terwijl TSLA het grootste deel van maandags eenrichtingsaandelenstijging afgaf op -4.02%. En de meest opvallende individuele waarde op de tape: Crinetics Pharmaceuticals (CRNX) sloot met +98.79% bij een handelsvolume van $4.19 miljard, bijna een verdubbeling — de volledige beweging ontstond door een overnight gap (98.91% bij de opening; de reguliere sessie zorgde slechts voor -0.06%), het type repricing tussen de sessies dat plaatsvindt waar de pre-market handelt. De data geeft geen reden aan.
Waar de handel plaatsvond
De exacte SQL achter elk getal
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 leidde de dollar tape op $41.6 miljard — één sessie nadat de eerste plaats werd verloren, heroverde het de top — met SPY ($28.68 miljard) en QQQ ($26.54 miljard) daarachter, en drie andere chipnamen — NVDA ($19.95 miljard), SNDK ($19.73 miljard) en INTC ($13.82 miljard) — die de rest van de top zes vulden. De concentratie van de omzet per aandeel wordt aangegeven door relative volume.
Op het aandelenbord verhandelde SOXS 566.3 miljoen aandelen — de 3x inverse semiconductor ETF staat voor de derde opeenvolgende sessie bovenaan de lijst (maandag en [[market-recap-2026-07-02|donderdag] bevatten de eerdere cijfers]), ditmaal op de dag dat zijn sector daadwerkelijk brak. CPOP is het tegenovergestelde voorbeeld: 161.3 miljoen aandelen verplaatsten slechts $0.02 miljard — aandelenvolumes zijn vlakker bij goedkope aandelen. Basis: 7 juli reguliere handelsuren; één hergebruikte symboolnotering is uitgesloten in afwachting van verificatie van de entiteit — de ontvangsten.
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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time2 miljard aandelen in het eerste halfuur, een dieptepunt van 0.64 miljard om 13:30, en 2.14 miljard richting de 15:30 close — de gebruikelijke smile, met de hoogste volumes bij de close.
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) = '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'Er werden 61.13 miljoen contracten in options verhandeld over 10.6 miljoen prints — een tape van de omvang van maandag — en calls vertegenwoordigden nog steeds 55.6% van het volume op een rode dag. Expiraties op dezelfde dag vormden 31.2% van de tape (19.08 miljoen contracten) — het 0DTE aandeel van een gewone dinsdag. De twee drukste contracten van de dag stonden rond de close; beide waren same-day SPY strikes: de $749 call (873438 contracten tegen een gemiddelde van $0.647) eindigde $1.34 out of the money, en de $747 put (785834 contracten tegen $0.88) eindigde $0.66 aan de andere zijde. De 747.66 close van SPY landde tussen de twee grootste weddenschappen van de dag in, en beide vervielen waardeloos.
De quote tape
Onder elke prijs op deze pagina bevindt zich de quote stream — de National Best Bid and Offer, continu opnieuw gecoteerd voor elke genoteerde naam; de moeilijkst verkrijgbare dataset in dit archief. Deze wordt hier elke sessie gemeten, of deze nu gewoon of bijzonder is.
De exacte SQL achter elk getal
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'De equity tape bevatte 492.76 miljoen NBBO updates op 7 juli — 25.7% meer dan de 391.96 miljoen van maandag. Meer re-quoting, niet bredere quoting:
De exacte SQL achter elk getal
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 tickerBij de ochtendminima herquoteerden de gecontroleerde namen tegen veelvouden van hun middagtempo — MU 3.4x, SanDisk 4.1x, AMD 4.6x — en de bid-ask spread bewoog nauwelijks: de mediane breedte van MU was 5.02 bps in de pocket tegenover 4.81 op het middaguur, die van NVDA was 1.04 tegenover 1.01, en die van SPY bewoog helemaal niet (0 bps verandering bij een 0.27 bps touch). De twee namen die een echte breedte-penalty betaalden waren AMD (+2.6 bps) en Intel (+0.95) — Intel was de enige naam die bleef dalen na de pocket — terwijl het leveraged paar daadwerkelijk tightened bij de bodem (SOXL -2.59 bps, SOXS -1.49). Een liquiditeitsvacuüm uit zich in brede quotes en stilte; dit was het tegenovergestelde — een quote storm met een gepinjte touch. De crossing costs bleven desondanks naamafhankelijk: SOXS quoteerde 19.59 bps breed bij de bodem tegenover de 1.04 van NVDA.
De exacte SQL achter elk getal
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
)En de gewone controle die deze sectie elke sessie uitvoert: op basis van de update-weighted average quoted spread was 7 juli de strakste sessie van SPY in de afgelopen maand — 1.809 cents, rang 1 van 21, tegenover een maand die een breedte van 2.865 cents bereikte. Een two-to-one rode tape geprijsd op de strakste index touch van de maand is een feit dat alleen de quote stream kan bevestigen.
De exacte SQL achter elk getal
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_ratioDe options quote stream is nog groter en is de grootste dataset in dit archief. 7 juli bevatte 8.69 miljard optie NBBO updates, wat 17.6 keer de omvang is van de volledige stock-quote tape van diezelfde sessie (492.76 miljoen updates). De optie tape van maandag bevatte 6.49 miljard, dus de optie stream groeide met 34% van sessie tot sessie, naast de 25.7% van de equity stream.
De exacte SQL achter elk getal
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 > 0Alleen de SPY-contracten met looptijd 2026 namen 327.55 miljoen van die updates tijdens de reguliere handel, verdeeld over 9116 genoteerde contracten. Dat is 66.5% van wat de gehele equity markt op die dag quoteerde, afkomstig van één onderliggende waarde. De expiries van dezelfde dag die de 0DTE tape vormen, zijn verantwoordelijk voor 13.61 miljoen van het totaal.
Gedurende de twaalf minuten van de ochtend air pocket, quoteerden de near-the-money contracten van dezelfde dag een mediane breedte van $0.01, precies wat ze quoteerden tijdens de controle op het middaguur ($0.01, een delta van 0). Het quote rate over diezelfde paren liep 3x: 191.1 duizend updates bij de minima tegenover 64 duizend tijdens de lunch. De optie touch deed hetzelfde als de stock touch. De breedte bleef gelijk terwijl de quoting machinery op volle toeren draaide. Near-the-money betekent een strike binnen $2 van de gemiddelde prijs van SPY in hetzelfde tijdsvenster, en het paneel toont beide prijzen (746 in de pocket, 749.08 middaguur).
Rentes: de curve daalde met de groei-indicatoren
De exacte SQL achter elk getal
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
)Treasuries daalden samen met de groei-indicatoren. De 1-jarige steeg met 11 basis points naar 4.06%, de 10-jarige met 7 naar 4.55%, en de 30-jarige met 6 naar 5.05% — boven de vijfprocentgrens. De 2s10s spread bleef staan op 0.36 procentpunt (een verandering van 1 basis points): een grotendeels parallelle beweging in plaats van een herstructurering.
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-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_articles79 dividend records gingen ex-dividend, 7 splits werden uitgevoerd — 5 daarvan waren reverse splits, de consolidaties onder de dollar die fictieve driecijferige "winsten" op een ongewijzigde tape laten zien, tegenover 2 forward — en 1 nieuwe beursnoteringen kwamen binnen. De SEC index registreerde 2433 filings: 463 Form 4s, 173 8-Ks. Onze nieuwsfeed bevatte 215 artikelen van 3 uitgevers; de meest besproken naam was NVDA met 17 artikelen, 4 meer dan de volgende naam — dezelfde NVDA die in de groene cijfers sloot ondanks de rode dag van de sector. De feed bevatte 0 artikelen over CRNX, de grootste stijger op de tape — de aandacht van één feed, niet van de wereldmedia.
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-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'7 juli was een volledige sessie, geen vroege sluiting: de bars van SPY lopen van 04:00 tot 19:59 New York tijd met exact 390 regular-window bars, en de feestdagtabel bevat 0 rijen voor deze datum. De volgende geplande sluiting is Labor Day, 2026-09-07.
Databemerkingen
- Dollar volume is een proxy per minuut — de som van de prijs bij sluiting vermenigvuldigd met het volume per minuut-bar, tijdens reguliere handelsuren.
- De verdeling tussen gap-versus-grind wordt gemeten vanaf de eerste bar van de reguliere sessie van elk aandeel (de open) ten opzichte van de laatste reguliere sluiting van de voorgaande sessie; het resterende deel betreft de beweging van open naar sluiting binnen 7 juli.
- De gesynchroniseerde ochtend-lows zijn gecontroleerd tegen nabijgelegen bars op het moment van schrijven — elke low wordt gevolgd door de omliggende minuten, niet door een enkele print; geen enkele waarde vereiste een anomalie-markering. Indien een extreme waarde in meer dan één minuut werd geprint, toont het paneel de vroegste betreffende bar (een deterministische tie-break).
- Eén vermelding met een hergebruikt symbool is uitgesloten van de volume-leaderboards en de nieuwssectie in afwachting van verificatie van de entiteit; de eigen post bevat de bewijslast.
- Quoted-spread statistieken sluiten ongeldige quotes uit (eenzijdige of gecrossed NBBO-records), en elk spread-paneel telt het aantal uitvallende waarden in een eigen kolom. De "Update-weighted average spread" berekent het gemiddelde van de quoted width over elke geldige NBBO-update — drukke momenten wegen zwaarder; het is een quoting-statistiek, geen kosten per transactie.
- De option quotes van 7 juli zijn verschenen nadat dit bericht voor het eerst werd gepubliceerd.
cache_options_quotesheeft de langste ingest-lag van het warehouse, waardoor de eerste editie een zero-row receipt leverde waar de options-quote panelen nu staan. De rijen zijn binnengekomen, maar de zero-row bound faalde bij regeneratie; deze revisie bevat de 8.69 miljard updates van de sessie zelf. De equity-quote tape was vanaf het begin volledig: de laatste update van 7 juli staat op ET-minuut 1199, met 77.13 miljoen updates in de laatste reguliere uren (ontvangstkolommen in het quote-tape paneel). - Option quoted widths worden gemeten near the money. Een mediaan per update over alle vermelde contracten van dezelfde dag is een compositiestatistiek: deep in-the-money contracten hebben een quoted width van dollars, far out-of-the-money contracten hebben een quoted width van pennies, en welke contracten gedurende de sessie nieuwe quotes geven. De pocket-versus-midday vergelijking beperkt zich tot strikes binnen $2 van de gemiddelde prijs van SPY in elk venster, en beide prijzen zijn kolommen in het paneel. Ongeldige option quotes (eenzijdig of gecrossed) worden in dat paneel geteld en niet stilzwijgend verwijderd.
- De Treasury print voor 7 juli is later verwerkt — de eerste editie bevatte een melding van vertraging; de tripwire werd geactiveerd op 8 juli toen de print binnenkwam, en deze revisie bevat de daadwerkelijke curve.
Methodologie
- De periode betreft één handelsessie (1 sessie, geverifieerd op basis van geobserveerde bars en de feestdagkalender — nooit aangenomen). Tijdstempels worden opgeslagen in UTC en binnen de queries omgezet naar de tijd van New York. "Close" betekent de laatste minuut-bar van de reguliere sessie; dagwijzigingen vergelijken 7 juli met 6 juli, opeenvolgende handelsessies.
- Decimale kolommen worden omgezet naar 64-bit floats vóór ratio-berekeningen; de expiries van opties worden opnieuw geparsed vanuit de OCC ticker (de eigen expiry-kolom van de tabel is defect). Alle panels worden eenmalig tijdens het schrijven gelezen via het beveiligde read-only pad. Status van het warehouse per 8 juli 2026.
- De quote-tape sectie is toegevoegd in de revisie van 8 juli (dezelfde revisie die de treasury lag receipt verving door de landed print), en de optie-quote panels zijn herschreven zodra de NBBO-rijen van 7 juli beschikbaar waren. De generatie is ontworpen als een batch job: het SPY optie-quote panel scant enkele honderd miljoen NBBO-records, terwijl de tape-size counts de rijtotalen van de dagpartities zelf lezen. Dit is de methode waarmee een tabel met miljarden rijen per sessie een count in minder dan een seconde uitvoert.
Elk panel is een resultaat van een opgeslagen query — grafiek, tabel en SQL vormen één object. Plak elk van deze elementen in de Strasmore terminal om ze aan te passen. Vorige sessie: 6 juli.