خلاصه وضعیت بازار در 30 ژوئن 2026
تحلیل عملکرد بازار در آخرین جلسه فصل: رشد شاخصهای مبتنی بر فناوری در مقابل کاهش سایر بخشها و وضعیت معاملات اختیار معامله در پایان روز.
سهشنبه، 30 ژوئن 2026 — آخرین جلسه از این فصل — با پیشتازی بخش فناوری، بازار را در وضعیتی عمدتاً نزولی به سمت صعود سوق داد: QQQ میزان 1.63% و SPY میزان 0.73% رشد کرد، اما تنها 4 از صندوقهای بخش S&P در 10 با مثبتبندی بسته شدند (3,349 نامهای با نقدینگی بالا صعودی و 3,033 نزولی). جلسه قبل: خلاصهی 29 ژوئن. تمام اعداد زیر از یک پرسوجوی ذخیرهشده استخراج شدهاند — برای مشاهده کد SQL، هر پنل را باز کنید.
جدول امتیازات
هر تغییر، آخرین کندل زمانی جلسات عادی در 30 ژوئن را با 29 ژوئن (دوشنبه) مقایسه میکند.
کد دقیق 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 در قیمت 741.29$ باز شد و در قیمت 746.32$ بسته شد که نزدیک به بالاترین سطح 748.02$ خود بود. تفاوت 1.63% در QQQ نسبت به 0.12% در DIA، روند امروز را نشان میدهد: رشد در شاخصها جریان داشت، سهام بلوچاپ (blue chips) تقریباً بدون تغییر ماندند و IWM 0.49% شد.
پایان این فصل
روز 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 ASCاز بازگشایی 1 آوریل تا بستهشدن 30 ژوئن: QQQ 26.53%+، IWM 20.21%، SPY 14.13%، DIA 12.08%. QQQ در این فصل و همچنین در روز 30 ژوئن، بالاترین عملکرد را داشت؛ با این حال در میان شاخصها جایگاهها تغییر کرد: SPY در آن روز از IWM پیشی گرفت، اما IWM در کل فصل از SPY جلو بود. QQQ در 38 از 62 نشستها با رشد بسته شد (خلاصهی 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%، در رتبه 7 از مجموع 21 نشستهای معاملاتی از نظر اندازه مطلق قرار میگیرد. وضعیت شاخص آرام بود، اما معاملات در لایههای زیرین بازار با نوسان همراه بود.
وسعت بازار: یک پیشروی مثبت محدود
کد دقیق 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 نماد با معاملات دو جلسهای (کمتر از یک میلیون دلار) را که در اینجا محاسبه شدهاند، حذف نمیکند.
بررسی بخشها: جریان واقعی سرمایه به کدام سمت بود
شمارش تعداد شرکتها به تنهایی، محل تمرکز سرمایه را نشان نمیدهد. ده صندوق زیر هر کدام بخشی از S&P 500 را در اختیار دارند؛ اختلاف میان بهترین و بدترین عملکرد، میزان عدم توازن در این جلسه معاملاتی را نشان میدهد.
کد دقیق 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 ASCبخش فناوری (XLK) با رشد 2.69%، عملکردی متمایز داشت: بخشهای صنعتی 1.34%، مواد اولیه 0.36% و کالاهای مصرفی اختیاری 0.15% تنها بخشهای سبز دیگر بودند. سایر بخشها از حوزه مالی (-0.17%) تا خدمات عمومی (-1.48%)، کالاهای اساسی (-1.53%) و در نهایت املاک و مستغلات (-2%) در محدوده قرمز قرار داشتند. اختلاف بهترین و بدترین عملکرد: 4.69 واحد درصد؛ یعنی 4 از 10 صندوقها در محدوده سبز بودند. با وجود رشد کمتر از یک درصدی شاخص و اختلاف چهار واحدی میان بخشها، تنها یک بخش باعث پیشروی بازار شد.
The day's biggest movers, market-wide
Breadth counts how many names rose; this shows which moved most — top and bottom five by percentage change among names trading $10 million or more.
کد دقیق 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 ASCNeither board looks like the index. JEM led at +256.76% on $141 million traded; SOC lost 55.89% on $306 million. ABVX rose 38.56% on $942 million, the heaviest turnover on either board; NVCT fell 35.62% and UNCY 39.09%. The split-record column keeps the board honest — a 1-for-10 reverse split prints as a +900% "gain" on an unadjusted tape — and every name here carries a 0: real prints.
Three rows are one trade twice: CRCA (-35.16%) and CRCG (-35.19%) fell while CRCD rose 35.47% — each close to twice the -17.53% move of the crypto-adjacent name below: leveraged single-stock wrappers.
نقطه عطف روز: نیمههادیها در چرخش فصلی
شش نام، یک موضوع و نتایج بسیار متفاوت؛ تنها همحرکتی و میزان تغییرات مشاهده شد، اما دادهها علت آن را بیان نمیکنند.
کد دقیق 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 tickerسهام SanDisk با 10.79% درصد رشد مواجه شد، AMD با 7.7%، Intel با 5.93% و TSMC با 4.86%؛ در حالی که MU با حجم معاملات 37.41 میلیارد دلاری، بزرگترین سهم بازار بود اما تنها با 0.52% درصد افزایش بسته شد و Western Digital (-2.01%) تغییری نداشت. این وضعیت، پیچیدگیهای بخش 2.69% حوزه فناوری را نشان میدهد (جزئیات لحظهای ماه ژوئن در MU).
در مقابل، جریان مخالف در شرکتهای مالی مرتبط با کریپتو، برخلاف روند مثبت بازار مشاهده شد:
کد دقیق 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 tickerسهام CRCL با -17.53% درصد کاهش بسته شد و کمترین میزان قیمت آن در ساعت 15:59 ET — یعنی آخرین دقیقه جلسه معاملاتی — به سطح 62.52 دلار رسید؛ در همین حال 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 میلیارد دلار در برابر 31.84 میلیارد دلار SPY؛ این دومین جلسه متوالی است که حجم معاملات آن از صندوق شاخصی اصلی فراتر رفته است (خلاصهی روز دوشنبه اولین مورد را پوشش میدهد). اما دادههای مربوط به تعداد سهام، روایت دیگری دارند: SOXS، یک ETF معکوس با اهرم 3 برابری در حوزه نیمههادیها (515.5 میلیون سهم)، و دو نماد با قیمت زیر یک دلار که ارزش آنها در برابر معاملات روزانه MU ناچیز است — حجم معاملات دو جنبه را نشان میدهد.
یک نماد به عمد در هر دو لیست قرار نگرفته است: یک شرکت که در ماه ژوئن عرضه شد و نماد معاملاتی آن پیشتر متعلق به شرکت دیگری و بیارتباط بود، به همین دلیل فیدهای تامینکننده، دو نهاد را با یک نماد سه حرفی شناسایی میکنند (گزارشها در اینجا).
کد دقیق 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_time2.05 میلیارد سهم در نیم ساعت اول بازار، یک نقطه حضیض 0.78 میلیارد دلاری در ساعت 13:30، و بزرگترین حجم معاملات روز یعنی 2.69 میلیارد در زمان بسته شدن بازار در پایان فصل؛ جایی که مزایده بسته شدن و جریانهای بازتعادل آن ثبت میشوند (تحلیل دقیق 29 ژوئن در بخش زیرین آمده است).
بازار آپشن
کد دقیق 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'در معاملات آپشن، 61.95 میلیون قرارداد در قالب 10.06 میلیون تراکنش انجام شد؛ قراردادهای Call بخش 57.3% از حجم کل بازار را به خود اختصاص دادند و 28% از آنها در آن سهشنبه منقضی شدند. روند SPY در جهت مخالف بود: 12.04 میلیون قرارداد با نسبت Put/Call برابر با 1.09؛ یعنی تعداد Putها بیشتر از Callها بود، آن هم در روزی که این صندوق رشد داشت.
مقایسه قراردادهای منقضیشونده در همان روز با قیمت بستهشدن SPY در سطح $746.32، میزان انحراف (skew) را مشخص میکند: 3.33 میلیون قرارداد Put خارج از سود (strikeهای پایینتر از قیمت بسته شدن) و 2.28 میلیون قرارداد Call خارج از سود، در مقابل 1.77 میلیون قرارداد Call در سود و 0.63 میلیون قرارداد Put در سود؛ پرکارترین دسته در روز 0 روزه SPY، قراردادهای Strike پایینروندهای بودند که بیارزش منقضی شدند. هیچ قراردادی با کد انقضای جمعه 3 جولای ثبت نشد (0 تراکنش — بازار در آن جمعه تعطیل است)؛ قراردادهای هفتگی روز پنجشنبه شامل 10.52 میلیون قرارداد بود.
کد دقیق 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 ASCپرکارترین قرارداد در کل بازار، قرارداد Call SPY با قیمت $747 در همان روز بود — 821,361 قرارداد با میانگین قیمت (premium) $0.641، که با $0.68 بالاتر از آخرین کندل عادی SPY بسته شد و بیارزش منقضی شد. آمار پشت این قرارداد یک درس مهم دارد: پنج قرارداد از شش قرارداد پرکار بازار، قراردادهای SPY در همان روز بودند که قیمت Strike آنها در نزدیکی زمان بسته شدن، تنها یک دلار با هم فاصله داشت (SPY $748 call مورد بعدی) و هر کدام تنها با قیمتهای بسیار اندک معامله میشدند. استثنا، با حجم 65.1% از حجم قرارداد پیشرو، قرارداد KWEB $29 call بود که در تاریخ December 18, 2026 منقضی میشد و یک قرارداد همان روز نبود: در واقع یک موقعیت ششماهه در میان پنج معامله بسیار پرخطر (lottery ticket) در عصر آن روز بود.
نرخها: بخش سررسیدهای بلندمدت در پایان نیمسال افزایش یافت
کد دقیق 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 واحد پایه به 4.44% رسید، بازده 2 ساله 4 واحد پایه به 4.14% رسید و اسپرد 2s10s به میزان 2 واحد پایه افزایش یافت و به 0.3 واحد رسید. بازدهیهای بلندمدت در جلسهای افزایش یافت که در آن ضعیفترین بخش، یعنی املاک و مستغلات (-2%)، و سومین بخش ضعیف، یعنی خدمات شهری (-1.48%)، هر دو از بخشهای کلاسیک حساس به نرخ بهره هستند: همزمانیای که ارزش توجه دارد، هرچند این دادهها نمیتوانند رابطه علی و معلولی را اثبات کنند (خلاصهی نیمسال اول منحنی سررسید نیمسال را تعیین میکند).
The calendar behind the day
کد دقیق 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 dividend records went ex-dividend on the quarter's last day — a quarter-end wave, most US companies paying quarterly — with 7 splits and 2 new listings (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III). The filing column is the data-quality headline: the SEC index holds 31 filings for June 30 — 0 insider Form 4s, 0 8-Ks — against 4439 the session before. A month-end pattern in the feed, diagnosed in the month-end gap note; any count including this day is understated until it backfills.
جلسه معاملاتی، تایید شده
کد دقیق 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 از ساعت 04:00 تا 19:59 به وقت نیویورک با دقیقاً 390 کندل در بازه زمانی عادی تشکیل شدهاند — یک جلسه کامل که از طریق دادههای معاملاتی (مجموعه دادههای تقویم بورس تنها شامل زمانهای بسته شدن آتی است) تایید شده است.
خلاصه وضعیت جلسه معاملاتی
بسته شدن شاخص SPY با 0.73% و رشد 51.8% از نمادها، در حالی که 4 از صندوقهای بخش 10 در محدوده سبز قرار داشتند و فاصله بین بهترین و بدترین عملکرد 4.69 واحد بود، نشاندهنده یک رالی گسترده نیست. این وضعیت در واقع رالی یک بخش خاص است که ظاهر یک شاخص را به خود گرفته و در پرتحرکترین نیمساعت در حراج پایان فصل رخ داده است. تغییرات شاخص یک میانگین است و در این مورد، بخش تکنولوژی باعث صعود شد در حالی که اکثر بخشها کاهش یافتند: پیش از اعتماد به جهت حرکت شاخص، پراکندگی دادهها را بررسی کنید.
سوالات متداول
وضعیت بازار سهام در 30 ژوئن 2026 چگونه بود؟
بازار با رشد بسته شد: SPY با میزان 0.73% و QQQ با میزان 1.63% نسبت به قیمت بستهشدن در 29 ژوئن افزایش یافت. وسعت بازار محدودتر بود؛ 51.8% از نامهای پرنوسان صعودی بودند و 4 از 10 صندوقهای بخشی S&P در محدوده سبز قرار گرفتند.
کدام بخش در 30 ژوئن 2026 پیشتاز بازار بود؟
بخش فناوری: XLK با میزان 2.69% رشد کرد، در حالی که بخش صنایع با 1.34% و بخش املاک و مستغلات با -2% در رتبههای بعدی قرار گرفتند — اختلاف بین بهترین و بدترین بخش 4.69 واحد بود.
بزرگترین تغییرات قیمت سهام در 30 ژوئن 2026 چه بود؟
در میان نمادهایی که حجم معاملات آنها 10 میلیون دلار یا بیشتر بود، JEM بیشترین رشد (256.76%+) و SOC بیشترین کاهش (55.89%) را داشت. هیچکدام از این تغییرات ناشی از تجزیه یا ادغام سهام نبود؛ هر دو تغییرات واقعی قیمت هستند و با اقدامات شرکتی مرتبط نیستند.
عملکرد بازار سهام در Q2 2026 چگونه بود؟
از بازگشایی در 1 آوریل تا بستهشدن در 30 ژوئن، در طول 62 جلسه معاملاتی: QQQ با 26.53%+، IWM با 20.21%، SPY با 14.13% و DIA با 12.08% معاملات شدند — این یک فصل مبتنی بر رشد بود که با یک روز مبتنی بر رشد به پایان رسید.
چرا حجم معاملات در نیم ساعت آخر بسیار زیاد است؟
نیم ساعت پایانی شامل 2.69 میلیارد سهم بود، در حالی که در زمان بازگشایی بازار 2.05 میلیارد سهم معامله شد. حراج پایانی، قیمت رسمی بستهشدن هر سهم را در یک فرآیند تطبیق تعیین میکند و صندوقهای شاخص برای مطابقت با آن در آن زمان معامله میکنند؛ همچنین بازآرایی انتهای فصل، تمرکز جریان معاملات را افزایش میدهد.
یادداشتهای داده و روششناسی
- سبدها. هیئت بخشها شامل ده صندوق sector SPDR است که در پنل ذکر شدهاند؛ این سبد در هر جلسه ثابت است، بنابراین عدد پراکندگی (dispersion) در روزهای مختلف قابل مقایسه است. هیئتهای جابهجایی (mover boards) مستلزم گردش مالی 10 میلیون دلاری و قیمت بستهشدن بالای 1 دلار هستند، لیست نمادهای تکراری بالا را شامل نمیشوند و دارای ستون ثبت تغییرات ساختاری (split-record) هستند.
- ملاحظات. حجم دلاری یک شاخص بر پایه دقیقه است (قیمت بستهشدن × حجم در هر کندل). شاخص گزارش 30 ژوئن تقریباً خالی است (یادداشت شکاف پایان ماه). تعداد اخبار از یک منبع تامینکننده است: عدم وجود مقاله در اینجا به معنای عدم انتشار خبر در هیچ جای دیگری نیست.
- روششناسی. یک جلسه (1، تایید شده از کندلهای مشاهده شده)؛ زمانبندیها در UTC ذخیره شده و در پرسوجوها به وقت نیویورک تبدیل شدهاند؛ "close" آخرین کندل منظم دقیقهای است، نه قیمت حراج. تاریخ انقضای اختیار معامله از تیکر OCC بازخوانی میشود (ستون خودِ جدول دچار نقص است)؛ میزان در سود بودن (moneyness) نسبت به آخرین کندل منظم SPY اندازهگیری میشود. پنلها یک بار در زمان نگارش، از طریق مسیر محدود و فقطخواندنی اجرا میشوند. انبار داده تا تاریخ 13 جولای 2026.
هر پنل نتیجه یک پرسوجوی ذخیرهشده است — شامل نمودار، جدول و SQL در یک شیء واحد. هر یک از آنها را در ترمینال Strasmore کپی کنید. جلسه بعدی: 1 جولای.