Marktoverzicht 29 juli 2026: de dag in cijfers
Marktoverzicht van 29 juli 2026 met indexscorebord, breedte, sector spread, options flow, rates en calendar. Bekijk alle query-onderbouwde cijfers.
Deze marktterugblik voor woensdag 29 juli 2026 leest de volledige sessie uit opgeslagen queries: de verandering van SPY ten opzichte van de vorige slotkoers kwam uit op -1.52%, het aandeel stijgers in de liquide markt op 27.2% en op de options tape werden 66.84 miljoen contracten uitgevoerd. Elk hieronder weergegeven tijdvenster is aan beide kanten aan expliciete datums gekoppeld. Bij het opnieuw uitvoeren van de SQL-query van een paneel komen dezelfde cijfers terug.
Het scorebord
Elke verandering vergelijkt de laatste minuutbar van de reguliere sessie op 29 juli met die van dinsdag 28 juli, dus twee opeenvolgende handelssessies. 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-28 13:30:00' AND window_start < '2026-07-28 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-29 13:30:00' AND window_start < '2026-07-29 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 -2.19%, IWM -1.63%, QQQ -2.07% en SPY -1.52% naar een slot op $729.51. Elke rij splitst de beweging op in twee delen: SPY opende -0.11% ten opzichte van het slot van dinsdag en bewoog van opening tot slot -1.41%. De overnight-leg en de intraday-leg hoeven niet overeen te komen. De verdeling ertussen vormt de eerste vingerafdruk van een sessie.
Was de dag uitzonderlijk?
Het cijfer van één sessie zegt weinig zonder de onderliggende verdeling. Daarom wordt de dag volgens dezelfde methode gerangschikt binnen de eigen voorafgaande maand.
De exacte SQL achter elk getal
SELECT
round(anyIf(oc_pct, d = toDate('2026-07-29')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-29'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-29'))) + 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-29 13:30:00')
AND window_start < toDateTime('2026-07-30 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 -1.41% stond op plaats 1 van 22 voorafgaande sessies, gemeten naar absolute omvang, in een periode die teruggaat tot 2026-06-29. De rangorde telt hoeveel andere sessies in die periode een grotere beweging lieten zien, plus één. De eerste plaats zou dus de grootste beweging van de voorafgaande maand zijn.
Marktbreedte
Een indexniveau is één getal. De marktbreedte laat zien hoeveel aandelen zich in dezelfde richting bewogen.
De exacte SQL achter elk getal
SELECT
countIf(c29 > c28 AND liquid) AS advancers,
countIf(c29 < c28 AND liquid) AS decliners,
countIf(c29 = c28 AND liquid) AS unchanged,
countIf(liquid) AS liquid_tickers,
countIf(NOT liquid) AS dropped_by_liquidity_filter,
round(100.0 * countIf(c29 > c28 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
SELECT ticker, c28, c29, dv29 >= 1000000 AS liquid
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv29
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0
)
)Van de 6066 aandelen die tijdens de reguliere handelsuren een omzetdrempel van één miljoen dollar overschreden, sloten 1652 boven de slotstand van dinsdag en 4342 daaronder. Het aandeel stijgers bedroeg 27.2%. De filter liet 5363 minder liquide aandelen buiten beschouwing; deze zijn hier meegeteld en niet stilzwijgend verwijderd.
De mega-caplijst
Dezelfde acht mega-capnamen verschijnen 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 naam wordt achteraf op redactionele gronden als winnaar aangewezen.
De exacte SQL achter elk getal
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-29 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-29 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 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 -0.63%, META -1.12%, MSFT -0.27% en NVDA -3.51% bij een omzet in de reguliere handelsuren van 22.26 miljard dollar, met TSLA op -2.97%. De dollarkolom laat zien welk deel van de tape deze acht namen zelfstandig voor hun rekening nemen. Het breadth-panel hierboven laat zien in hoeverre de rest van de markt met hen meebewoog.
De movers van de dag
Voor beide boards is een omzet van vijf miljoen dollar tijdens reguliere handelsuren vereist. Daarnaast wordt elk aandeel uitgesloten waarvan de stock split is uitgevoerd tussen de twee slotkoersen die zij meten. Ook wordt één hergebruikt symbool uitgesloten op basis van de in de notities beschreven interne ambiguïteitsregel.
De exacte SQL achter elk getal
SELECT ticker, board, day_pct, day_dollar_m
FROM (
SELECT 'gainers' AS board, ticker, round((c29 / c28 - 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 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-28' AND execution_date <= '2026-07-29')
AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
)
ORDER BY day_pct DESC
LIMIT 8
UNION ALL
SELECT 'decliners' AS board, ticker, round((c29 / c28 - 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 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-28' AND execution_date <= '2026-07-29')
AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
)
ORDER BY day_pct ASC
LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESCDe grootste stijger op het board, DFNS, steeg 119.8% bij een verhandeld bedrag van 544.9 miljoen dollar. De sterkste daler, YYAI, noteerde -68.1% bij een verhandeld bedrag van 8.5 miljoen dollar. Deze pagina registreert de omvang en de receipts, maar verbindt daar geen verklaring aan.
Sectorale spreiding
De elf SPDR-select-sectorfondsen, de slotkoers van 29 juli ten opzichte van die van 28 juli, gerangschikt van best naar slechtst. De mand is vooraf vastgesteld en niet gebaseerd op 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((c29 / c28 - 1) * 100, 2) AS day_pct
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-29 00:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 00:00:00') AS c29
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-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'))
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0
)
)
ORDER BY day_pct DESCEnergy stond bovenaan met 1.89%, terwijl Industrials onderaan stond met -3.21%, 5.1 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 verschillen meerdere punten bedragen.
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-29 13:30:00' AND window_start < '2026-07-29 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-29 13:30:00' AND window_start < '2026-07-29 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 44.99 miljard tijdens de reguliere handelstijden. SPY volgde met 42.29 miljard. Het aandelenoverzicht beantwoordt een andere vraag: SNXX stond bovenaan met 173.4 miljoen aandelen, tegen een impliciete gemiddelde prijs van $7.32. Het dollarvolume laat zien waar de aandacht van de markt ligt, terwijl het aandelenvolume de handelsactiviteit weergeeft. De maatstaf per naam is relatieve 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) = '260729', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
) AS spy_regular_close,
(
SELECT round(toFloat64(sum(size)) / 1e6, 2)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
) AS jul28_contracts_m,
(
SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260728') / sum(size), 1)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
) AS jul28_pct_0dte
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
jul28_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) = '260729') / sum(size), 1) AS pct_0dte,
jul28_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-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'De options tape registreerde 11.03 miljoen transacties voor 66.84 miljoen contracten, tegenover 59.28 miljoen op dinsdag. Calls waren goed voor 53.6% van het contractvolume. Contracten die tijdens dezelfde sessie afliepen, de groep met zero days to expiry, waren goed voor 33.1%, tegenover 29% op dinsdag. Dit ritme werd bepaald door het tijdstip van expiratie. Het drukst verhandelde SPY-contract was de 735 P, met 0.36 miljoen contracten. De strike lag 5.49 dollar van de reguliere slotkoers van SPY op $729.51, berekend als strike minus slotkoers.
De quote-tape
De quotegegevens zijn de meest schaarse 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-29')) / 1e6, 2) AS jul29_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-28')) / 1e6, 2) AS jul28_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / countIf(toDate(sip_timestamp) = toDate('2026-07-28')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'SPY') / 1e6, 2) AS jul29_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'QQQ') / 1e6, 2) AS jul29_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'NVDA') / 1e6, 2) AS jul29_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'De quote-tape voor aandelen bevatte 722.65 miljoen NBBO-updates, tegenover 536.07 miljoen op dinsdag. Dat is een verandering van 34.8% op dagbasis. SPY noteerde 7.32 miljoen updates, QQQ 8.72 miljoen en NVDA 4.41 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-29 13:30:00' AND sip_timestamp < '2026-07-29 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 spread van de reguliere handelsuren voor SPY bedroeg 0.27 basis points van de mid. Voor QQQ was dat 0.75 en voor NVDA 1.55. De laatste twee kolommen vormen de disclosure: one-sided en crossed quotes worden per naam geteld en buiten de mediaan gehouden, in plaats van stilzwijgend te worden verwijderd. Een crossed quote, waarbij de bid boven de ask ligt, is een normaal bijproduct van een geconsolideerde feed die op nanoseconde-niveau uit meerdere handelsplatformen wordt samengesteld.
De exacte SQL achter elk getal
SELECT round(anyIf(spread_bps, d = toDate('2026-07-29')), 2) AS jul29_median_spread_bps,
arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-29')), groupArrayIf(spread_bps, d != toDate('2026-07-29'))) + 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-29 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 julisessie op basis van dezelfde methode viel de mediane spread van SPY van 0.27 basis points op de dag op 20 van 20, gerekend vanaf de krapste spread, binnen een periode die begon op 2026-07-01. Op een rustige tape is dat precies de boodschap 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-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_options_rows,
(SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_stock_quote_rows
SELECT
round(jul29_options_rows / 1e9, 2) AS jul29_options_bn,
round(jul29_options_rows / jul29_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-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00') / 1e6, 0) AS jul29_spy_options_mDe NBBO-tape voor opties bevatte 13.55 miljard updates, 18.8 keer zoveel als de quote-tape voor aandelen. Alleen al de SPY-root noteerde 600 miljoen updates tijdens de reguliere handelsuren.
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-24' AND date <= '2026-07-29'
ORDER BY dateHet bestand van Treasury loopt ongeveer één sessie achter op de tape. Dit paneel toont daarom de uitgevoerde trades die het bestand bevat: 4 gedateerde rijen in het venster. De meest recente rij, gedateerd 2026-07-29, zette de tweejaarsrente op 4.22%, de tienjaarsrente op 4.67% en de dertigjaarsrente op 5.2%. 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-29 04:00:00' AND published_utc < '2026-07-30 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-29'
) AS fil
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-29') AS ex_dividend_records,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-29') AS listings,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_articles,
(SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 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_10q85 dividendregistraties gingen op 29 juli ex-dividend, 2 omgekeerde en 1 gewone splits werden uitgevoerd en 1 nieuwe beursnoteringen kwamen op de tape. De nieuwsfeed bevatte 190 artikelen van 2 uitgevers. Daarvan betrof NVDA de ticker met de meeste berichtgeving in het venster van deze feed, met 13 artikelen. De dagelijkse EDGAR-index bevat voor deze datum 5742 filings van 3064 verschillende indieners: 712 insider-rapporten op Form 4, 440 actuele 8-K-rapporten, 884 prijsbijlagen op Form 424B2 en 174 kwartaalrapporten op Form 10-Q. Deze index verschijnt volgens een eigen schema. Dit paneel rapporteert de gegevens die op het moment van genereren beschikbaar zijn.
Op de agenda
Lees de rest van de week uit dezelfde tabellen en kijk daarbij bewust voorbij de periode.
De exacte SQL achter elk getal
SELECT
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-30' AND date <= '2026-07-31' AND status != 'open') AS closures_rest_of_week,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-30' AND ex_dividend_date <= '2026-07-31') AS exdiv_records_rest_of_week,
(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-30' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-30' AND execution_date <= '2026-07-31') AS splits_rest_of_week,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_wed_volume,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-29') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'De feestdagentabel toont 0 sluitingen op donderdag 30 juli en vrijdag 31 juli. Voor 611 dividendregistraties valt de ex-dividend date op een van die twee sessies. 0 daarvan betreft tien gecontroleerde bekende huishoudnamen. Er staan 12 stock splits gepland. Van het option volume van woensdag had 19.7% al betrekking op contracten die op vrijdag 31 juli expireren. De meest recente settlement van de short interest in het bestand is 2026-07-15. Dit bestand wordt met zoveel vertraging gepubliceerd dat het een eigen toelichting heeft.
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-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-29') AS jul29_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' 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-29' 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-29 00:00:00' AND window_start < '2026-07-30 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 feestdagrijen voor de datum. De eerstvolgende geplande sluiting is Labor Day op 2026-09-07.
Veelgestelde vragen
Hoe presteerde de aandelenmarkt op woensdag 29 juli 2026?
SPY veranderde -1.52% van slotkoers tot slotkoers naar $729.51, met QQQ op -2.07%, DIA op -2.19% en IWM op -1.63%. Onder liquide namen steeg 1652 en daalde 4342.
Welke sector stond op 29 juli 2026 bovenaan?
Energy, op 1.89%, gemeten over de elf SPDR-select-sectorfondsen. Het zwakste van de elf, Industrials, noteerde -3.21%.
Hoe actief was de optiemarkt op 29 juli 2026?
Er werden 66.84 miljoen contracten verhandeld, tegenover 59.28 miljoen in de vorige sessie. Contracten met dezelfde expiratiedatum namen 33.1% van het volume voor hun rekening en calls 53.6%.
Welk aandeel had op 29 juli 2026 het hoogste dollarhandelsvolume?
MU, met 44.99 miljard aan dollarvolume tijdens reguliere handelsuren, vóór SPY met 42.29 miljard.
Datatoelichting
Deze editie hervat de dagelijkse reeks. De vorige dagelijkse editie is 10 juli 2026 en het wekelijkse overzicht behandelt de week ervoor. Panelen met genoemde tickers staan alfabetisch gerangschikt, zodat verwijzingen in de tekst naar vaste rijen wijzen. Ranglijsten en overzichten van movers zijn op waarde gerangschikt. Elke positionele claim daarin is vastgelegd als een sanity bound. De mega-cap-basket en de sectorbasket met elf fondsen zijn vaste, vooraf bepaalde sets en geen classificaties van een leverancier. Voor de overzichten van movers geldt een turnoverdrempel van vijf miljoen dollar tijdens reguliere handelsuren. Namen waarvan de splitsing tussen de twee gemeten slotkoersen is uitgevoerd, worden uitgesloten. Ook één hergebruikt symbool wordt uitgesloten volgens de interne ambiguïteitscontrole. Daardoor verwijst elke toelichting altijd naar een verifieerbare naam. De quote-panelen tellen eenzijdige en crossed quotes per naam, in plaats van deze stilzwijgend te verwijderen. Het bestand van Treasury en de dagelijkse EDGAR-index worden volgens hun eigen schema aangeleverd. Daarom tonen die panelen wat zij bevatten, zonder ervan uit te gaan dat de gegevens al zijn binnengekomen. Hier wordt geen implied-volatility-index weergegeven. Deze series zijn niet gelicentieerd voor dit datawarehouse. Volatility wordt daarom uit de tape afgeleid via ranges, het aandeel opties op dezelfde dag en het gedrag van quotes.
Methodologie
- Bron van marktdata: consolidated 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 zijn UTC; WHERE-clausules gebruiken onbewerkte UTC-literalen en
toTimeZoneverschijnt alleen in SELECT-lijsten voor ET-labels. - Sessiecontrole: op basis van de feestdagentabel en waargenomen bars, nooit uitsluitend op basis van de kalender.
- Vergelijkingen met de vorige sessie: binnen de query berekend vanaf 28 juli, nooit overgenomen uit een eerder bericht.
- Decimalen: prijs-, size- en volumekolommen worden vóór elke deling of elk product naar Float64 gecast.
- Deterministische aggregaties: overal exacte quantiles en tie-breaks op basis van tuple-sleutels; elke ordering- of tekenclaim in de tekst is vastgelegd als sanity bound.
- As-of-datum van het warehouse: 1 augustus 2026, drie dagen na de sessie en na de gebruikelijke ingest-lag van one-to-two dagen van de tape; de hierboven 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 two-to-ten-year spread.
Elke bovenstaande query draait ongewijzigd op de Strasmore-terminal als u een window naar een andere sessie wilt verplaatsen.