Market Recap: Hunyo 30, 2026 — Ang Araw sa Numero
Huling sesyon ng quarter sa mga numero: index gain na pinangungunahan ng teknolohiya sa halos pulang tape, memory complex ang nanguna, at same-day options tape sa close.
Martes, Hunyo 30, 2026 — ang huling sesyon ng quarter — ay isang araw ng pag-akyat na pinangungunahan ng teknolohiya sa halos pulang merkado: ang QQQ ay tumalon ng 1.63% at ang SPY 0.73%, ngunit 4 lamang sa 10 na S&P sector funds ang nagsara nang mas mataas (3,349 liquid names pataas, 3,033 pababa). Ang nakaraang sesyon: ang Hunyo 29 recap. Ang bawat numero sa ibaba ay binabasa mula sa isang nakaimbak na query — palawakin ang anumang panel para sa SQL.
Ang scoreboard
Ang bawat pagbabago ay ikinukumpara ang huling minute bar ng regular session noong Hunyo 30 laban sa noong Lunes, Hunyo 29.
Ang eksaktong SQL sa likod ng bawat numero
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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY ticker
),
sess AS (
SELECT ticker,
argMin(open, window_start) AS day_open,
argMax(close, window_start) AS day_close,
max(high) AS day_high,
min(low) AS day_low,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
GROUP BY ticker
)
SELECT
s.ticker AS ticker,
round(toFloat64(p.prior_close), 2) AS prior_close,
round(toFloat64(s.day_open), 2) AS day_open,
round(toFloat64(s.day_close), 2) AS day_close,
round((toFloat64(s.day_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 AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.tickerBumukas ang SPY sa $741.29 at nagsara sa $746.32, malapit sa $748.02 high nito. Ang 1.63% ng QQQ laban sa 0.12% ng DIA ang hugis ng araw: ang growth ay tumakbo, ang blue chips ay halos hindi gumalaw, ang IWM ay 0.49%.
Ang quarter na isinara ngayong araw
Isinara ng Hunyo 30 ang huling 62 na sesyon sa ikalawang quarter, at ang galaw ng araw ay naging munting larawan ng quarter.
Ang eksaktong SQL sa likod ng bawat numero
WITH q2 AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS d_open,
argMax(toFloat64(close), window_start) AS d_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= toDateTime('2026-04-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
SELECT
ticker,
toString(min(d)) AS quarter_first_session,
count() AS quarter_sessions,
round(argMin(d_open, d), 2) AS quarter_open,
round(argMax(d_close, d), 2) AS quarter_close,
round((argMax(d_close, d) / argMin(d_open, d) - 1) * 100, 2) AS quarter_pct,
countIf(d_close > d_open) AS up_sessions
FROM q2
GROUP BY ticker
ORDER BY quarter_pct DESC, ticker ASCAbril 1 open hanggang Hunyo 30 close: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08%. Namuno ang QQQ sa quarter at mismong Hunyo 30, bagama't nagpalit ang gitna ng talaan: SPY ay nang bahagyang nakalamang sa IWM sa araw, IWM naman ang nakalamang sa SPY sa buong quarter. Nagsara ang QQQ nang mas mataas sa 38 ng 62 na sesyon (ang Q2 recap ay dumadaan dito panel sa bawat panel).
Hindi ba kakaiba ang araw?
Ang eksaktong SQL sa likod ng bawat numero
SELECT round(anyIf(oc_pct, d = toDate('2026-06-30')), 2) AS day_move_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-06-30'))), groupArrayIf(abs(oc_pct), d != toDate('2026-06-30'))) + 1 AS abs_move_rank,
count() AS 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-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)Open-to-close sa loob ng sesyon — ibang perspektiba mula sa close-over-close na scoreboard — ang SPY ay gumalaw ng 0.68%, na naka-rank na 7 sa 21 nakaraang sesyon batay sa absolute na laki. Ang index ay kalmante; ang tape sa ilalim ay hindi.
Lawak: makitid na positibong gilid
Ang eksaktong SQL sa likod ng bawat numero
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') AS day_dollar_volume
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')
OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
GROUP BY ticker
)
SELECT
countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
count() AS tickers_traded_both_sessions,
count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
/ countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,
countIf(ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')) AS sector_funds_counted,
countIf(ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND day_close > prior_close) AS sector_funds_up
FROM per_ticker
WHERE prior_close > 0 AND day_close > 03,349 ang tumaas, 3,033 ang bumaba, 88 ang hindi nagbago: 51.8% ng liquid na tape ang sumulong — isang coin flip sa ilalim ng 1.63% na print ng growth index. Ang liquidity filter ay nag-drop ng 5,055 sa 11,525 na dual-session na tickers (wala pang $1 milyon ang na-trade), binilang dito, hindi kailanman nakatago.
Sektor by sektor: kung saan talaga napunta ang pera
Ang bilang ng mga pangalan isang boto bawat isa ay nagtatago kung nasaan talaga nakaupo ang pera. Ang sampung fund sa ibaba ay bawat isa ay may hawak na isang slice ng S&P 500, at ang spread sa pinakamataas at pinakamababa ay nagsusukat kung gaano kabaliktad ang isang session.
Ang eksaktong SQL sa likod ng bawat numero
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
if(day_close > prior_close, 1, 0) AS is_up,
round(max((day_close / prior_close - 1) * 100) OVER () - (day_close / prior_close - 1) * 100, 2) AS pts_behind_leader,
day_dollar_bn
FROM per_name
ORDER BY pct_chg DESC, ticker ASCAng teknolohiya (XLK) ay tumas ng 2.69% at nakatayo mag-isa: industrials 1.34%, materials 0.36% at discretionary 0.15% ang tanging iba pang green, at ang board ay tumatakbo red mula sa financials (-0.17%) pababa sa utilities (-1.48%), staples (-1.53%) at real estate na huli sa -2%. Pinakamataas minus pinakamababa: 4.69 percentage points, 4 ng 10 fund na green. Isang index na tumaas ng kulang sa isang porsyento, isang four-point spread sa ilalim: isang sektor ang nagdala ng araw.
Ang pinakamalalaking galaw ng araw, sa buong merkado
Sinusukat ng breadth kung ilang ticker ang tumaas; ipinapakita nito kung alin ang pinakagalaw — ang nangungunang lima at pinakamababang lima batay sa porsyento ng pagbabago, sa mga ticker na may $10 milyon o higit pang volume.
Ang eksaktong SQL sa likod ng bawat numero
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') AS day_dollar_volume
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')
OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
GROUP BY ticker
HAVING prior_close > 1 AND day_close > 0 AND day_dollar_volume >= 10000000 AND ticker NOT IN ('SPCX')
)
SELECT
board,
ticker,
prior_close,
day_close,
pct_chg,
round(abs(pct_chg), 2) AS abs_pct_chg,
dollar_volume_m,
if(ticker IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date >= '2026-06-29' AND execution_date <= '2026-06-30'), 1, 0) AS split_record_on_file
FROM (
SELECT 'top gainers' AS board, ticker, round(prior_close, 2) AS prior_close, round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg, round(day_dollar_volume / 1e6, 0) AS dollar_volume_m
FROM per_ticker
ORDER BY (day_close / prior_close) DESC, ticker ASC
LIMIT 5
UNION ALL
SELECT 'top decliners' AS board, ticker, round(prior_close, 2) AS prior_close, round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg, round(day_dollar_volume / 1e6, 0) AS dollar_volume_m
FROM per_ticker
ORDER BY (day_close / prior_close) ASC, ticker ASC
LIMIT 5
)
ORDER BY if(board = 'top gainers', 0, 1) ASC, pct_chg DESC, ticker ASCHindi kamukha ng index ang alinmang board. Nanguna si JEM sa +256.76% sa $141 milyong trade; nawalan si SOC ng 55.89% sa $306 milyon. Tumaas si ABVX ng 38.56% sa $942 milyon, ang pinakamabigat na turnover sa magkabilang board; bumagsak si NVCT ng 35.62% at si UNCY ng 39.09%. Pinapanatiling tapat ng kolum ng split-record ang board — nagpe-print ang 1-for-10 reverse split bilang +900% na "gain" sa unadjusted tape — at dala ng bawat ticker dito ang 0: tunay na prints.
Tatlong row ang iisang trade na dalawang beses: si CRCA (-35.16%) at CRCG (-35.19%) ay bumagsak habang tumataas si CRCD ng 35.47% — malapit sa doble ng -17.53% na galaw ng crypto-adjacent na ticker sa ibaba: mga leveraged na single-stock wrapper.
Ang highlight ng araw: mga semiconductor pagsapit ng quarter turn
Anim na pangalan, iisang tema, magkakaibang resulta — co-movement at magnitude lamang; 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-30 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-06-30 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-06-30 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-06-30 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-30 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AMD', 'INTC', 'MU', 'SNDK', 'TSM', 'WDC')
AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
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,
day_dollar_bn
FROM per_name
ORDER BY tickerTumalon ang SanDisk 10.79%, AMD 7.7%, Intel 5.93%, TSMC 4.86% — habang ang MU, pinakamalaking ticket ng tape sa $37.41 bilyong turnover, nagsara lamang 0.52% na mas mataas at ang Western Digital (-2.01%) ay hindi sumali. Ito ang complex sa likod ng 2.69% sector print ng teknolohiya (ang Hunyo ni MU, tick by tick).
Ang counter-current ay dumaloy sa mga crypto-adjacent na financials, laban sa green tape:
Ang eksaktong SQL sa likod ng bawat numero
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-06-30 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-06-30 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-06-30 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-30 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('COIN', 'CRCL', 'HOOD', 'MSTR')
AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
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,
day_dollar_bn
FROM per_name
ORDER BY ticker-17.53% ang print ng CRCL, dumating ang $62.52 low nito sa 15:59 ET — ang huling minuto ng session — kasama ang MSTR -6.2%, COIN -3.61% at HOOD -1.53%. Co-movement na na-observe; hindi na-assert ang dahilan.
Ano ang dala ng news feed
Ang isang buod na tumatangging mag-assert ng mga sanhi ay utang sa mambabasa ang aktuwal na na-publish noong araw na iyon.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
names.n AS ticker,
countIf(has(tickers, names.n)) AS articles_today,
if(countIf(has(tickers, names.n)) = 0, 'none',
formatDateTime(toTimeZone(argMaxIf(published_utc, (published_utc, id), has(tickers, names.n)), 'America/New_York'), '%H:%i')) AS latest_et,
if(countIf(has(tickers, names.n)) = 0, 'no article in our feed this session',
JSONExtractString(argMaxIf(publisher, (published_utc, id), has(tickers, names.n)), 'name')) AS publisher_name,
if(countIf(has(tickers, names.n)) = 0, 'no article in our feed this session',
argMaxIf(title, (published_utc, id), has(tickers, names.n))) AS latest_headline
FROM global_markets.stocks_news
CROSS JOIN (SELECT arrayJoin(['NVDA', 'MU', 'SNDK', 'CRCL', 'SOC', 'ABVX', 'JEM']) AS n) AS names
WHERE published_utc >= '2026-06-30 04:00:00' AND published_utc < '2026-07-01 04:00:00'
GROUP BY names.n
ORDER BY articles_today DESC, ticker ASCAng pinaka-pinag-uusapang pangalan ay NVDA sa 21 na artikulo — hindi kabilang sa mga gumalaw ng araw — ang huli nitong piraso ng sesyon (16:28 ET, Investing.com) na may pamagat na "These Stocks Could Benefit as the Robotaxi Race Heats Up". Ang MU ay nakakuha ng 7; ang nag-iisang artikulo ng SanDisk (The Motley Fool) ay ang tanging headline sa buong araw na bumanggit ng aktuwal na galaw: "Why Sandisk Stock Is Skyrocketing Today".
Ang agwat ay ang natuklasan: ang pinakamalaking bumagsak ng araw, ang pinakamalaking tumas at ang pangalan na crypto-adjacent na pinakamalaki ang pagbagsak ay nakakuha ng 0, 0 at 0 na artikulo — tig-iisa, sa loob ng feed na 211 na piraso. Ang coverage ay hindi isang proxy para sa price action.
Kung saan nag-trade ang pera
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-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_volume_bn DESC
LIMIT 6
UNION ALL
SELECT
'by shares traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(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-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESCSa dolyar, ang MU ang nangibabaw sa lahat, kasama ang mga index fund: $37.41 billion laban sa $31.84 billion ng SPY — pangalawang sunod na session na ito ang naka-out-trade sa flagship index fund (Monday's recap ang nagdala ng una). Iba naman ang sinasabi ng share board: SOXS, isang 3x-leveraged inverse semiconductor ETF (515.5 milyong shares), at dalawang pangalan na mababa sa isang dolyar na katumbas lang ng rounding error ng araw ng MU — volume na dalawang magkaibang reading.
Isang pangalan ang sadyang hindi isinama sa parehong board: isang June listing na ang dating ticker ay pag-aari ng ibang, hindi kaugnay na kumpanya, kaya dalawang entity ang tina-tag ng vendor feeds sa iisang tatlong titik (receipts dito).
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
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
GROUP BY et_time
ORDER BY et_time2.05 billion shares sa unang kalahating oras, 0.78 billion na trough sa 13:30, at ang pinakamalaking bucket ng araw — 2.69 billion — sa quarter-end close, kung saan ang closing auction at ang mga rebalancing flow nito ang nagpi-print (ang June 29 deep dive ay pumupunta sa ilalim ng mga bar).
Ang options tape
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-30 00:00:00' AND sip_timestamp < '2026-07-01 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-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
) AS spy_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) = '260630') / 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,
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,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'))
/ toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C')), 2) AS spy_put_call_ratio,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'
AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) > spy_close)) / 1e6, 2) AS spy_0dte_otm_calls_m,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'
AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) <= spy_close)) / 1e6, 2) AS spy_0dte_itm_calls_m,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'
AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) < spy_close)) / 1e6, 2) AS spy_0dte_otm_puts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'
AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) >= spy_close)) / 1e6, 2) AS spy_0dte_itm_puts_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,
round(top_contract.7, 3) AS top_contract_avg_price,
round(top_contract.2 - spy_close, 2) AS top_strike_minus_spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'Umikot ang options sa 61.95 milyong kontrata sa 10.06 milyong print; ang calls ang bumagsak sa 57.3% ng buong volume ng tape, at 28% nito ay nag-expire noong Martes na iyon. Kabilang ang SPY sa kabilang panig: 12.04 milyong kontrata sa put/call ratio na 1.09 — mas maraming puts kaysa calls, sa araw na tumaas ang fund.
Kapag inihambing ang same-day expiries ng SPY sa $746.32 nitong close, nagiging kongkreto ang skew: 3.33 milyong out-of-the-money puts (mga strike sa ibaba ng close) at 2.28 milyong out-of-the-money calls, laban sa 1.77 milyong in-the-money calls at 0.63 milyong in-the-money puts — ang mga downside strike na nag-expire na walang halaga ang pinaka-abalang bucket ng 0DTE na araw ng SPY. Walang nag-print na may Friday, July 3 expiry code (0 na print — sarado ang market na Friday na iyon); ang Thursday weekly ay nagdala ng 10.52 milyon.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
concat(underlying, ' $', toString(strike), ' ', if(typ = 'C', 'call', 'put')) AS contract,
toString(expiry) AS expires,
formatDateTimeInJodaSyntax(expiry, 'MMMM d, yyyy') AS expires_label,
if(expiry = toDate('2026-06-30'), 1, 0) AS is_same_day,
contracts,
round(avg_px, 3) AS avg_premium,
round(100 * contracts / max(contracts) OVER (), 1) AS pct_of_busiest
FROM (
SELECT any(underlying_symbol) AS underlying,
any(toFloat64(strike_price)) AS strike,
any(option_type) AS typ,
any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS expiry,
sum(size) AS contracts,
avg(toFloat64(price)) AS avg_px,
any(ticker) AS occ
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'
GROUP BY ticker
ORDER BY contracts DESC, occ ASC
LIMIT 6
)
ORDER BY contracts DESC, contract ASCAng pinaka-abalang kontrata saanman ay ang same-day SPY $747 call — 821,361 na kontrata sa average premium na $0.641, natapos $0.68 sa itaas ng huling regular bar ng SPY, at walang halaga. Ang board sa likod nito ang aral: lima sa anim na pinaka-abalang kontrata sa tape ay mga same-day SPY strike na magkakalapit ng isang dolyar sa paligid ng close (SPY $748 call susunod), bawat isa ay nakikipagkalakalan sa ilang sentimo. Ang pagbubukod, sa 65.1% ng volume ng lider, ay KWEB $29 call na nag-expire December 18, 2026, hindi isang same-day na kontrata: isang anim-na-buwang posisyon sa gitna ng limang hapon na tiket sa loterya.
Rates: tumataas ang long end pagsapit ng pagtatapos ng semestre
Ang eksaktong SQL sa likod ng bawat numero
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jun30_yield_pct,
round((t.2 - t.3) * 100) AS one_day_change_bp
FROM (
SELECT arrayJoin([
('1 month', toFloat64(d.yield_1_month), toFloat64(p.yield_1_month)),
('3 month', toFloat64(d.yield_3_month), toFloat64(p.yield_3_month)),
('1 year', toFloat64(d.yield_1_year), toFloat64(p.yield_1_year)),
('2 year', toFloat64(d.yield_2_year), toFloat64(p.yield_2_year)),
('5 year', toFloat64(d.yield_5_year), toFloat64(p.yield_5_year)),
('10 year', toFloat64(d.yield_10_year), toFloat64(p.yield_10_year)),
('30 year', toFloat64(d.yield_30_year), toFloat64(p.yield_30_year)),
('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
]) AS t
FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-30') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-29') AS p
)Tumalon ang long end sa huling araw ng semestre: ang 10-year ay umakyat ng 6 bp sa 4.44%, ang 2-year ay 4 bp sa 4.14%, at ang 2s10s spread ay lumaki ng 2 bp sa 0.3 na puntos. Tumaas ang long yields sa isang session na ang pinakamahinang sektor, ang real estate (-2%), at ang pangatlong-pinakamahina, ang utilities (-1.48%), ay parehong klasikong sensitibo sa rates: sabayang pangyayaring dapat pansinin, hindi mekanismo na mapapatunayan ng datos na ito (ang H1 recap ay may dalang curve ng semestre).
Ang kalendaryo sa likod ng araw
Ang eksaktong SQL sa likod ng bawat numero
WITH
(
SELECT (count(), uniqExact(publisher))
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-30'
) AS news,
(
SELECT (argMax(t, n), 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-30'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-30') AS ex_dividend_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-06-30') AS splits_executed,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-30') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS filings_8k,
(SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-30' ORDER BY ticker
)) AS ipo_names,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
top_news.2 AS most_covered_articles,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-29')) AS filings_prior_session704 na rekord ng dibidendo ay pumasok sa ex-dividend noong huling araw ng quarter — isang alon sa katapusan ng quarter, kung saan karamihan ng mga kompanya sa US ay nagbabayad kada quarter — kasama ang 7 na splits at 2 na bagong listahan (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III). Ang filing column ang data-quality headline: naglalaman ang SEC index ng 31 na filings para sa Hunyo 30 — 0 insider Form 4s, 0 na 8-Ks — laban sa 4439 ng session bago. Isang month-end pattern sa feed, na nasuri sa tala ng month-end gap; anumang bilang na kasama ang araw na ito ay kulang hanggang mag-backfill.
Ang sesyon, beripikado
Ang eksaktong SQL sa likod ng bawat numero
SELECT
formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
count() AS spy_minute_bars,
countIf(window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00') AS day_sessions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-30 00:00:00' AND window_start < '2026-07-01 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 na mga bar — isang kumpletong sesyon, beripikado mula sa tape (ang exchange-calendar dataset ay naglalaman lamang ng mga paparating na pagsasara).
Ano ang kabuuan ng session
Ang 0.73% SPY print na may 51.8% ng mga stock na tumaas, 4 ng 10 sector funds na green, at 4.69 na puntos sa pagitan ng pinakamataas at pinakamababa ay hindi isang malawak na rally. Ito ay rally ng isang sektor, hindi ng buong index. Ang pinakamataas na volume nito sa kalahating oras ay nangyari sa quarter-end auction. Ang pagbabago ng index ay isang average. Ang average na ito ay dinala ng teknolohiya habang bumagsak ang karamihan ng mga sektor. Suriin ang dispersion bago maniwala sa arrow.
FAQ
Paano gumanap ang stock market noong Hunyo 30, 2026?
Nagsara ito nang mas mataas: tumanggap si SPY ng 0.73% at si QQQ ng 1.63% laban sa pagsasara noong Hunyo 29. Mas payat ang lawak — 51.8% ng mga liquid na pangalan ang tumaas, 4 sa 10 S&P sector funds ang green.
Aling sektor ang nanguna sa market noong Hunyo 30, 2026?
Technology: tumanggap si XLK ng 2.69%, laban sa 1.34% para sa industrials na sumunod at -2% para sa real estate na huli — 4.69 puntos ang pagitan ng pinakamataas at pinakamababa.
Ano ang pinakamalaking gumalaw na stocks noong Hunyo 30, 2026?
Sa mga pangalan na bumibilihan ng $10 milyon o higit pa, si JEM ang pinakamatang nakinabang (+256.76%) at si SOC ang pinakamatang nawalan (55.89%). Wala sa kanila ang may split record: tunay na paggalaw ng presyo ang mga ito, hindi resulta ng corporate action.
Paano gumanap ang stock market sa Q2 2026?
Mula sa pagbubukas noong Abril 1 hanggang sa pagsasara noong Hunyo 30, sa 62 na sesyon: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08% — isang quarter na pinangungunahan ng growth, na winakasan ng isang araw na pinangungunahan ng growth.
Bakit napakaraming volume ang nakakalakal sa huling kalahating oras?
Ang huling kalahating oras ay nagdala ng 2.69 bilyong shares laban sa 2.05 bilyon sa pagbubukas. Ang closing auction ang nagtatakda ng opisyal na closing price ng bawat stock sa iisang crossing, at doon nakakalakala ang mga index fund para tumugma rito; nagpapalapot sa daloy ang quarter-end rebalancing.
Mga tala sa data at paraan
- Ang mga basket. Ang sector board ay ang sampung SPDR sector funds na nakatala sa panel nito — parehong basket sa bawat session, kaya ang dispersion number ay nagko-kompare sa pagitan ng mga araw. Ang mover boards ay nangangailangan ng $10 milyon na turnover at nakaraang close na higit sa $1, hindi kasama ang reused-symbol listing sa itaas, at may split-record column.
- Ang mga caveat. Ang dollar volume ay isang per-minute proxy (close × volume per bar). Ang June 30 filing index ay halos walang laman (ang tala sa month-end gap ay nag-diagnose nito). Ang bilang ng balita ay isang vendor feed: ang kawalan ng artikulo dito ay hindi patunay na walang nailathala kahit saan.
- Ang paraan. Isang session (1, na-verify mula sa observed bars); mga timestamp na nakaimbak sa UTC, na-convert sa New York time sa mga query; ang "close" ay ang huling regular minute bar, hindi ang auction print. Ang mga option expiry ay muling na-parse mula sa OCC ticker (ang sariling column ng table ay sira); ang moneyness ay sinusukat laban sa huling regular bar ng SPY. Ang mga panel ay tumatakbo nang isang beses, sa oras ng pag-aauthor, sa gated read-only path. Warehouse hanggang July 13, 2026.
Ang bawat panel ay isang stored query result — chart, table, at SQL sa isang object. I-paste ang alinman sa kanila sa Strasmore terminal. Susunod na session: July 1.