Marktupdate 27 juli 2026: de dag in cijfers
Marktupdate van 27 juli 2026 met query-onderbouwde cijfers over het scorebord, breadth, sector spread, options flow, rates en de economische kalender.
Deze marktupdate voor maandag 27 juli 2026 beschrijft de volledige sessie aan de hand van opgeslagen queries: de verandering van SPY ten opzichte van de slotkoers van vrijdag kwam uit op 0.02%, het aandeel stijgers in de liquide markt op 65.4% en de options tape liet 64.69 miljoen contracten zien. Elk hieronder weergegeven tijdvenster is aan beide zijden gekoppeld aan expliciete datums. Bij het opnieuw uitvoeren van de SQL van een paneel komen dezelfde cijfers terug.
Het scorebord
Elke verandering vergelijkt de laatste minuutbar van de reguliere sessie op 27 juli met die van vrijdag 24 juli, twee opeenvolgende handelssessies met een weekend ertussen. 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-24 13:30:00' AND window_start < '2026-07-24 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-27 13:30:00' AND window_start < '2026-07-27 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 0.49%, IWM 0.59%, QQQ -0.32% en SPY 0.02% naar een slot op $739.02. Elke rij splitst de beweging op in twee delen: SPY opende 0.82% ten opzichte van het slot van vrijdag, een gap die het hele weekend omvat, en bewoog vervolgens -0.79% van opening naar slot. Op een maandag omvat het overnight-deel in feite twee dagen. De splitsing tussen dit deel en het intraday-deel is het eerste kenmerk van de 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 zijn eigen voorafgaande maand.
De exacte SQL achter elk getal
SELECT
round(anyIf(oc_pct, d = toDate('2026-07-27')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-27'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-27'))) + 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-26 13:30:00')
AND window_start < toDateTime('2026-07-28 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)De beweging van opening tot sluiting van SPY van -0.79% stond op plaats 1 van 21 voorafgaande sessies, gerangschikt naar absolute omvang, binnen een periode die teruggaat tot 2026-06-26. De rangschikking telt hoeveel andere sessies binnen 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 telt hoeveel aandelen de beweging over het weekend heen volgden.
De exacte SQL achter elk getal
SELECT
countIf(c27 > c24 AND liquid) AS advancers,
countIf(c27 < c24 AND liquid) AS decliners,
countIf(c27 = c24 AND liquid) AS unchanged,
countIf(liquid) AS liquid_tickers,
countIf(NOT liquid) AS dropped_by_liquidity_filter,
round(100.0 * countIf(c27 > c24 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
SELECT ticker, c24, c27, dv27 >= 1000000 AS liquid
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 13:30:00') AS dv27
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
GROUP BY ticker
HAVING c24 > 0 AND c27 > 0
)
)Van de 5935 aandelen met een omzet tijdens de reguliere handelsuren van meer dan één miljoen dollar, sloten 3880 boven de slotstand van vrijdag en 1972 eronder. Het aandeel stijgers kwam daarmee uit op 65.4%. De filter sloot 5336 aandelen met een lagere liquiditeit uit. Deze zijn hier wel meegeteld en niet stilzwijgend genegeerd.
De mega-cap watchlist
Dezelfde acht mega-cap namen verschijnen hier elke sessie, alfabetisch gerangschikt zodat elke naam zijn eigen rij behoudt. Een vaste basket is het uitgangspunt: de lezer leert de rijen kennen en achteraf worden geen winnaars geselecteerd.
De exacte SQL achter elk getal
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-27 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-27 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 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-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
OR (window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 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.16%, META -0.21%, MSFT 1.94% en NVDA -5.04% bij een omzet tijdens de reguliere handelsuren van 25.42 miljard dollar, met TSLA op -1.2%. De kolom in dollars laat zien welk deel van de tape deze acht namen afzonderlijk voor hun rekening nemen. Het breadth-panel hierboven controleert in hoeverre de rest van de markt met hen meebewoog.
De grootste bewegingen van de dag
Voor beide borden is een omzet van vijf miljoen dollar tijdens de reguliere handelsuren vereist. Aandelen waarvan de split tussen de twee gemeten slotkoersen is uitgevoerd, worden uitgesloten. Ook wordt één hergebruikt symbool uitgesloten op grond 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((c27 / c24 - 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-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 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-24' AND execution_date <= '2026-07-27')
AND window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
GROUP BY ticker
HAVING c24 > 0 AND c27 > 0 AND dv >= 5000000
)
ORDER BY day_pct DESC
LIMIT 8
UNION ALL
SELECT 'decliners' AS board, ticker, round((c27 / c24 - 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-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 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-24' AND execution_date <= '2026-07-27')
AND window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
GROUP BY ticker
HAVING c24 > 0 AND c27 > 0 AND dv >= 5000000
)
ORDER BY day_pct ASC
LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESCDe grootste stijger op het bord, DFNS, steeg 214.9% bij een verhandelde waarde van 486.4 miljoen dollar. De sterkste daler, MPLT, noteerde -72.9% bij een verhandelde waarde van 83.3 miljoen dollar. Deze pagina registreert de omvang en de receipts, maar koppelt daar geen verklaring aan.
Sectorale dispersie
De elf SPDR Select Sector-fondsen, de slotstand van 27 juli ten opzichte van die van 24 juli, gerangschikt van best naar slechtst. De samenstelling is vooraf vastgesteld en blijft ongewijzigd; 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((c27 / c24 - 1) * 100, 2) AS day_pct
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-27 00:00:00') AS c24,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 00:00:00') AS c27
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-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
OR (window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00'))
GROUP BY ticker
HAVING c24 > 0 AND c27 > 0
)
)
ORDER BY day_pct DESCStaples stond bovenaan met 1.5% en Energy onderaan met -2.06%, 3.56 procentpunt lager. Dat spread is de sectorale dispersie van de dag. Een markt waarin alle elf fondsen binnen één procentpunt eindigen, ziet er heel anders uit dan een markt waarin de verschillen meerdere procentpunten 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-27 13:30:00' AND window_start < '2026-07-27 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-27 13:30:00' AND window_start < '2026-07-27 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 35.71 miljard aan omzet tijdens reguliere handelsuren, gevolgd door SPY met 27.03 miljard. Het aandelenoverzicht beantwoordt een andere vraag: KIDZ stond bovenaan met 198.3 miljoen aandelen tegen een impliciete gemiddelde prijs van $0.66. Het dollarvolume laat zien waar de aandacht van de markt ligt, terwijl het aandelenvolume de handelsfrequentie weerspiegelt. De variant van deze maatstaf per naam is relatief volume.
De optiestroom
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) = '260727', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00'
) AS spy_regular_close,
(
SELECT round(toFloat64(sum(size)) / 1e6, 2)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
) AS jul24_contracts_m,
(
SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260724') / sum(size), 1)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
) AS jul24_pct_0dte
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
jul24_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) = '260727') / sum(size), 1) AS pct_0dte,
jul24_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-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'De optiestroom registreerde 11.07 miljoen transacties voor 64.69 miljoen contracten, tegenover 71.14 miljoen op vrijdag. Calls waren goed voor 55.1% van het contractvolume. Contracten die tijdens dezelfde sessie aflopen, de groep zero-days-to-expiry, waren goed voor 39.3% tegenover 49% op vrijdag. Dit ritme wordt bepaald door de timing van expiraties. Het drukst verhandelde SPY-contract was de 740 C, met 0.59 miljoen contracten. De strike lag 0.98 dollar van de reguliere slotkoers van SPY op $739.02, gemeten als strike minus slotkoers.
De quote tape
De quotegegevens zijn de 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-27')) / 1e6, 2) AS jul27_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-24')) / 1e6, 2) AS jul24_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / countIf(toDate(sip_timestamp) = toDate('2026-07-24')) - 1) * 100, 1) AS session_over_session_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'SPY') / 1e6, 2) AS jul27_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'QQQ') / 1e6, 2) AS jul27_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'NVDA') / 1e6, 2) AS jul27_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'De stock-quote tape bevatte 553.53 miljoen NBBO-updates, tegenover 500.88 miljoen op vrijdag. Dat is een sessie-op-sessie verandering van 10.5%. SPY noteerde 4.84 miljoen updates, QQQ 6.78 miljoen en NVDA 2.93 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-27 13:30:00' AND sip_timestamp < '2026-07-27 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 SPY-quote tijdens reguliere handelsuren bedroeg 0.27 basis points van de mid. Voor QQQ was dat 0.59 en voor NVDA 1.02. De laatste twee kolommen vormen de disclosure: eenzijdige en gekruiste quotes worden per naam geteld en apart gehouden van de mediaan, in plaats van stilzwijgend te worden verwijderd. Een gekruiste quote, waarbij de bid boven de ask ligt, is een normaal artefact van een geconsolideerde feed die op nanoseconde-resolutie uit meerdere handelsplaatsen wordt samengesteld.
De exacte SQL achter elk getal
SELECT round(anyIf(spread_bps, d = toDate('2026-07-27')), 2) AS jul27_median_spread_bps,
arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-27')), groupArrayIf(spread_bps, d != toDate('2026-07-27'))) + 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-27 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 logica viel de mediane spread van SPY die dag, 0.27 basis points, op 18 van 18, geteld vanaf de krapste spread, binnen een periode die begon op 2026-07-01. Op een rustige tape is dat precies het doel van het panel: een normale 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-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00') AS jul27_options_rows,
(SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00') AS jul27_stock_quote_rows
SELECT
round(jul27_options_rows / 1e9, 2) AS jul27_options_bn,
round(jul27_options_rows / jul27_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-27 13:30:00' AND sip_timestamp < '2026-07-27 20:00:00') / 1e6, 0) AS jul27_spy_options_mDe options-NBBO-tape omvatte 10.38 miljard updates, 18.8 keer zoveel als de stock-quote tape. Alleen al de SPY-root was goed voor 440 miljoen updates tijdens 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-22' AND date <= '2026-07-27'
ORDER BY dateHet bestand van Treasury loopt ongeveer een sessie achter op de markt. Dit paneel rapporteert daarom de uitgevoerde trades die het bevat: 4 gedateerde rijen in de periode van 22 juli tot en met 27 juli. De meest recente rij, gedateerd 2026-07-27, zette de tweejaarsrente op 4.31%, de tienjaarsrente op 4.65% en de dertigjaarsrente op 5.12%. Dat komt neer op een spread tussen de twee- en tienjaarsrente van 34 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-27 04:00:00' AND published_utc < '2026-07-28 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-27'
) AS fil
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-27') AS ex_dividend_records,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-27') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-27') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-27') AS listings,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 04:00:00') AS news_articles,
(SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 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_10q91 dividendrecords gingen op 27 juli ex-dividend, 7 omgekeerde en 1 reguliere splits werden uitgevoerd en 0 nieuwe beursnoteringen kwamen op de tape. De nieuwsfeed bevatte 166 artikelen van 2 uitgevers. Daarvan was MSFT de meest besproken ticker in het venster van deze feed, met 12 artikelen. De dagelijkse EDGAR-index bevat voor deze datum 3997 filings van 2163 verschillende indieners: 587 insider-rapporten volgens Form 4, 226 actuele 8-K-rapporten, 555 424B2-prijssupplementen en 23 kwartaalrapporten volgens Form 10-Q. Die index wordt volgens een eigen schema bijgewerkt. Dit paneel toont wat de index op het moment van genereren bevat.
Op de agenda
De rest van de week, van dinsdag 28 juli tot en met vrijdag 31 juli, kan aan de hand van dezelfde tabellen worden gelezen, waarbij bewust verder wordt gekeken dan deze periode.
De exacte SQL achter elk getal
SELECT
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-28' 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-28' 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-28' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-28' 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_mon_volume,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-27') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'De feestdagentabel toont 0 sluitingen tijdens de vier resterende sessies van de week. Tijdens die sessies gaan 843 dividendrecords ex-dividend, waaronder 0 van de tien gecontroleerde bekende namen, en 18 splits zijn gepland om te worden uitgevoerd. Van het optievolume van maandag had 17.1% al betrekking op contracten met expiratie op vrijdag 31 juli. De meest recente beschikbare settlement van de short interest is 2026-07-15, een bestand dat met voldoende vertraging wordt 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-27') AS jul27_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-27' 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-27' 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-27 00:00:00' AND window_start < '2026-07-28 00:00:00'Een volledige reguliere sessie: de eerste SPY-bar om 04:00 ET, de laatste om 19:59 ET, 390 bars tijdens de 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 maandag 27 juli 2026?
SPY veranderde 0.02% ten opzichte van het slot van vrijdag naar $739.02. QQQ stond op -0.32%, DIA op 0.49% en IWM op 0.59%. Onder liquide aandelen steeg 3880 en daalde 1972.
Welke sector stond op 27 juli 2026 bovenaan?
Staples, op 1.5%, gemeten over de elf SPDR-select-sectorfondsen. Energy was de zwakste van de elf en printte -2.06%.
Hoe actief was de optionsmarkt op 27 juli 2026?
Er werden 64.69 miljoen contracten verhandeld, tegenover 71.14 miljoen in de voorgaande sessie. Contracten met afloop op dezelfde dag waren goed voor 39.3% van het volume en calls voor 55.1%.
Welk aandeel kende op 27 juli 2026 het hoogste dollarvolume?
MU, met een dollarvolume van 35.71 miljard tijdens de reguliere handelsuren, vóór SPY met 27.03 miljard.
Gegevensnotities
Deze editie vult een maandagsessie aan in de hervatte dagelijkse reeks, die op 1 augustus is gepubliceerd. De voorafgaande dagelijkse editie op basis van sessiedatum is 10 juli 2026, de editie van 29 juli behandelt de woensdag van diezelfde week en de wekelijkse terugblik betreft de week die eindigde op vrijdag 24 juli, de sessie waarop elke vergelijking op deze pagina is gebaseerd. Panelen met namen per ticker zijn alfabetisch gerangschikt, zodat verwijzingen in de tekst naar vaste rijen wijzen. Ranglijsten en mover-overzichten zijn op waarde gerangschikt en elke positionele bewering daarin is vastgelegd als een sanity bound. De mega-capmand en de sector-mand met elf fondsen zijn vooraf bepaalde, vaste sets en geen classificaties van een leverancier. Voor de mover-overzichten geldt een omzetdrempel van vijf miljoen dollar tijdens reguliere handelsuren. Ze sluiten elke naam uit waarvan de splitsing is uitgevoerd tussen de twee slotkoersen die zij meten. Ook sluiten ze één hergebruikt symbool uit op grond van de interne ambiguïteitscontrole, zodat een callout altijd verwijst naar een verifieerbare naam. Elke slotkoers-op-slotkoerswaarde hier bestrijkt het weekend, van vrijdag 24 juli tot maandag 27 juli, en de gap-kolom van het scorebord omvat die volledige periode. 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's aangeleverd. Daarom rapporteren die panelen wat zij bevatten, zonder ervan uit te gaan dat de gegevens al zijn binnengekomen. Er staat hier geen implied-volatility-index: deze reeksen zijn niet gelicentieerd voor dit warehouse. Volatility wordt daarom uit de tape afgeleid aan de hand van ranges, het aandeel same-day opties en het quote-gedrag.
Methodologie
- Bron van marktdata: geconsolideerde tape.
delayed_stocks_minute_aggsvoor prijzen en volumes,options_tradesvoor de optionstape,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 uit de extended hours.
- Tijdzoneverwerking: alle opgeslagen timestamps zijn UTC; WHERE-clausules gebruiken onbewerkte UTC-literals en
toTimeZoneverschijnt uitsluitend 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 voorgaande sessie: in de query berekend vanaf vrijdag 24 juli, de voorgaande handelssessie over het weekend heen, en 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 kwantielen en tie-breaks op basis van tuple-sleutels; elke bewering over een volgorde of teken in de tekst is gecodeerd als een sanity bound.
- As-of-datum van het warehouse: 1 augustus 2026, vijf dagen na de sessie, dus na de gebruikelijke ingest-lag van één tot twee dagen voor de tape; de hierboven afgebakende receipts houden het bericht in stand als bij het genereren een dataset ontbreekt.
Kruisverwijzingen: de vorige dagelijkse recap, de editie van 29 juli, de weekly recap, wanneer opties 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 verleggen.