Markt terugblik 30 juli 2026: de dag in cijfers
Marktterugblik van 30 juli 2026: indexscorebord, breadth, sector spread, options flow, quote tape, rates en kalender, volledig gebaseerd op opgeslagen query’s.
Deze marktterugblik voor donderdag 30 juli 2026 beschrijft de volledige sessie op basis van opgeslagen query’s: de verandering van SPY ten opzichte van de vorige slotkoers kwam uit op 1.68%, het aandeel stijgers in de liquide markt op 63.5% en op de optiemarkt werden 67.06 miljoen contracten uitgevoerd. Elk hieronder weergegeven tijdvenster is aan beide zijden gekoppeld aan expliciete datums. Als u de SQL van een paneel opnieuw uitvoert, krijgt u dezelfde cijfers.
Het scorebord
Elke verandering vergelijkt de laatste minuutbar van de reguliere sessie van 30 juli met die van woensdag 29 juli, dus opeenvolgende handelsessies. De rijen staan alfabetisch, zodat elke ETF een vaste positie behoudt.
De exacte SQL achter elk getal
WITH prior AS (
SELECT ticker, argMax(close, window_start) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 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-30 13:30:00' AND window_start < '2026-07-30 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 tickerDIA bewoog 1.19%, IWM 1.37%, QQQ 3.34% en SPY 1.68% naar een slotkoers van $741.73. Elke rij splitst de beweging op in twee delen: SPY opende 0.9% ten opzichte van het slot van woensdag en bewoog van opening tot sluiting 0.77%. De overnight-beweging en de intraday-beweging hoeven niet overeen te komen. De verdeling daartussen is het eerste kenmerk van een sessie.
Was de dag ongebruikelijk?
Het cijfer van één sessie zegt weinig zonder de onderliggende verdeling. Daarom wordt de dag volgens dezelfde logica gerangschikt binnen de eigen voorafgaande maand.
De exacte SQL achter elk getal
SELECT
round(anyIf(oc_pct, d = toDate('2026-07-30')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-30'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-30'))) + 1 AS spy_abs_move_rank,
count() AS spy_sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-30 13:30:00')
AND window_start < toDateTime('2026-07-31 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)De beweging van SPY van opening tot sluiting van 0.77% stond op plaats 3 van 22 voorafgaande sessies, gerangschikt naar absolute omvang, binnen een periode die teruggaat tot 2026-06-30. De ranglijst telt hoeveel andere sessies binnen die periode een grotere beweging lieten zien, plus één. De eerste plaats staat dus voor de grootste beweging van de voorafgaande maand.
Marktbreedte
Een indexniveau is één getal. Marktbreedte telt hoeveel aandelen dezelfde richting volgden.
De exacte SQL achter elk getal
SELECT
countIf(c30 > c29 AND liquid) AS advancers,
countIf(c30 < c29 AND liquid) AS decliners,
countIf(c30 = c29 AND liquid) AS unchanged,
countIf(liquid) AS liquid_tickers,
countIf(NOT liquid) AS dropped_by_liquidity_filter,
round(100.0 * countIf(c30 > c29 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
SELECT ticker, c29, c30, dv30 >= 1000000 AS liquid
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv30
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
GROUP BY ticker
HAVING c29 > 0 AND c30 > 0
)
)Van de 5960 namen die tijdens de reguliere handelsuren een omzetdrempel van één miljoen dollar overschreden, sloten 3782 boven het slot van woensdag en 2122 eronder. Het aandeel stijgers kwam daarmee uit op 63.5%. De filter liet 5492 minder liquide namen buiten beschouwing; die zijn hier meegeteld en niet stilzwijgend verwijderd.
De mega-caplijst
Dezelfde acht mega-capnamen verschijnen in elke sessie, alfabetisch gerangschikt zodat elke naam zijn eigen rij behoudt. Een vaste basket is het uitgangspunt: de lezer leert de rijen kennen en geen enkele winnaar wordt achteraf redactioneel geselecteerd.
De exacte SQL achter elk getal
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-30 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-30 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
AND ((window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 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,
day_dollar_bn
FROM per_name
ORDER BY tickerAAPL bewoog -1.24%, META -8.17%, MSFT 15.06% en NVDA 2.67% bij een omzet van 19.63 miljard dollar tijdens de reguliere handelsuren, terwijl TSLA op 3.53% uitkwam. De dollarkolom laat zien welk deel van de tape deze acht namen zelfstandig vertegenwoordigen; het breadth-panel hierboven laat zien in hoeverre de rest van de markt met hen meeging.
De grootste koersbewegingen van de dag
Voor beide borden is een omzet van vijf miljoen dollar tijdens de reguliere handelsuren vereist. Namen waarvan de split tussen de twee gemeten slotkoersen werd uitgevoerd, worden uitgesloten. Ook wordt één opnieuw gebruikt symbool uitgesloten op basis van de ambiguïteitscontrole die in de notities wordt beschreven.
De exacte SQL achter elk getal
SELECT ticker, board, day_pct, day_dollar_m
FROM (
SELECT 'gainers' AS board, ticker, round((c30 / c29 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-29' AND execution_date <= '2026-07-30')
AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
GROUP BY ticker
HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
)
ORDER BY day_pct DESC
LIMIT 8
UNION ALL
SELECT 'decliners' AS board, ticker, round((c30 / c29 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-29' AND execution_date <= '2026-07-30')
AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
GROUP BY ticker
HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
)
ORDER BY day_pct ASC
LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESCDe grootste stijger op het bord, CYCU, steeg met 489.5% bij een verhandelde waarde van 474.4 miljoen dollar. De sterkste daler, IREZ, noteerde -61.2% bij een omzet van 90.8 miljoen. Deze pagina registreert de omvang en de receipts, maar verbindt daar geen verklaring aan.
Sectorale spreiding
De elf SPDR-select-sectorfondsen, het slot van 30 juli ten opzichte van dat van 29 juli, gerangschikt van best naar slechtst. De samenstelling van de mand is vastgesteld en staat vast; het gaat niet om een classificatie van een dataleverancier.
De exacte SQL achter elk getal
SELECT sector, day_pct, round(max(day_pct) OVER () - day_pct, 2) AS points_behind_best
FROM (
SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
round((c30 / c29 - 1) * 100, 2) AS day_pct
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-30 00:00:00') AS c29,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 00:00:00') AS c30
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND ((window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'))
GROUP BY ticker
HAVING c29 > 0 AND c30 > 0
)
)
ORDER BY day_pct DESCTechnology voerde de ranglijst aan met 5.52%, terwijl Communications onderaan stond op -2.69%, 8.21 procentpunt lager. Die spread vormt de sectorale spreiding van de dag: een markt waarin alle elf fondsen binnen één punt eindigen, ziet er heel anders uit dan een markt waarin de uitslagen over meerdere punten uiteenlopen.
Waar de dollars werden verhandeld
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
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-30 13:30:00' AND window_start < '2026-07-30 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-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESCMU voerde het dollaroverzicht aan met een omzet van 43.29 miljard tijdens de reguliere handelstijden. MSFT volgde met 42.56 miljard. Het aandelenoverzicht beantwoordt een andere vraag: CYCU stond bovenaan met 544 miljoen aandelen tegen een impliciete gemiddelde prijs van $0.86. Het dollarvolume laat zien waar de aandacht van de markt ligt. Het aandelenvolume laat zien hoe vaak er wordt gehandeld. De variant van deze maatstaf per naam is relatief volume.
De options tape
De exacte SQL achter elk getal
WITH
(
SELECT (strike, typ, vol_m, is_0dte)
FROM (
SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
if(substring(ticker, length(ticker) - 14, 6) = '260730', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
AND underlying_symbol = 'SPY'
GROUP BY ticker
ORDER BY vol_m DESC, strike ASC
LIMIT 1
)
) AS top_spy,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
) AS spy_regular_close,
(
SELECT round(toFloat64(sum(size)) / 1e6, 2)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
) AS jul29_contracts_m,
(
SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260729') / sum(size), 1)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
) AS jul29_pct_0dte
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
jul29_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) = '260730') / sum(size), 1) AS pct_0dte,
jul29_pct_0dte,
spy_regular_close,
top_spy.1 AS top_spy_strike,
top_spy.2 AS top_spy_type,
top_spy.3 AS top_spy_contracts_m,
top_spy.4 AS top_spy_is_0dte,
round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'De options tape registreerde 10.93 miljoen transacties voor 67.06 miljoen contracten, tegenover 66.84 miljoen op woensdag. Calls waren goed voor 54.6% van het contractvolume. Contracten die in dezelfde sessie afliepen, de groep met nul dagen tot expiratie, waren goed voor 25.3%, tegenover 33.1% op woensdag. Dat ritme wordt bepaald door het tijdstip van expiratie. Het drukst verhandelde SPY-contract was de 740 C, met 0.56 miljoen contracten. De strike lag -1.73 dollar van de reguliere slotkoers van SPY op $741.73. Dit is gemeten als strike minus slotkoers.
De quote-tape
De quotegegevens zijn de schaarste dataset van deze desk en worden elke sessie gemeten. Ook gewone dagen worden geregistreerd.
De exacte SQL achter elk getal
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / 1e6, 2) AS jul30_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / 1e6, 2) AS jul29_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / countIf(toDate(sip_timestamp) = toDate('2026-07-29')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'SPY') / 1e6, 2) AS jul30_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'QQQ') / 1e6, 2) AS jul30_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'NVDA') / 1e6, 2) AS jul30_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'De stock-quote-tape bevatte 560.75 miljoen NBBO-updates, tegenover 722.65 miljoen op woensdag. Dat is een verandering van -22.4% op dagbasis. SPY noteerde 5.55 miljoen updates, QQQ 6.75 miljoen en NVDA 2.39 miljoen.
De exacte SQL achter elk getal
SELECT ticker,
round(quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
round(count() / 1e6, 2) AS quote_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
AND sip_timestamp >= '2026-07-30 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY tickerDe mediane quoted spread van SPY tijdens reguliere handelsuren bedroeg 0.27 basis points van de mid. Voor QQQ was dat 0.59 en voor NVDA 1.03. De laatste twee kolommen vormen de disclosure: one-sided en crossed quotes worden per naam geteld en afzonderlijk gehouden van de mediaan, in plaats van stilzwijgend te worden verwijderd. Een crossed quote, waarbij de bid boven de ask ligt, is een normaal artefact van een geconsolideerde feed die op nanoseconde-niveau uit vele handelsplatformen wordt samengesteld.
De exacte SQL achter elk getal
SELECT round(anyIf(spread_bps, d = toDate('2026-07-30')), 2) AS jul30_median_spread_bps,
arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-30')), groupArrayIf(spread_bps, d != toDate('2026-07-30'))) + 1 AS rank_tightest,
count() AS sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(sip_timestamp) AS d,
quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00'
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)Vergeleken met elke sessie in juli volgens identieke logica kwam de mediane spread van SPY van 0.27 basis points uit op 19 van 21, geteld vanaf de krapste spread, binnen een periode die begon op 2026-07-01. Op een rustige tape is dat precies het doel van dit panel: een gewone liquiditeitsdag is een bevinding die wordt gepubliceerd en afgebakend.
De exacte SQL achter elk getal
WITH
(SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_options_rows,
(SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_stock_quote_rows
SELECT
round(jul30_options_rows / 1e9, 2) AS jul30_options_bn,
round(jul30_options_rows / jul30_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-30 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00') / 1e6, 0) AS jul30_spy_options_mDe options-NBBO-tape omvatte 10.32 miljard updates, 18.4 keer zoveel als de stock-quote-tape. Alleen al de SPY-root kwam tijdens reguliere handelsuren uit op 441 miljoen updates.
Rentes
De exacte SQL achter elk getal
SELECT toString(date) AS date,
round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-27' AND date <= '2026-07-30'
ORDER BY dateHet bestand van Treasury loopt ongeveer één sessie achter op de markt. Dit paneel toont daarom de uitgevoerde trades die het bevat: 4 gedateerde rijen in het venster. De meest recente rij, gedateerd 2026-07-30, zette de tweejaarsrente op 4.23%, de tienjaarsrente op 4.68% en de dertigjaarsrente op 5.21%. De spread tussen de tweejaars- en tienjaarsrente bedroeg 45 basis points.
De kalender achter de handelsdag
De exacte SQL achter elk getal
WITH
(
SELECT (argMax(t, (n, t)), max(n))
FROM (
SELECT t, count() AS n
FROM (
SELECT arrayJoin(tickers) AS t
FROM global_markets.stocks_news
WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news,
(
SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date = '2026-07-30'
) AS fil
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-30') AS ex_dividend_records,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-30') AS listings,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00') AS news_articles,
(SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00') AS news_publishers,
top_news.1 AS top_news_ticker,
top_news.2 AS top_news_n,
fil.1 AS fil_total,
fil.2 AS fil_filers,
fil.3 AS fil_form4,
fil.4 AS fil_8k,
fil.5 AS fil_424b2,
fil.6 AS fil_10q200 dividendregistraties gingen op 30 juli ex-dividend, 3 omgekeerde en 3 reguliere splits werden uitgevoerd en 3 nieuwe listings kwamen op de tape. De nieuwsfeed bevatte 173 artikelen van 2 uitgevers. Daarvan was NVDA de meest besproken ticker in het venster van deze feed, met 11 artikelen. De dagelijkse EDGAR-index bevat voor deze datum 5544 filings van 2743 verschillende indieners: 745 insider-rapporten in Form 4, 460 actuele 8-K-rapporten, 1426 prijsbijlagen bij 424B2-documenten en 252 kwartaalrapporten op Form 10-Q. Deze index wordt volgens een eigen schema bijgewerkt. Dit paneel toont wat de index op het moment van genereren bevat.
Op de agenda
Lees de komende twee sessies vanuit dezelfde tabellen en kijk daarbij bewust voorbij de periode. Vrijdag 31 juli is volgens de kalender de laatste handelsdatum van de maand.
De exacte SQL achter elk getal
SELECT
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-31' AND date <= '2026-08-03' AND status != 'open') AS closures_next_two_sessions,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-31' AND ex_dividend_date <= '2026-08-03') AS exdiv_records_next_two_sessions,
(SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-31' AND ex_dividend_date <= '2026-08-03') AS household_exdivs,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-31' AND execution_date <= '2026-08-03') AS splits_next_two_sessions,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_thu_volume,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-30') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'De feestdagentabel toont 0 sluitingsdagen op vrijdag 31 juli en maandag 3 augustus. 544 dividendrecords gaan op die twee sessies ex-dividend, waarvan 0 betrekking hebben op tien gecontroleerde bekende huishoudnamen. Daarnaast staan 14 splits gepland voor uitvoering. Van het optievolume van donderdag had 26.7% al betrekking op contracten die vrijdag 31 juli expireren. De meest recente beschikbare settlement van short interest is 2026-07-15. Dit bestand wordt met voldoende vertraging gepubliceerd om een eigen toelichting te rechtvaardigen.
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,
countIf(window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-30') AS jul30_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-30' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-30' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-30 00:00:00' AND window_start < '2026-07-31 00:00:00'Een volledige reguliere sessie: de eerste SPY-bar om 04:00 ET, de laatste om 19:59 ET, 390 bars tijdens reguliere handelsuren, 1 sessie in het venster en 0 feestdagregels voor de datum. De eerstvolgende geplande sluiting is Labor Day op 2026-09-07.
Veelgestelde vragen
Hoe presteerde de aandelenmarkt op donderdag 30 juli 2026?
SPY veranderde 1.68% van slotkoers tot slotkoers naar $741.73, met QQQ op 3.34%, DIA op 1.19% en IWM op 1.37%. Onder de liquide namen steeg 3782 en daalde 2122.
Welke sector voerde op 30 juli 2026 de ranglijst aan?
Technology, op 5.52%, gemeten over de elf SPDR-select-sectorfondsen. De zwakste van de elf, Communications, noteerde -2.69%.
Hoe actief was de optiemarkt op 30 juli 2026?
67.06 miljoen contracten werden verhandeld, tegenover 66.84 miljoen in de vorige sessie. Contracten met afloop op dezelfde dag waren goed voor 25.3% van het volume en calls voor 54.6%.
Welk aandeel vertegenwoordigde op 30 juli 2026 het grootste dollarvolume?
MU, met een dollarvolume van 43.29 miljard tijdens de reguliere handelsuren, vóór MSFT met 42.56 miljard.
Datatoelichting
De vorige dagelijkse editie is 29 juli 2026, en het wekelijkse overzicht behandelt de week daarvoor. Benoemde panels per ticker zijn alfabetisch gerangschikt, zodat verwijzingen in de tekst naar vaste rijen wijzen. Ranglijsten en mover-borden zijn op waarde gerangschikt; elke positionele bewering daarin is vastgelegd als een sanity bound. De mega-cap-basket en de sectorbasket met elf funds zijn vastgelegde sets en geen classificaties van een vendor. Voor de mover-borden geldt een turnover-drempel van vijf miljoen dollar tijdens reguliere handelsuren. Namen waarvan de split tussen de twee gemeten slotstanden is uitgevoerd, worden uitgesloten. Ook wordt één hergebruikt symbool uitgesloten op grond van de interne ambiguïteitsregel, zodat een callout altijd naar een verifieerbare naam verwijst. De quote-panels tellen per naam eenzijdige en crossed quotes, in plaats van deze stilzwijgend te verwijderen. Het bestand van Treasury en de dagelijkse EDGAR-index worden volgens hun eigen schema aangeleverd. Daarom rapporteren die panels wat zij bevatten, zonder uit te gaan van tijdige aanlevering. Hier verschijnt geen implied-volatility-index. Deze series zijn niet voor deze warehouse gelicentieerd. Volatility wordt daarom rechtstreeks uit de tape afgeleid aan de hand van ranges, het aandeel van same-day options en het quote-gedrag.
Methodologie
- Bron van marktdata: geconsolideerde tape.
delayed_stocks_minute_aggsvoor prijzen en volumes,options_tradesvoor de options tape,cache_stocks_quotesencache_options_quotesvoor de NBBO-panelen. - Slotkoers: de laatste minuutbar van de reguliere sessie, nooit een veronderstelde print om 16:00 en nooit een print buiten de reguliere handelsuren.
- Tijdzoneverwerking: alle opgeslagen timestamps staan in UTC; WHERE-clausules gebruiken onbewerkte UTC-literals en
toTimeZoneverschijnt alleen in SELECT-lijsten voor ET-labels. - Sessiecontrole: op basis van de feestdagentabel en geobserveerde bars, nooit uitsluitend op basis van de kalender.
- Vergelijkingen met de vorige sessie: in de query berekend vanaf 29 juli, nooit overgenomen uit een eerder bericht.
- Decimalen: prijs-, size- en volumekolommen worden vóór elke deling of vermenigvuldiging naar Float64 geconverteerd.
- Deterministische aggregaties: overal exacte quantielen en tie-breaks op basis van tuple-sleutels; elke bewering over volgorde of teken in de tekst is vastgelegd als sanity bound.
- As-of-datum van het warehouse: 1 augustus 2026, twee dagen na de sessie, aan de rand van de gebruikelijke ingest-lag van één tot twee dagen van de tape; de bovenstaande begrensde receipts houden het bericht in stand als bij het genereren een dataset ontbreekt.
Kruisverwijzingen: de vorige dagelijkse recap, de wekelijkse recap, wanneer options expireren, wat een bid-ask spread is en de spread tussen twee- en tienjarige Treasuries.
Elke bovenstaande query draait ongewijzigd op de Strasmore-terminal als u een window naar een andere sessie wilt verplaatsen.