2026年6月30日市场回顾
季度末行情解析:科技股领涨带动指数走高,存储板块表现强劲,查看当日期权成交数据。
2026年6月30日(本季度最后一个交易日),市场整体走势偏软,但受科技股带动上涨:QQQ上涨了 1.63%,SPY上涨了 0.73%,但仅有 4 的 10 S&P板块基金收涨(3,349 个流动性良好的标的上涨,3,033 个下跌)。前一交易日回顾:6月29日回顾。以下所有数据均来自存储查询——您可以展开任何面板以查看 SQL 语句。
The scoreboard
Every change compares June 30's last regular-session minute bar with Monday June 29's.
每个数字背后的完整 SQL
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.tickerSPY opened at $741.29 and finished at $746.32, near its $748.02 high. QQQ's 1.63% against DIA's 0.12% is the shape of the day: growth ran, blue chips barely moved, IWM 0.49%.
本季度收官
6月30日结束了第二季度最后 62 个交易日。当日走势是本季度的缩影。
每个数字背后的完整 SQL
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 ASC4月1日至6月30日:QQQ +26.53%,IWM 20.21%,SPY 14.13%,DIA 12.08%。QQQ 季度表现及6月30日当日表现均居首位。但中期表现有所不同:当日 SPY 略领先于 IWM,而整个季度 IWM 领先于 SPY。QQQ 在 62 个交易日中上涨了 38 (Q2回顾 提供逐项分析)。
今日走势异常吗?
每个数字背后的完整 SQL
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
)从日内波动角度看(不同于收盘价对比指标)—— SPY 波动了 0.68%,在 21 个交易日中,其绝对波动幅度排名第 7。指数表现平稳,但盘中交易极其活跃。
市场宽度:微弱的上涨优势
每个数字背后的完整 SQL
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 只涨股、3,033 只跌股、88 持平:51.8% 的活跃股票上涨 —— 在 1.63% 的指数增长背景下,这几乎是随机的结果。流动性筛选排除了 5,055 的 11,525 个双交易日股票(成交额低于 100 万美元),此处统计的均为公开数据。
Sector by sector: where the money actually went
Counting names one vote each hides where the money sat. The ten funds below each hold one slice of the S&P 500, and the spread between best and worst measures how uneven a session was.
每个数字背后的完整 SQL
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 ASCTechnology (XLK) gained 2.69% and stood alone: industrials 1.34%, materials 0.36% and discretionary 0.15% were the only others green, and the board runs red from financials (-0.17%) down to utilities (-1.48%), staples (-1.53%) and real estate last at -2%. Best minus worst: 4.69 percentage points, 4 of 10 funds green. An index up less than a percent, a four-point spread underneath: one sector carried the day.
今日市场整体涨跌幅最大的个股
市场广度衡量上涨股票的数量;本列表显示了交易额在 1000 万美元及以上的个股中,涨跌幅最大的前五名和后五名。
每个数字背后的完整 SQL
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 ASC两市走势均与指数不符。JEM 在成交额 141 百万美元的情况下领涨,涨幅为 +256.76%;SOC 在成交额 306 百万美元的情况下下跌了 55.89%。ABVX 在成交额 942 百万美元的情况下上涨了 38.56%,为两市中成交额最大的个股;NVCT 下跌了 35.62%,UNCY 下跌了 39.09%。分拆记录列确保了数据的准确性——例如,1 比 10 的 反向拆股 在未经调整的行情中会显示为 +900% 的“涨幅”——而此处列出的每只个股都符合 0:即真实的成交记录。
有三行数据是同一笔交易的重复记录:CRCA (-35.16%) 和 CRCG (-35.19%) 下跌,而 CRCD 上涨了 35.47% —— 两者的涨跌幅几乎是下方加密货币相关标的(杠杆个股包装产品)-17.53% 涨跌幅的两倍。
今日亮点:半导体板块出现分化
六家公司,一个主题,结果迥异——仅表现出同向运动和波动幅度,数据并未说明原因。
每个数字背后的完整 SQL
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 tickerSanDisk 上涨 10.79%,AMD 上涨 7.7%,Intel 上涨 5.93%,TSMC 上涨 4.86% —— 而成交额最大的 MU(达 37.41 亿美元)仅上涨 0.52%,Western Digital (-2.01%) 则未参与涨势。这是科技股 2.69% 板块表现背后的复杂情况(MU 6 月逐笔数据)。
与大盘走势相反,加密货币相关金融股出现逆势下跌:
每个数字背后的完整 SQL
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 tickerCRCL 下跌 -17.53%,其 62.52 美元的低点出现在东部时间 15:59 —— 即交易时段的最后一分钟 —— 此时 MSTR -6.2%、COIN -3.61% 和 HOOD -1.53% 也在下跌。观察到同向运动,但未断定原因。
新闻摘要
回顾新闻摘要应如实呈现当日发布的实际内容,而非断言原因。
每个数字背后的完整 SQL
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 ASC当日报道最多的公司是 NVDA,共有 21 篇报道,但其股价并未出现明显波动。该公司的最后一篇报道(16:28 ET, Investing.com)标题为“These Stocks Could Benefit as the Robotaxi Race Heats Up”。MU 有 7 篇报道;SanDisk 仅有一篇报道(The Motley Fool),也是全天唯一提及股价波动的标题:“Why Sandisk Stock Is Skyrocketing Today”。
研究发现,报道量与股价走势存在脱节:当日跌幅最大的股票、涨幅最大的股票以及跌幅最大的加密货币相关股票,其报道量分别为 0、0 和 0 篇——在总计 211 篇的新闻流中,这些股票的报道数均为零。报道量并不能代表价格走势。
资金流向
每个数字背后的完整 SQL
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) DESC按成交金额计算,MU 的交易量远超其他所有标的(包括指数基金):$37.41 十亿,而 SPY 为 $31.84 十亿。这是该股连续第二个交易日的成交量超过旗舰指数基金(周一回顾 记录了首次发生的情况)。但从成交股数来看,情况有所不同:SOXS(3 倍做空半导体 ETF,成交 515.5 百万股)以及两只股价低于 1 美元的个股,其成交量在 MU 面前几乎可以忽略不计 —— 这使得 成交量 数据呈现出两种截然不同的解读。
有一个标的被刻意排除在两个统计表之外:该标的于 6 月上市,其代码此前属于另一家无关公司,导致数据供应商将两个不同的实体标记为相同的三个字母(查看详情)。
每个数字背后的完整 SQL
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_time开盘半小时内成交 2.05 十亿股,13:30 时触及 0.78 十亿股的低点,并在季度末收盘时达到全天峰值 —— 2.69 十亿。收盘时的 集合竞价 及其再平衡资金流也在此期间产生(6 月 29 日深度分析 包含相关细节)。
The options tape
每个数字背后的完整 SQL
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'Options traded 61.95 million contracts across 10.06 million prints; calls took 57.3% of tape-wide volume, and 28% of it expired that Tuesday. SPY leaned the other way: 12.04 million contracts at a put/call ratio of 1.09 — more puts than calls, on a day the fund rose.
Sorting SPY's same-day expiries against its $746.32 close makes the skew concrete: 3.33 million out-of-the-money puts (strikes below the close) and 2.28 million out-of-the-money calls, against 1.77 million in-the-money calls and 0.63 million in-the-money puts — downside strikes that expired worthless were the busiest bucket of SPY's 0DTE day. Nothing with a Friday, July 3 expiry code printed at all (0 prints — the market is closed that Friday); the Thursday weekly carried 10.52 million.
每个数字背后的完整 SQL
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 ASCThe busiest contract anywhere was the same-day SPY $747 call — 821,361 contracts at an average premium of $0.641, finishing $0.68 above SPY's last regular bar, and worthless. The board behind it is the lesson: five of the six busiest contracts on the tape were same-day SPY strikes a dollar apart around the close (SPY $748 call next), each trading for cents. The exception, at 65.1% of the leader's volume, was KWEB $29 call expiring December 18, 2026, not a same-day contract: one six-month position among five afternoon lottery tickets.
利率:长端利率在半年度收盘前走高
每个数字背后的完整 SQL
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
)长端利率在半年度最后一个交易日走高:10年期国债收益率上升 6 bp 至 4.44%,2年期国债收益率上升 4 bp 至 4.14%,且 2s10s 利差 扩大了 2 bp 至 0.3 个基点。在交易日内,长端收益率普遍上升;而表现最弱的板块房地产 (-2%) 和第三弱的板块公用事业 (-1.48%) 均对利率高度敏感。这种现象值得关注,但目前的数据尚无法证明其因果关系(上半年回顾 决定了半年度的收益率曲线)。
日历背后的数据逻辑
每个数字背后的完整 SQL
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 股息记录在季度最后一天进入 除息期 —— 随着多数美国公司进行季度派息,出现了季末派息潮 —— 同时伴随 7 次拆股和 2 次新股上市 (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III)。备案数据质量是核心指标:SEC 指数显示 6 月 30 日共有 31 份备案文件 —— 包括 0 份 内部人士 Form 4 和 0 份 8-K 文件 —— 而前一个交易日仅为 4439 份。数据流中存在月末模式,详见 月末缺口报告;在数据回填前,任何包含此日的统计结果都会被低估。
交易时段验证
每个数字背后的完整 SQL
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'SPY 的 K 线在纽约时间 04:00 至 19:59 之间运行,包含精确的 390 根常规窗口 K 线 —— 已通过行情数据验证完整交易时段(交易所日历数据集仅包含即将到来的收盘时间)。
交易总结
0.73% 的 SPY 涨幅,伴随 51.8% 的个股上涨,4 的 10 板块基金走高,以及 4.69 点的涨跌幅差距,这并非普涨行情。这只是单一板块的上涨掩盖了指数的表现,且正值季度末拍卖最剧烈的半小时内。指数变动仅是平均值,本次上涨由科技股带动,而多数板块均在下跌:在盲目跟随指数方向前,请先观察离散度。
常见问题
2026年6月30日的股市表现如何?
股市收涨:相比6月29日收盘,SPY上涨了 0.73%,QQQ上涨了 1.63%。市场涨幅覆盖面较窄——51.8% 的高流动性股票上涨,4% 的 10 S&P 板块基金呈现上涨态势。
2026年6月30日哪个板块领涨市场?
科技板块:XLK上涨了 2.69%,工业板块紧随其后上涨 1.34%,房地产板块表现最差,上涨 -2% —— 最强与最弱板块的差距为 4.69 点。
2026年6月30日波动最大的股票有哪些?
在成交额在1000万美元及以上的股票中,JEM涨幅最大(+256.76%),SOC跌幅最大(55.89%)。两者均未涉及拆股记录:均为实际价格波动,而非公司行为导致的异常。
2026年第二季度的股市表现如何?
从4月1日开盘到6月30日收盘,在 62 个交易日中:QQQ上涨 26.53%,IWM上涨 20.21%,SPY上涨 14.13%,DIA上涨 12.08% —— 这是一个由成长股驱动的季度,并以一个由成长股驱动的交易日结束。
为什么最后半小时的成交量如此巨大?
最后半小时的成交量为 2.69 十亿股,而开盘时仅为 2.05 十亿股。收盘竞价通过一次撮合确定每只股票的官方收盘价,指数基金通过在此交易来匹配该价格;季度末的调仓活动集中了这些交易流。
数据说明与方法
- 板块构成。 板块看板由该面板中列出的十只 SPDR 板块基金组成。每交易日篮子内容一致,因此离散度数值具有跨日可比性。异动看板要求成交额达到 1000 万美元且前一交易日收盘价高于 1 美元,且不包括上述重复使用的代码,并包含拆股记录列。
- 注意事项。 成交金额是按分钟计算的近似值(收盘价 × 每根 K 线成交量)。6 月 30 日的申报指数数据几乎为空(请参阅 月末缺口说明 进行诊断)。新闻计数仅采用单一供应商的数据源:此处未记录文章并不代表该处未发布任何新闻。
- 计算方法。 一个交易日(1,经观测 K 线验证);时间戳以 UTC 存储,并在查询时转换为纽约时间;“收盘价”指最后一根常规分钟 K 线,而非集合竞价价格。期权到期日通过 OCC 代码重新解析(表格自带列存在错误);价内/价外程度是相对于 SPY 的最后一根常规 K 线计算的。面板在编写时通过受限的只读路径运行一次。数据仓库截至 2026 年 7 月 13 日。
每个面板都是存储的查询结果——包含图表、表格和 SQL。您可以将任何面板粘贴到 Strasmore 终端。下一交易日:7 月 1 日。