Marktoverzicht 8 juli 2026: de dag in cijfers
Een eendaagse opleving in de chipsector had nauwelijks impact op de index. NVDA steeg voor de tweede dag op rij, terwijl de brede markt een negatieve verhouding van twee op één toonde.
Woensdag 8 juli 2026 was een eendaagse opleving voor de chipsector die nauwelijks effect had op de indexen. SNDK sloot +6.8%, AVGO +4.82%, NVDA +3.66%; een scherpe ommekeer ten opzichte van de chip-uitverkoop van dinsdag, maar de index-ETF's bleven stilstaan: SPY -0.31% en QQQ +0.25%. De brede markt vertoonde een nog negatievere verhouding van twee-op-één dan de dag ervoor: 1821 stijgers tegenover 4260 dalers, een aandeel stijgers van 29.6% na 33.8% in de voorgaande sessie. Elk cijfer hieronder is afkomstig uit een opgeslagen query; vouw een paneel uit voor de exacte SQL.
Het scorebord
Elke wijziging vergelijkt de laatste minuut-bar van de reguliere handelssessie op 8 juli met die van dinsdag 7 juli, opeenvolgende handelssessies. De rijen zijn alfabetisch gerangschikt, zodat elke ETF een vaste positie behoudt.
| ticker | vorige slotkoers | opening | slotkoers | gap (%) | intraday (%) | verandering (%) | daghoog | daglaag | volume (m) |
|---|---|---|---|---|---|---|---|---|---|
| DIA | 528.48 | 523.34 | 522.72 | -0.97 | -0.12 | -1.09 | 524.46 | 520.03 | 3.2 |
| IWM | 296.2 | 294.03 | 293.47 | -0.73 | -0.19 | -0.92 | 295.1 | 290.68 | 20.3 |
| QQQ | 709.5 | 704.95 | 711.3 | -0.64 | 0.9 | 0.25 | 712.26 | 700.91 | 29.5 |
| SPY | 747.66 | 743.16 | 745.31 | -0.6 | 0.29 | -0.31 | 746.15 | 739.51 | 35.6 |
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 openden met een gap naar beneden en bewogen daarna in verschillende richtingen. DIA opende de sessie op -0.97% ten opzichte van het slot van de vorige dag en zakte verder weg, om te eindigen op -1.09%. IWM opende op -0.73% en bleef onder druk staan, met een slotstand van -0.92%. SPY opende op -0.6%, herstelde zich 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 het slot, als enige van de vier in positief terrein.
Was de dag ongebruikelijk?
De open-to-close beweging van de SPY van 0.29% rangschikte als 16 van de 22 voorgaande sessies; een dag in de middenmoot voor de index, geen uiterste. De close-over-close beweging van de QQQ van +0.25% rangschikte als 21 van de 22, een van de kleinste bewegingen van de afgelopen maand voor de QQQ, in lijn met de ingetogen prints van de index.
| QQQ close-over-close (%) | QQQ abs. bewegingsrang | QQQ sessies vergeleken | SPY open-to-close (%) | SPY abs. bewegingsrang | SPY sessies vergeleken | eerste sessie |
|---|---|---|---|---|---|---|
| 0.25 | 21 | 22 | 0.29 | 16 | 22 | 2026-06-05 |
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
)
)Marktbreedte: nog negatiever met een twee-op-één verhouding dan de dag ervoor
| stijgers | dalers | ongewijzigd | liquide tickers | beide sessies verhandeld | verwijderd via liquiditeitsfilter | stijgers (%) | jul7 stijgers (%) |
|---|---|---|---|---|---|---|---|
| 1821 | 4260 | 74 | 6155 | 11439 | 5284 | 29.6 | 33.8 |
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 stijgers (1821) en dalers (4260) bracht het aandeel stijgers op 29.6%, een daling ten opzichte van de 33.8% van de voorgaande sessie, gebaseerd op dezelfde berekening en hetzelfde liquiditeitsfilter voor beide dagen. Van de 11439 fondsen met een slotkoers op beide dagen, vielen 5284 buiten het filter van één miljoen dollar aan verhandeld volume en zijn zij uit de telling uitgesloten. Het door de chipsector geleide herstel en het gemengde slot van de index maskeerden een nog uniformer negatief breed marktbeeld.
De chipsector is krachtig hersteld op hoog volume
De rijen zijn alfabetisch gerangschikt, waardoor elk aandeel een vaste positie behoudt; de vergelijking met dinsdag is vers berekend op basis van de slotkoersen van 7 juli en 6 juli in het onderstaande overzicht van transacties.
| ticker | vorige slotkoers | slotkoers | verandering (%) | range (%) | daglaag | daghoog | laagste minuut ET | hoogste minuut ET | dagomzet ($ bn) |
|---|---|---|---|---|---|---|---|---|---|
| AMD | 516.57 | 517.26 | 0.13 | 4.81 | 498.15 | 522.98 | 683 | 587 | 8.93 |
| AVGO | 370.79 | 388.67 | 4.82 | 4.91 | 376.89 | 395.09 | 570 | 778 | 9.39 |
| INTC | 110.5 | 110.27 | -0.21 | 5.5 | 104.41 | 110.49 | 713 | 957 | 9.48 |
| KLAC | 216.52 | 221.03 | 2.08 | 4.2 | 214.3 | 223.4 | 685 | 929 | 1.79 |
| LRCX | 326.12 | 332.93 | 2.09 | 4.53 | 322.72 | 337.5 | 570 | 587 | 2.1 |
| MRVL | 230.81 | 231.66 | 0.37 | 5.12 | 224.98 | 236.79 | 570 | 593 | 4.57 |
| MU | 938.95 | 949.37 | 1.11 | 6.24 | 900.41 | 959 | 570 | 600 | 32.02 |
| NVDA | 196.93 | 204.14 | 3.66 | 5.13 | 195.06 | 205.16 | 570 | 937 | 24.17 |
| SNDK | 1619.26 | 1729.4 | 6.8 | 8.94 | 1590 | 1734.69 | 570 | 959 | 16.82 |
| SOXL | 165.27 | 174.84 | 5.79 | 10.82 | 158.87 | 176.75 | 570 | 816 | 8.12 |
| SOXS | 4.82 | 4.52 | -6.22 | 11 | 4.46 | 4.99 | 929 | 570 | 2.97 |
| STX | 827.4 | 859.68 | 3.9 | 6.18 | 811.27 | 862.41 | 570 | 959 | 3.46 |
| TER | 343.1 | 351.56 | 2.47 | 5.6 | 335.06 | 354.27 | 686 | 587 | 0.77 |
| WDC | 532.34 | 550.71 | 3.45 | 6.91 | 526 | 562.76 | 570 | 600 | 3.03 |
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 van de veertien chipnamen sloten in het groen, het omgekeerde van de sessie van dinsdag, toen 12 van de veertien in het rood sloten. SNDK voerde de sector aan met +6.8% bij een handelsvolume van 16.82 miljard dollar, op de voet gevolgd door AVGO met +4.82%; de overige opslagbedrijven volgden, STX +3.9%, WDC +3.45%. De 3x-hefboom-ETF SOXL steeg +5.79% en de inverse SOXS daalde -6.22%, in lijn met een herstel van één dag in de onderliggende sector. MU steeg met een bescheidener +1.11%, maar noteerde een handelsvolume van 32.02 miljard dollar, waarmee het de naam met het hoogste dollarvolume in het overzicht was. NVDA sloot +3.66% voor de tweede dag op rij in het groen: het was een van de slechts 2 namen in dit overzicht die tijdens de koersval van dinsdag in het groen sloten (+0.67% op die dag).
| jul8 groen | jul8 rood | jul7 groen | jul7 rood | nvda jul7 % | aantal namen |
|---|---|---|---|---|---|
| 12 | 2 | 2 | 12 | 0.67 | 14 |
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 keerzijde: defensieve waarden en growth mega-caps bleven achter
| ticker | vorige slotkoers | opening | slotkoers | gap (%) | intraday (%) | verandering (%) | dagomzet ($ bn) |
|---|---|---|---|---|---|---|---|
| CRNX | 83.53 | 83.52 | 83.45 | -0.01 | -0.08 | -0.1 | 1.38 |
| CVX | 173.97 | 176.8 | 175.92 | 1.63 | -0.5 | 1.12 | 1.36 |
| JNJ | 267.29 | 268.6 | 263.36 | 0.49 | -1.95 | -1.47 | 1.38 |
| LLY | 1235.64 | 1221.1 | 1215.87 | -1.18 | -0.43 | -1.6 | 2.55 |
| META | 615.57 | 614.38 | 603.03 | -0.19 | -1.85 | -2.04 | 5.86 |
| TSLA | 402.88 | 399.38 | 393.92 | -0.87 | -1.37 | -2.22 | 11.71 |
| UNH | 428.18 | 427.14 | 425.56 | -0.24 | -0.37 | -0.61 | 1.28 |
| XOM | 141.65 | 143.44 | 140.96 | 1.26 | -1.73 | -0.49 | 2.08 |
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 tegengestelde richting ten opzichte van het chipcomplex: TSLA -2.22%, META -2.04%, LLY -1.6%. CVX was de enige waarde in het panel die in het groen sloot, met een stijging van +1.12% na een vroege gap, terwijl XOM +1.26% hoger opende en tegen het slot wegzakte naar -0.49%. De koersontwikkeling op woensdag viel zodoende in tweeën uiteen: chipaandelen stegen, terwijl growth- en defensieve waarden daalden, waardoor de indexen er onveranderd tussenin bleven hangen. (De rijen zijn alfabetisch gerangschikt: CRNX, CVX, JNJ, LLY, META, TSLA, UNH, XOM.)
Waar het kapitaal werd verhandeld
| leaderboard | ticker | dollar volume (mrd) | aandelen (mln) | implied avg price | % van board leader |
|---|---|---|---|---|---|
| by dollars traded | MU | 32.02 | 34.1 | 939 | 100 |
| by dollars traded | SPY | 26.49 | 35.6 | 744.1 | 82.7 |
| by dollars traded | NVDA | 24.17 | 120.5 | 200.58 | 75.5 |
| by dollars traded | QQQ | 20.9 | 29.5 | 708.47 | 65.3 |
| by dollars traded | SNDK | 16.82 | 10.1 | 1665.35 | 52.5 |
| by dollars traded | TSLA | 11.71 | 29.7 | 394.28 | 36.6 |
| by shares traded | SOXS | 2.97 | 636.5 | 4.67 | 100 |
| by shares traded | TZA | 1.37 | 334.8 | 4.09 | 52.6 |
| by shares traded | BITO | 2.29 | 272.4 | 8.41 | 42.8 |
| by shares traded | AAL | 2.79 | 169.3 | 16.48 | 26.6 |
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 was goed voor 32.02B dollar, de zwaarst verhandelde naam op de tape en de enige boven de grens van dertig miljard dollar. SPY (26.49B), NVDA (24.17B) en QQQ (20.9B) volgden, waarbij SNDK met 16.82B en TSLA met 11.71B de lijst met dollarvolumes completeerden. De lijst op basis van het aantal aandelen liet een ander beeld zien: de 3x inverse semiconductor ETF SOXS verhandelde 636.5M aandelen tegen een impliciete gemiddelde prijs van $4.67, wat de dynamiek weerspiegelt van een goedkope 3x-hefboomproduct op een dag met veel beweging in de chipsector.
Het verloop van de handelssessie
| ET tijd | aandelen (mrd) | % van grootste bucket |
|---|---|---|
| 09:30 | 1.98 | 89.9 |
| 10:00 | 1.38 | 62.9 |
| 10:30 | 1.32 | 59.9 |
| 11:00 | 1.16 | 53 |
| 11:30 | 1.01 | 45.9 |
| 12:00 | 0.93 | 42.2 |
| 12:30 | 0.92 | 42 |
| 13:00 | 0.75 | 34.1 |
| 13:30 | 0.76 | 34.5 |
| 14:00 | 0.77 | 34.9 |
| 14:30 | 0.75 | 34.3 |
| 15:00 | 0.9 | 41.1 |
| 15:30 | 2.2 | 100 |
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 klassiek U-vormig verloop: het handelsvolume bij de opening bedroeg 89.9% van het volume in het drukste tijdsblok van de dag en nam gedurende de ochtend af, met een dieptepunt van 34.1% in het tijdslot van 13:00 tot 13:30 uur ET. Het laatste halfuur (15:30 uur ET) was met 2.2B aandelen het drukste moment van de dag; dit was groter dan de 1.98B bij de opening, wat het standaardpatroon is voor een reguliere handelssessie.
De optiehandel
| optie prints (mln) | contracten (mln) | jul7 contracten (mln) | call % van volume | % 0dte | jul7 % 0dte | spy regulier slot | top1 und | top1 strike | top1 type | top1 contracten | top1 avg px | top1 is 0dte | top1 moneyness |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10.44 | 63.26 | 61.13 | 55.4 | 38.7 | 31.2 | 745.31 | SPY | 745 | C | 677981 | 0.875 | 1 | -0.31 |
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 optiehandel registreerde 10.44M prints en 63.26M contracten, wat hoger is dan de 61.13M van dinsdag, berekend op basis van dezelfde handelstape over het tijdsbestek van dinsdag. Calls besloegen 55.4% van het totale volume, een gematigde call-voorkeur. 0DTE-contracten (expiratie op dezelfde dag, 260708) namen 38.7% van het contractvolume voor hun rekening, een stijging ten opzichte van de 31.2% van dinsdag. Het meest verhandelde individuele contract was SPY 745C, met 677981 contracten tegen een gemiddelde prijs van $0.875; dit betreft een expiratie op dezelfde dag die in essentie at the money lag ten opzichte van de reguliere slotkoers van SPY op $745.31.
De koersentape
| jul8 updates (mln) | jul7 updates m | dag-op-dag % | jul8 spy updates m | jul8 qqq updates m | jul8 nvda updates m | jul8 tsla updates m | jul8 mu updates m |
|---|---|---|---|---|---|---|---|
| 530.55 | 492.76 | 7.7 | 4.93 | 6.53 | 1.8 | 0.72 | 0.6 |
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 koersentape verwerkte op 8 juli 530.55 miljoen NBBO-updates, +7.7% ten opzichte van de voorgaande sessie. De 6.53 miljoen updates van QQQ voerden de lijst met genoemde tickers aan, vóór de 4.93 miljoen van SPY. NVDA (1.8 miljoen), TSLA (0.72 miljoen) en MU (0.6 miljoen) completeren de genoemde aantallen.
| ticker | mediaan spread bps |
|---|---|
| SPY | 0.27 |
| QQQ | 0.71 |
| NVDA | 1.52 |
| TSLA | 2.28 |
| AVGO | 3.63 |
| MU | 5.66 |
| SNDK | 12.21 |
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 bedroeg de mediane quoted spread van SPY tijdens de reguliere handelsuren 0.27 basis points, aan de ondergrens van het gebruikelijke voor de meest liquide Amerikaanse ETF. QQQ noteerde op 0.71 basis points, NVDA op 1.52 basis points. De bredere staart van de tabel is voor de namen met een dunnere notering: MU op 5.66 basis points en SNDK op 12.21 basis points.
| jul8 avg spread cents | tightness rank | vergeleken sessies | strakste sessie cents | wijdste sessie cents | eerste sessie | ongeldige quotes verwijderd |
|---|---|---|---|---|---|---|
| 2.202 | 11 | 22 | 1.809 | 2.865 | 2026-06-05 | 42783 |
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 SPY tijdens de reguliere handelsuren van 2.202 cent stond op de 11 plaats van de 22 voorgaande sessies; een dag in de middenmoot wat betreft de krapte van de spread, waarbij de bandbreedte van de afgelopen maand varieerde van 1.809 cent (de krapste) tot 2.865 cent (de wijdste). Geen volatiliteitsgat, geen liquiditeitsevenement, een gewone sessie voor de quoted spread van SPY.
| jul8 options bn | options to stock ratio | jul8 spy options m |
|---|---|---|
| 9.62 | 18.1 | 422 |
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 optietape verwerkte 9.62 miljard NBBO-updates, 18.1× het aantal van de koersentape voor aandelen. Alleen al het segment voor SPY-opties was goed voor 422 miljoen updates tijdens de reguliere handelsuren.
Rentes: de curve bewoog nauwelijks
| curve point | jul8 yield pct | sessiewijziging bp |
|---|---|---|
| 1 month | 3.67 | -2 |
| 3 month | 3.87 | 1 |
| 1 year | 4.06 | 0 |
| 2 year | 4.21 | 2 |
| 5 year | 4.31 | 4 |
| 10 year | 4.56 | 1 |
| 30 year | 5.06 | 1 |
| 2s10s spread | 0.35 | -1 |
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-jaars rente leidde de bewegingen tijdens de sessie met +4 bp; de 2-jaars rente sloot +2 bp hoger, en geen enkele andere looptijd bewoog meer dan 2 bp in welke richting dan ook. Hierdoor bleef de 2s10s spread staan op 0.35% (-1 bp op de dag), binnen de recente bandbreedte. De beperkte rentebeweging ging gepaard met de beperkte beweging van de index.
De kalender van de dag
| ex-dividend records | uitgevoerde splits | reverse splits | forward splits | fil 424b2 | fil form4 | fil 8k | fil totaal | nieuwsartikelen | nieuwsbronnen | top nieuws ticker | topnieuws n | voorsprong topnieuws |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 81 | 1 | 0 | 1 | 527 | 775 | 163 | 3731 | 192 | 3 | MU | 17 | 0 |
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 die dag beperkt: 81 ex-dividendnoteringen, 1 uitgevoerde forward splits en in totaal 3731 SEC-filings (waaronder 775 Form 4-transacties door insiders, 527 424B2-prospectussen en 163 8-K-rapportages). De berichtgeving omvatte 192 artikelen bij 3 uitgevers, waarbij MU met 17 artikelen tot de meest genoemde tickers behoorde. Er sprong geen enkele bekende bedrijfsgebeurtenis uit de dagelijkse stroom; het narratief op de tape werd volledig bepaald door de chipsector zelf.
De sessie, geverifieerd
| eerste SPY-bar (ET) | laatste SPY-bar (ET) | SPY-minutenbars | reguliere sessiebars | dagsessies | vakantierijen 8 juli | datum volgende sluiting | naam volgende sluiting |
|---|---|---|---|---|---|---|---|
| 04:00 | 19:59 | 919 | 390 | 1 | 0 | 2026-09-07 | Labor Day |
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 volledig venster voor extended-hours, met de eerste SPY-bar om 04:00 ET en de laatste om 19:59 ET. Er waren 390 minutenbars tijdens de reguliere handelsuren en 1 in het venster (geen halve dag; de vakantiekalender bevat geen rij voor deze datum). De eerstvolgende geplande sluiting is Labor Day op 2026-09-07.
Datatoelichtingen
Alle tijdstempels zijn opgeslagen in UTC; de reguliere handelsuren op 8 juli 2026 zijn gefilterd als sip_timestamp / window_start tussen 2026-07-08 13:30:00 en 2026-07-08 20:00:00, wat overeenkomt met 09:30 tot 16:00 uur New Yorkse tijd. Decimale koersen worden naar Float64 omgezet vóór enige deling. Benoemde per-ticker panelen (scoreboard, chip complex, rotatie) zijn alfabetisch op ticker gerangschikt, zodat elke verwijzing in de tekst naar een vaste rij wijst; leaderboards (volume, quote snapshot) zijn gerangschikt op waarde, en elke positionele claim die zij maken is gecodeerd als een validatiegrens voor die positie. Elke vergelijking op dinsdag op deze pagina, het aandeel in de marktbreedte, het aantal groene/rode chips, optiecontracten en het aandeel 0DTE, het aantal quote-updates, wordt vers berekend vanaf 7 juli (en 6 juli waar een slotkoers van de voorgaande dag nodig is) in hetzelfde queryblok en nooit overgenomen uit een eerder bericht.
Volledige datatoelichtingen
Het breedtepaneel telt namen met een slotkoers tijdens reguliere handelsuren op beide sessies en ten minste één miljoen dollar verhandeld op de gemeten dag; het aantal uitgesloten namen (5284 van 11439) maakt de uitgesloten staart zichtbaar. De day_low/day_high timingkolommen van het chip complex gebruiken het argMin/argMaxIf(..., (value, timestamp)) patroon, zodat gelijke standen deterministisch worden opgelost. De labels voor de volume-smile buckets zijn ET (%H:%i), berekend met toTimeZone uitsluitend in de SELECT-lijst. Het optie-tape paneel detecteert expiratie op dezelfde dag met de OCC-ticker substring match (substring(ticker, length(ticker) - 14, 6)) in plaats van options_trades.expiration_date (die kolom is defect, conform de geldende preflight-notitie). Symbolen in KNOWN_AMBIGUOUS_TICKERS zijn uitgesloten in de volume-leaders en news-attention SQL, zodat "meest X" vermeldingen doorvallen naar verifieerbare namen. De top-news ticker gebruikt een deterministische tie-break (argMax(t, (n, t))); top_news_lead_over_next = 0 markeert een gelijke stand, wat de reden is dat de tekst spreekt van "onder de meest genoemde". Het Treasury-paneel voegt twee dagelijkse snapshot-rijen samen; een ontbrekende snapshot voor een van beide data levert nul rijen op en de row_count grens houdt het bericht vast. De aantallen voor stocks-quote en options-quote zijn scans van de volledige tape over dagpartities; aantallen voor genoemde tickers worden gerapporteerd in miljoenen om overeen te komen met hun kolomeenheden. Spread-medianen gebruiken quantileExact (deterministisch); het trailing spread paneel is een gemiddelde (avgIf), en wordt als zodanig gelabeld.
Methodologie
- Bron van marktdata: consolidated tape,
delayed_stocks_minute_aggsvoor index- en individuele koersen en volumes,cache_stocks_quotesvoor NBBO-counts en genoteerde spreads,cache_options_quotesenoptions_tradesvoor de optie-tape. - Tijdzoneverwerking: alle opgeslagen tijdstempels zijn in UTC; ET-kloklabels worden uitsluitend in SELECT-lijsten berekend met
toTimeZone(..., 'America/New_York'); WHERE-clausules gebruiken onbewerkte UTC-literals. - Venster reguliere handelsuren: 13:30–20:00 UTC, geverifieerd aan de hand van geobserveerde SPY-minuutbars (het sessieverificatiepaneel), niet op basis van kalenderrekenkunde.
- Definitie van spread:
(ask - bid) / midpoint × 10,000in basis points op geldige tweezijdige quotes voor de snapshot; het paneel voor de afgelopen maand toont een gemiddelde breedte in centen, gelabeld als gemiddelde. - Vergelijkingen met voorgaande sessies: berekend in-query vanaf 7 juli (en 6 juli voor de dag-op-dagvergelijking van dinsdag), nooit overgenomen uit een vorig bericht.
- Deterministische aggregaten:
quantileExact, tuple-keyedargMin/argMax, en een deterministische nieuws-tie-break voor stabiele regeneraties. - Warehouse as-of datum: 10 juli 2026 (T+2 voor de periode); de tapes van beide sessies zijn op deze diepte volledig ingeladen.
Cross-links: Recap 7 juli 2026, optiehandelskosten, basisprincipes van de bid-ask spread, 0DTE opties, en relatief volume.