Market Recap Hunyo 29 2026: Mga Numero ng Araw
Hunyo 29, 2026 sa mga numero: pag-angat na pinangungunahan ng growth, apat-na-puntong spread ng sektor, round trip ng memory-stock, 0DTE tape, penny-tight quotes at Treasury yields.
Lunes, Hunyo 29, 2026 ay isang araw ng pag-angat na pinangungunahan ng paglago na may makitid na hanay ng pamumuno: QQQ tumaas 2.57%, SPY 1.62%, 3968 mga likidong stock ay tumaas laban sa 2327 mga bumagsak — ngunit halos kalahati ng mga basket ng sektor ay nagsara sa pula. Bawat numero ay mula sa isang nakaimbak na query; i-expand ang anumang panel para sa SQL. Ang tick-by-tick na layer ng parehong sesyon: ang Hunyo 29 malalim na pagsusuri sa microstructure.
Ang scoreboard
Ang bawat pagbabago ay ikinumpara ang last regular-session minute bar ng Hunyo 29 laban sa Biyernes Hunyo 26.
Ang eksaktong SQL sa likod ng bawat numero
WITH friday AS (
SELECT ticker, argMax(close, window_start) AS friday_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00'
GROUP BY ticker
),
monday AS (
SELECT ticker,
argMin(open, window_start) AS monday_open,
argMax(close, window_start) AS monday_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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY ticker
)
SELECT
m.ticker AS ticker,
toFloat64(f.friday_close) AS jun26_close,
toFloat64(m.monday_open) AS jun29_open,
toFloat64(m.monday_close) AS jun29_close,
round((toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) * 100, 2) AS pct_change,
round(100 * (toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) / max(toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) OVER (), 1) AS pct_of_best_change,
toFloat64(m.day_high) AS day_high,
toFloat64(m.day_low) AS day_low,
m.shares_traded_m AS shares_traded_m
FROM monday m
JOIN friday f ON m.ticker = f.ticker
ORDER BY m.tickerBumukas ang SPY sa $736.525 laban sa $729.09 close noong Biyernes at nagsara sa $740.88, sa ilalim ng $741.56 high nito. Ang +2.57% ng QQQ laban sa +0.81% ng DIA ay nagmamarka ng isang growth-and-tech day; ang small-cap IWM ay nagdagdag ng 0.45%.
Hindi ba kapani-paniwala ang araw?
Maliit na saysay ang isang porsyentong galaw kung walang sukat. Iniraranggo ng panel na ito ang Hunyo 29 laban sa nakaraang buwan batay sa laki ng absolute close-over-close.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-06-29')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-06-29'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-06-29'))) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ') AS qqq_sessions_compared,
round(max(if(ticker = 'QQQ', abs(cc_pct), 0)), 2) AS qqq_biggest_move_of_month_pct,
countIf(ticker = 'QQQ' AND cc_pct > 0) AS qqq_up_sessions,
round(anyIf(cc_pct, ticker = 'SPY' AND d = toDate('2026-06-29')), 2) AS spy_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'SPY' AND d = toDate('2026-06-29'))), groupArrayIf(abs(cc_pct), ticker = 'SPY' AND d != toDate('2026-06-29'))) + 1 AS spy_abs_move_rank,
countIf(ticker = 'SPY') AS spy_sessions_compared,
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-06-29')), 2) AS spy_open_to_close_pct,
concat(monthName(min(d)), ' ', toString(toDayOfMonth(min(d))), ', ', toString(toYear(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-05-28 00:00:00')
AND window_start < toDateTime('2026-06-30 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)
WHERE isFinite(cc_pct)Malaki, ngunit hindi record: 2.57% na galaw ng QQQ ay nasa 5 ng 21 na sesyon mula May 29, 2026, sa isang buwan na may pinakamalaking solong galaw na 4.76%; nasa 4 ng 21 ang 1.62% ng SPY. Mahalaga kung saan nanggaling ang galaw: ang open-to-close na pag-akyat ng SPY ay 0.59% lamang, kaya nanggaling ang karamihan ng gain sa overnight gap, bago mag-print ng kahit isang regular-hours bar. Mas mataas ang pagkakasarado ng QQQ sa 10 ng mga sesyon na iyon: isang coin-flip na buwan.
Lawak: gaano kalawak ang rally?
Ang advancer ay isang ticker na ang closing noong Lunes ay tumaas kumpara noong Biyernes, sa mga stock na nakikipagkalakalan ng hindi bababa sa $1 milyon — isang filter na nag-aalis ng 5,108 sa 11,475 na mga dual-session ticker.
Ang eksaktong SQL sa likod ng bawat numero
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-29 00:00:00') AS monday_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
GROUP BY ticker
)
SELECT
countIf(monday_close > friday_close AND monday_dollar_volume >= 1000000) AS advancers,
countIf(monday_close < friday_close AND monday_dollar_volume >= 1000000) AS decliners,
countIf(monday_close = friday_close AND monday_dollar_volume >= 1000000) AS unchanged,
countIf(monday_dollar_volume >= 1000000) AS liquid_tickers,
count() AS tickers_traded_both_sessions,
reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_label,
count() - countIf(monday_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(monday_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_label,
round(100.0 * countIf(monday_close > friday_close AND monday_dollar_volume >= 1000000)
/ countIf(monday_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE friday_close > 0 AND monday_close > 03968 advancers, 2327 decliners, 72 walang pagbabago: 62.3% ng liquid tape ang tumaas — binilang paisa-isa, isang malawak na araw.
Sektor por sektor: ang rally ay mas makitid kaysa sa itsura nito
Ang pagbilang ng mga pangalan nang pantay-pantay ay isang pananaw; ang pagtimbang sa kanila batay sa laki ng kumpanya ay isa pa. Ang labing-isang SPDR sector ETF ay ang maikling paraan para sa ikalawa — isang market-value-weighted basket bawat sektor ng S&P 500. Sila ay malaki ang hindi pagkakasundo sa bilang ng lawak.
Ang eksaktong SQL sa likod ng bawat numero
WITH per_etf AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
maxIf(toFloat64(high), window_start >= '2026-06-29 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-06-29 00:00:00') AS day_low,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-29 00:00:00') / 1e6, 0) AS dollar_volume_m
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-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
GROUP BY ticker
)
SELECT
sector,
ticker,
round((monday_close / friday_close - 1) * 100, 2) AS pct_change,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
dollar_volume_m,
round((monday_close / friday_close - 1) * 100 - min((monday_close / friday_close - 1) * 100) OVER (), 2) AS pct_above_worst_sector
FROM (
SELECT *,
multiIf(ticker = 'XLB', 'Materials',
ticker = 'XLC', 'Communication services',
ticker = 'XLE', 'Energy',
ticker = 'XLF', 'Financials',
ticker = 'XLI', 'Industrials',
ticker = 'XLK', 'Technology',
ticker = 'XLP', 'Consumer staples',
ticker = 'XLRE', 'Real estate',
ticker = 'XLU', 'Utilities',
ticker = 'XLV', 'Health care',
'Consumer discretionary') AS sector
FROM per_etf
)
ORDER BY pct_change DESCNanguna ang teknolohiya sa 2.52%, sinundan ng consumer discretionary sa 2.37%; nasa -1.82% ang materials at -0.64% ang real estate. Ang pinakamataas na binawasan ng pinakamababa — ang sector dispersion ng araw — ay umabot sa 4.34 percentage points, kung saan ang utilities, staples, energy, real estate at materials ay lahat pula sa isang araw na tumaas ang index. Malawak batay sa bilang ng pangalan, makitid batay sa timbang: iyan ang maaaring itago ng gain ng isang index fund.
Ang highlight ng araw: memory at storage
Apat na pangalan ang nag-trade ng parehong tema na may magkakaibang resulta — co-movement at magnitude lang; hindi sinasabi ng data kung bakit.
Ang eksaktong SQL sa likod ng bawat numero
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
maxIf(toFloat64(high), window_start >= '2026-06-29 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-06-29 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-06-29 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-29 00:00:00') AS high_bar
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(friday_close, 2) AS jun26_close,
round(monday_close, 2) AS jun29_close,
round((monday_close / friday_close - 1) * 100, 2) AS pct_chg,
round(day_high, 2) AS day_high,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
round(day_low, 2) AS day_low,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct
FROM per_name
ORDER BY tickerAng MU ay ang textbook case ng range versus net change: isang 12.22% intraday range — isang $1023.65 low sa 10:18 ET, isang $1148.79 high sa 15:59 — ngunit isang close 1.97% above Friday. Tumaas ang Western Digital ng 11.15% at Seagate ng 8.17%; nagsara ang SanDisk -1.9% sa isang 10.33% range — ang lower close ng cluster. Isang close ang nagtatago ng kung ano ang naranasan ng mga holder.
Kung saan kumilos ang pera
Batay sa dolyar na napag-usapan, lampas-lampas ang Micron (MU) sa lahat, kasama ang mga index fund: $58.47 bilyon laban sa $33.97 bilyon ng SPY. Batay naman sa bilang ng shares, ibang kwento na ito.
Ang eksaktong SQL sa likod ng bawat numero
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, shares_m,
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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESCNakaliligaw ang mga share-count na board: pinangasiwaan ng SOXS, isang 3x-leveraged inverse semiconductor ETF (695.3 milyong shares), at INLF, isang penny stock na ang 353.8 milyong shares ay nasa halagang mga $23 milyon buong araw. Ipinapakita ng dollar volume kung saan gumalaw ang pera; ipinapakita naman ng relative volume kung ang aktibidad ng isang stock ay hindi pangkaraniwan para rito.
Sa 30-minutong mga bucket ng New York, ini-plot ng Hunyo 29 ang klasikong "ngiti" ng volume:
Ang eksaktong SQL sa likod ng bawat numero
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,
round(100 * (sum(toFloat64(volume)) / min(sum(toFloat64(volume))) OVER () - 1), 1) AS pct_above_trough
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY et_time
ORDER BY et_time2.3 bilyong shares sa unang kalahating oras, isang 0.77 bilyong tagukuyan sa 13:30, at ang pinakamalaking bucket — 2.39 bilyon — sa huling kalahating oras, kung saan nagkukumpulan ang closing auctions at mga daloy ng index-tracking.
Ang options tape
Umabot sa 66.33 million contracts ang na-trade na options sa 11.04 million prints.
Ang eksaktong SQL sa likod ng bawat numero
WITH
(
SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
sum(size), count(), round(avg(toFloat64(price)), 3))
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
GROUP BY ticker
ORDER BY sum(size) DESC
LIMIT 1
) AS top_contract,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
) AS spy_regular_close
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS 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) = '260629') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
countIf(sip_timestamp < '2026-06-29 13:30:00') AS premarket_prints,
reverse(arrayStringConcat(extractAll(reverse(toString(countIf(sip_timestamp < '2026-06-29 13:30:00'))), '[0-9]{1,3}'), ',')) AS premarket_prints_label,
countIf(sip_timestamp < '2026-06-29 13:30:00'
AND underlying_symbol NOT IN ('SPX', 'SPXW', 'XSP', 'RUTW', 'VIX', 'VIXW')) AS premarket_non_index_prints,
arrayStringConcat(arraySort(groupUniqArrayIf(underlying_symbol, sip_timestamp < '2026-06-29 13:30:00')), ', ') AS premarket_underlyings,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
top_contract.1 AS top_contract_underlying,
top_contract.2 AS top_contract_strike,
top_contract.3 AS top_contract_type,
top_contract.4 AS top_contract_expiry,
top_contract.5 AS top_contract_volume,
reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.5))), '[0-9]{1,3}'), ',')) AS top_contract_volume_label,
round(top_contract.7, 3) AS top_contract_avg_price,
round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'Ang calls ang kumapit sa 55.7% ng contract volume, at 35.8% ng lahat ng na-trade ay nag-expire noong parehong araw na Monday — ang zero-days-to-expiry (0DTE) share. Ang pinaka-abalang solong contract sa lahat ay ang same-day SPY $741 call: 788,133 contracts sa average premium na $0.474, kung saan ang SPY close ay tumama 0.12 dollars ibaba ng strike — ang pinaka-na-trade na option sa araw ay natapos out of the money. Umabot sa 12.01 million contracts ang na-trade na SPY bilang underlying; 7.32 million naman ang QQQ.
Bilang ng 40,621 option prints bago mag-9:30 equity open ang naitala ng panel — lahat ay nasa cash-settled index root (RUTW, SPX, SPXW, VIX, VIXW, XSP), na may 0 stock o ETF option prints sa parehong window. Ito ang tuntunin, hindi aksidente: ang index options ay may nakalistang extended global-trading-hours sessions, samantalang ang options sa stocks at ETFs ay nag-oopen kasabay ng stock market. Maagang nagti-trade ang stocks — tingnan ang premarket and after-hours trading — ang kanilang options ay hindi.
Walang contract na may Friday, July 3 expiration code ang nag-print sa buong araw (0 prints) — sarado ang market noong Friday na iyon — samantalang ang Thursday, July 2 expiry ay nag-trade ng 10.73 million.
Ang quote tape: magkano ang araw na ito sa pag-trade
Bawat presyo sa pahinang ito ay nakasentro sa isang quote stream — ang National Best Bid and Offer, na paulit-ulit na inilalathala para sa bawat nakalistang pangalan. Ang agwat sa pagitan ng pinakamagandang bid at pinakamagandang offer, ang bid-ask spread, ang siyang binabayaran ng isang order para tumawid.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
ticker,
round(count() / 1e6, 2) AS nbbo_updates_m,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 14:00:00'), 2) AS open_30min_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-06-29 17:00:00' AND sip_timestamp < '2026-06-29 17:30:00'), 2) AS midday_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 14:00:00')
- quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-06-29 17:00:00' AND sip_timestamp < '2026-06-29 17:30:00'), 2) AS open_minus_midday_bps,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'MU', 'WDC')
AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 20:00:00'
GROUP BY ticker
ORDER BY tickerAng median na quoted width ng SPY ay 0.41 basis points ng mid-price nito, kumpara sa 0.84 para sa QQQ, 4.6 para sa Micron at 8.2 para sa Western Digital — ang pinakamalawak sa apat. Ang isang basis point ng $10,000 na order ay isang dolyar, kaya ang pagbili at instant na pagbenta ng $10,000 ng SPY sa quote ay nagkakahalaga ng mga $0.41; ang parehong round trip sa Western Digital ay nagkakahalaga ng $8.2. Ang laki ng trade ay hindi nagbago; ang pangalan ang nagbago.
Lahat ng apat ay nag-quote nang mas malawak sa unang kalahating oras ng pagbubukas kaysa sa control window ng tanghali — SPY 0.41 bps kumpara sa 0.27, Western Digital 14.33 kumpara sa 7.55, isang 6.78 bp na opening premium sa pinakamalawak na pangalan. Ang churn ang kabilang kalahati: 3.98 milyong NBBO updates sa SPY sa regular hours, 4.42 milyon sa QQQ.
Rates: halos hindi gumalaw ang curve
Tahimik ang Lunes para sa Treasuries. Ang mga yield ay daily closes, inihambing sa Hunyo 26.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jun29_yield_pct,
round((t.2 - t.3) * 100) AS one_day_change_bp
FROM (
SELECT arrayJoin([
('1 month', toFloat64(mon.yield_1_month), toFloat64(fri.yield_1_month)),
('3 month', toFloat64(mon.yield_3_month), toFloat64(fri.yield_3_month)),
('1 year', toFloat64(mon.yield_1_year), toFloat64(fri.yield_1_year)),
('2 year', toFloat64(mon.yield_2_year), toFloat64(fri.yield_2_year)),
('5 year', toFloat64(mon.yield_5_year), toFloat64(fri.yield_5_year)),
('10 year', toFloat64(mon.yield_10_year), toFloat64(fri.yield_10_year)),
('30 year', toFloat64(mon.yield_30_year), toFloat64(fri.yield_30_year)),
('2s10s spread', toFloat64(mon.yield_10_year - mon.yield_2_year), toFloat64(fri.yield_10_year - fri.yield_2_year))
]) AS t
FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-29') AS mon,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-26') AS fri
)Ang 10-year ay nagsara sa 4.38%, walang pagbabago sa araw (0 bp), habang ang 3-month bill ay may dagdag na 4 bp sa 3.87%. Ang 2s10s spread — ang 10-year minus ang 2-year — ay nagsara sa 0.28 percentage points (-3 bp): positibo pa rin, bahagyang mas patag.
Ang kalendaryo sa likod ng araw
Ang eksaktong SQL sa likod ng bawat numero
WITH
(
SELECT (argMax(d, n), max(n))
FROM (
SELECT ex_dividend_date AS d, count() AS n
FROM global_markets.stocks_dividends
WHERE ex_dividend_date BETWEEN '2026-06-22' AND '2026-07-02'
GROUP BY d
)
) AS peak_ex_div,
(
SELECT (countIf(form_type = '424B2'), countIf(form_type = '4'), countIf(form_type = '8-K'), count())
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date = '2026-06-29'
) AS filings,
(
SELECT (count(), uniqExact(publisher), countIf(has(tickers, 'NVDA')))
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-29'
) AS news,
(
SELECT max(n)
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-06-29'
)
WHERE t NOT IN ('NVDA', 'SPCX')
GROUP BY t
)
) AS runner_up_articles,
(
SELECT (any(split_from), any(split_to), count())
FROM global_markets.stocks_splits
WHERE ticker = 'HON' AND execution_date = '2026-06-29'
) AS hon_split,
(
SELECT (
round(toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')), 2),
round(toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')), 2)
)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'HON'
AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
) AS hon_close
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-29') AS ex_dividend_records_jun29,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-29'
AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'GOOG', 'META', 'TSLA', 'JPM', 'JNJ',
'XOM', 'KO', 'PG', 'V', 'MA', 'HD', 'WMT', 'CVX', 'MRK', 'PEP',
'SPY', 'QQQ', 'DIA', 'IWM', 'VTI')) AS household_name_ex_dividends,
length(['AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'GOOG', 'META', 'TSLA', 'JPM', 'JNJ',
'XOM', 'KO', 'PG', 'V', 'MA', 'HD', 'WMT', 'CVX', 'MRK', 'PEP',
'SPY', 'QQQ', 'DIA', 'IWM', 'VTI']) AS household_names_checked,
concat(monthName(peak_ex_div.1), ' ', toString(toDayOfMonth(peak_ex_div.1))) AS busiest_ex_div_day_of_window,
peak_ex_div.2 AS busiest_ex_div_day_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-06-29') AS splits_executed,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-29') AS ipos_listed_jun29,
(SELECT arrayStringConcat(groupArray(ticker), ', ') FROM (
SELECT ticker FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01' ORDER BY ticker
)) AS jul1_ipo_debuts,
filings.4 AS sec_filings,
filings.1 AS prospectus_424b2_filings,
filings.2 AS insider_form4_filings,
filings.3 AS filings_8k,
news.1 AS news_articles,
news.2 AS news_publishers,
news.3 AS nvda_articles,
runner_up_articles AS next_most_covered_articles,
news.3 - runner_up_articles AS nvda_minus_next_most_covered,
hon_split.3 AS hon_split_records,
hon_split.1 AS hon_split_from,
hon_split.2 AS hon_split_to,
hon_close.1 AS hon_close_jun26,
hon_close.2 AS hon_close_jun29449 na rekord ng dibidendo ay nag-ex-dividend noong Hunyo 29 — hawakan ang stock bago ang petsa ng ex-dividend nito o hindi sa'yo ang bayad — ngunit sa 25 sikat na pangalan na tiningnan namin, lumitaw ang 0. Ang alon ng katapusan ng quarter ay umabot sa rurok sa 745 na rekord noong July 1. 23 na split ang naisakatuparan at 0 na IPO ang nalista, at ang mga paglulunsad ng Miyerkules (BSP, ITG, LIME) ay nasa kalendaryo na.
Ang SEC ay nag-log ng 6173 na filing na may petsang Hunyo 29: 1473 na pricing supplement ng structured product (form 424B2) at 1277 mga ulat ng insider trade (Form 4) ang nangingibabaw sa bilang ng 231 na 8-K na karaniwang bumibida sa balita. Ang news feed namin ay nagdala ng 170 na artikulo mula sa 3 na publisher; hindi kasama ang isang hindi-tiyak na naka-tag na muling ginamit na simbolo (tinanggal sa query), ang pinakamalawakang natalakay na pangalan ay NVDA sa 14 na artikulo, laban sa 12 ng pangalawang pwesto.
Mga tala sa datos
Kapag may kakaibang datos, may kasamang tala — hindi tahasang inaalis — ang apat na ito ay nakaaapekto sa mga headline na numero.
- Ang mga basket ng sektor ay isang deklaradong paraan. Ang "sektor" ay nangangahulugang labing-isang SPDR sector ETF, na may bigat na market-value — parehong pangalan sa bawat session, hindi ang klasipikasyon ng vendor bawat ticker.
- Ang dollar volume ay isang proxy kada minuto — close × volume na binuo bawat minute bar, malapit pero hindi eksaktong katumbas ng kabuuan ng mga print value.
- Ang quoted spreads ay hindi kasama ang mga invalid na quote (one-sided o crossed NBRO records); binibilang ng panel kung ano ang inalis nito (1544 sa SPY). Ang median quoted width ay isang quoting statistic, hindi isang per-trade cost — ang mga order ay madalas na nase-execute sa loob ng quote.
- Ang isang solong print ay maaaring makontamina ang high o low ng isang minute bar. Ang 11:07 ET bar ng QQQ ay may $709.58 low habang walang kalapit na bar ang bumaba sa $715.09 — isang print na $5.51 sa ilalim ng kasalukuyang market. Bawat high at low sa itaas ay cross-checked laban sa mga katabing bar; ang $705.172 session low ng QQQ ay pumasa.
Buong mga tala sa datos
- Ang Treasury coverage ay mas manipis kaysa sa schema. Ang apat na advertised na maturity (6-month, 3-, 7- at 20-year) ay hindi kailanman na-populate; ang curve ay nagpapakita ng pitong umiiral, plus ang 2s10s row.
- Ang isang Honeywell "reverse split" ay sumasalungat sa tape. Ang feed ay may 1 HON record na may petsa June 29: isang reverse split na nagko-convert ng 2 lumang shares sa 1 bagong. Ang HON ay nagsara sa $231.3 Friday at $227.71 Monday — walang pagdoble. Hindi namin ito inilapat.
- Ang bilang ng balita ay feed ng isang vendor, ang 3 publishers na aming dala — hindi "lahat ng market news".
- Ang mga tick-level receipt — crossed quotes, ang phantom-volume correction, ang truncated FINRA short-volume file (at kung bakit ang short volume ay hindi short interest) — nasa the deep dive.
Ang sesyon, naka-verify
Ang eksaktong SQL sa likod ng bawat numero
WITH
(
SELECT (
round(toFloat64(minIf(low, formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') = '11:07')), 2),
round(toFloat64(minIf(low, formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') IN ('11:04', '11:05', '11:06', '11:08', '11:09', '11:10'))), 2)
)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ' AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
) AS qqq_lone
SELECT
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars,
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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00') AS regular_session_bars,
qqq_lone.1 AS qqq_1107_lone_low,
qqq_lone.2 AS qqq_1107_adjacent_bars_low,
round(qqq_lone.2 - qqq_lone.1, 2) AS qqq_lone_print_below_adjacent
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-29 00:00:00' AND window_start < '2026-06-30 00:00:00'Ang mga bar ng SPY ay tumatakbo mula 04:00 hanggang 19:59 New York time na may eksaktong 390 regular-window bars — isang kumpletong sesyon, naka-verify mula sa tape (ang exchange-calendar dataset ay nagdadala lamang ng mga paparating na pagsasara). Noong Biyernes, Hulyo 3, ay isang buong pagsasara — 0 SPY bars ang na-print buong araw, Hulyo 4 ay dumating sa isang Sabado; ang four-session week ay may sariling recap.
Mga Madalas Itanong
Paano ang performance ng stock market noong Hunyo 29, 2026?
Isang up day na pinangunahan ng growth: 2.57% ang gain ng QQQ kumpara sa Biyernes, 1.62% ang SPY, 0.81% ang DIA, at 0.45% ang IWM, kung saan 62.3% ng mga ticker na nag-trade ng $1m o higit pa ang nagsara sa mas mataas.
Malaki ba ang araw para sa Nasdaq noong Hunyo 29, 2026?
Malaki, ngunit hindi exceptional: 2.57% ang close-over-close move ng QQQ, na nag-rank na 5 sa 21 sessions ng nakaraang buwan batay sa absolute size, laban sa isang monthly high na 4.76%.
Aling mga sektor ang nanguna noong Hunyo 29, 2026?
Ang technology (2.52%) at consumer discretionary (2.37%) ang nanguna sa labing-isang SPDR sector baskets; ang materials ang nasa huli sa -1.82%, isang spread na 4.34 percentage points. Ang utilities, staples, energy, at real estate ay parehong nagsara sa mas mababa.
Magkano ang share ng options volume noong Hunyo 29, 2026 na 0DTE?
Ang same-day expiries ay bumuo ng 35.8% ng 66.33 milyong kontrata na na-trade; ang pinaka-busy na solong kontrata, isang same-day SPY $741 call (788,133 contracts), ay nagtapos out of the money.
Bakit nag-titrade ang options bago magbukas ang stock market?
Index options lamang ang gumagawa nito. Ang lahat ng 40,621 option prints bago ang 9:30 a.m. ET noong Hunyo 29 ay nasa cash-settled index roots (RUTW, SPX, SPXW, VIX, VIXW, XSP), na naglalista ng extended global-trading-hours sessions; ang stock at ETF option prints sa window na iyon ay umabot sa 0.
Metodolohiya
- Ang mga timestamp ay nakaimbak sa UTC, kino-convert sa oras ng New York sa loob ng mga query. Ang "Close" ay ang huling minute bar ng regular na sesyon, hindi ang auction print; ang paghahambing ng araw ay gumagamit ng Hunyo 29 laban sa Hunyo 26, at ang sesyon ay na-verify mula sa naobserbahang bar span.
- Ang trailing-month rank ay gumagamit ng close-over-close na galaw sa regular na oras, ang unang sesyon ay ibinababa (walang naunang close sa loob ng window). Ang mga option expiry ay muling ini-parse mula sa OCC ticker (ang sariling expiry column ng talahanayan ay sira).
- Bawat panel ay binabasa nang isang beses, sa oras ng pag-aautore, sa pamamagitan ng gated read-only na landas. Katayuan ng warehouse mula Hulyo 13, 2026.
Ang bawat panel ay resulta ng isang naka-imbak na query — chart, talahanayan, at SQL sa iisang object. I-paste ang alinman sa mga ito sa Strasmore terminal. Susunod na sesyon: Hunyo 30.