Strasmore Research
Marktoverzichten Matt ConnorDoor Matt Connor · Bijgewerkt 2026-08-08

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.

QuerySPY / QQQ / DIA / IWM: 8 juli versus slotkoers 7 juli, reguliere handelsuren
tickervorige slotkoersopeningslotkoersgap (%)intraday (%)verandering (%)daghoogdaglaagvolume (m)
DIA528.48523.34522.72-0.97-0.12-1.09524.46520.033.2
IWM296.2294.03293.47-0.73-0.19-0.92295.1290.6820.3
QQQ709.5704.95711.3-0.640.90.25712.26700.9129.5
SPY747.66743.16745.31-0.60.29-0.31746.15739.5135.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 ticker
Voer het zelf uit

De 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.

QuerySPY / QQQ dagbeweging in trailing context (close-over-close, ~22 sessies)
QQQ close-over-close (%)QQQ abs. bewegingsrangQQQ sessies vergelekenSPY open-to-close (%)SPY abs. bewegingsrangSPY sessies vergelekeneerste sessie
0.2521220.2916222026-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
    )
)
Voer het zelf uit

Marktbreedte: nog negatiever met een twee-op-één verhouding dan de dag ervoor

QueryLiquid-tape breadth: aandeel stijgers 8 juli versus 7 juli, $1M-traded filter
stijgersdalersongewijzigdliquide tickersbeide sessies verhandeldverwijderd via liquiditeitsfilterstijgers (%)jul7 stijgers (%)
1821426074615511439528429.633.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
)
Voer het zelf uit

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.

QueryVeertien chip-namen: slotkoers voorgaande dag, dagslot, dagbereik, dollar volume, low/high minuut ET
tickervorige slotkoersslotkoersverandering (%)range (%)daglaagdaghooglaagste minuut EThoogste minuut ETdagomzet ($ bn)
AMD516.57517.260.134.81498.15522.986835878.93
AVGO370.79388.674.824.91376.89395.095707789.39
INTC110.5110.27-0.215.5104.41110.497139579.48
KLAC216.52221.032.084.2214.3223.46859291.79
LRCX326.12332.932.094.53322.72337.55705872.1
MRVL230.81231.660.375.12224.98236.795705934.57
MU938.95949.371.116.24900.4195957060032.02
NVDA196.93204.143.665.13195.06205.1657093724.17
SNDK1619.261729.46.88.9415901734.6957095916.82
SOXL165.27174.845.7910.82158.87176.755708168.12
SOXS4.824.52-6.22114.464.999295702.97
STX827.4859.683.96.18811.27862.415709593.46
TER343.1351.562.475.6335.06354.276865870.77
WDC532.34550.713.456.91526562.765706003.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 ticker
Voer het zelf uit

12 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).

QueryReceipts: groen/rood tellingen voor 8 juli en 7 juli over dezelfde veertien namen
jul8 groenjul8 roodjul7 groenjul7 roodnvda jul7 %aantal namen
1222120.6714
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
)
Voer het zelf uit

De keerzijde: defensieve waarden en growth mega-caps bleven achter

QueryRotation check: acht namen, defensives, mega-caps, biotech
tickervorige slotkoersopeningslotkoersgap (%)intraday (%)verandering (%)dagomzet ($ bn)
CRNX83.5383.5283.45-0.01-0.08-0.11.38
CVX173.97176.8175.921.63-0.51.121.36
JNJ267.29268.6263.360.49-1.95-1.471.38
LLY1235.641221.11215.87-1.18-0.43-1.62.55
META615.57614.38603.03-0.19-1.85-2.045.86
TSLA402.88399.38393.92-0.87-1.37-2.2211.71
UNH428.18427.14425.56-0.24-0.37-0.611.28
XOM141.65143.44140.961.26-1.73-0.492.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 ticker
Voer het zelf uit

De 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

QueryTop 6 naar verhandelde dollars, top 4 naar verhandelde aandelen: 8 juli reguliere handelsuren
leaderboardtickerdollar volume (mrd)aandelen (mln)implied avg price% van board leader
by dollars tradedMU32.0234.1939100
by dollars tradedSPY26.4935.6744.182.7
by dollars tradedNVDA24.17120.5200.5875.5
by dollars tradedQQQ20.929.5708.4765.3
by dollars tradedSNDK16.8210.11665.3552.5
by dollars tradedTSLA11.7129.7394.2836.6
by shares tradedSOXS2.97636.54.67100
by shares tradedTZA1.37334.84.0952.6
by shares tradedBITO2.29272.48.4142.8
by shares tradedAAL2.79169.316.4826.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 DESC
Voer het zelf uit

MU 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

QueryAandelen per 30-minuten ET bucket, reguliere handelsuren, met % van de grootste bucket van de dag
ET tijdaandelen (mrd)% van grootste bucket
09:301.9889.9
10:001.3862.9
10:301.3259.9
11:001.1653
11:301.0145.9
12:000.9342.2
12:300.9242
13:000.7534.1
13:300.7634.5
14:000.7734.9
14:300.7534.3
15:000.941.1
15:302.2100
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_time
Voer het zelf uit

Het 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

QueryOptions tape: prints, contracten, call %, 0DTE aandeel versus dinsdag, top contract
optie prints (mln)contracten (mln)jul7 contracten (mln)call % van volume% 0dtejul7 % 0dtespy regulier slottop1 undtop1 striketop1 typetop1 contractentop1 avg pxtop1 is 0dtetop1 moneyness
10.4463.2661.1355.438.731.2745.31SPY745C6779810.8751-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'
Voer het zelf uit

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

QueryStocks NBBO update count: 8 juli versus 7 juli, met updates van genoemde tickers (miljoenen)
jul8 updates (mln)jul7 updates mdag-op-dag %jul8 spy updates mjul8 qqq updates mjul8 nvda updates mjul8 tsla updates mjul8 mu updates m
530.55492.767.74.936.531.80.720.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'
Voer het zelf uit

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.

QuerySPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: RTH median quoted spread in basis points
tickermediaan spread bps
SPY0.27
QQQ0.71
NVDA1.52
TSLA2.28
AVGO3.63
MU5.66
SNDK12.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 ASC
Voer het zelf uit

Over 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.

QuerySPY's RTH average quoted spread in trailing-month context
jul8 avg spread centstightness rankvergeleken sessiesstrakste sessie centswijdste sessie centseerste sessieongeldige quotes verwijderd
2.20211221.8092.8652026-06-0542783
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
)
Voer het zelf uit

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.

QueryOptions NBBO tape: totale updates versus de stock tape, plus het SPY root slice
jul8 options bnoptions to stock ratiojul8 spy options m
9.6218.1422
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_m
Voer het zelf uit

De 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

QueryTreasury yields: 8 juli versus 7 juli, opgenomen looptijden + 2s10s
curve pointjul8 yield pctsessiewijziging bp
1 month3.67-2
3 month3.871
1 year4.060
2 year4.212
5 year4.314
10 year4.561
30 year5.061
2s10s spread0.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
)
Voer het zelf uit

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

QueryEx-divs, splits, SEC filings, news attention
ex-dividend recordsuitgevoerde splitsreverse splitsforward splitsfil 424b2fil form4fil 8kfil totaalnieuwsartikelennieuwsbronnentop nieuws tickertopnieuws nvoorsprong topnieuws
8110152777516337311923MU170
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_next
Voer het zelf uit

De 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

QuerySession verification: eerste/laatste SPY bar ET, aantal regular-bars, holiday receipts, volgende sluiting
eerste SPY-bar (ET)laatste SPY-bar (ET)SPY-minutenbarsreguliere sessiebarsdagsessiesvakantierijen 8 julidatum volgende sluitingnaam volgende sluiting
04:0019:59919390102026-09-07Labor 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'
Voer het zelf uit

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_aggs voor index- en individuele koersen en volumes, cache_stocks_quotes voor NBBO-counts en genoteerde spreads, cache_options_quotes en options_trades voor 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,000 in 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-keyed argMin/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.

#recap#daily#spy#qqq#semiconductors#market structure