Обзор рынка за 30 июня 2026 года в цифрах
Обзор последнего торгового дня квартала: рост технологического сектора на фоне общего снижения рынка, лидерство акций памяти и данные по опционам на закрытии.
Вторник, 30 июня 2026 года — последний торговый день квартала — прошел на фоне общего снижения рынка, вызванного ростом технологического сектора: QQQ вырос на 1.63%, а SPY на 0.73%, однако только 4 фондов сектора 10 S&P закрылись в плюсе (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: рост котировок, практически отсутствие движения у голубых фишек и 0.49% IWM.
Итоги квартала
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 тикеров с двойным объемом торгов за сессию (объем менее $1 million), включенных в данный отчет.
По секторам: куда на самом деле ушли деньги
Подсчет количества компаний не дает представления о распределении капитала. Десять фондов, перечисленных ниже, представляют собой доли в 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 фондов закрылись в плюсе. Индекс вырос менее чем на один процент при разрыве в четыре пункта: один сектор обеспечил основной рост.
Основные участники торгов за день
Ширина рынка показывает количество выросших бумаг; данный список содержит пять лидеров и пять аутсайдеров по процентному изменению среди акций с объемом торгов от $10 миллионов и выше.
Точный 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 вырос на 256.76% при объеме торгов $141 млн; SOC упал на 55.89% при объеме $306 млн. ABVX вырос на 38.56% при объеме $942 млн, что является самым высоким оборотом на обеих биржах; 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 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 tickerCRCL показала результат -17.53%, достигнув минимума в $62.52 в 15:59 ET — на последней минуте сессии. Одновременно с этим динамику продемонстрировали 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. Это вторая торговая сессия подряд, когда объем торгов MU превысил объем флагманского индексного фонда (обзор за понедельник содержит данные за первый день). Данные по акциям говорят о другом: SOXS, трехкратный кредитный обратный ETF на полупроводники (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 миллионам сделок. На колл-опционы пришлось 57.3% от общего объема, при этом 28% из них истекли в тот вторник. По SPY наблюдалась обратная динамика: 12.04 миллионов контрактов при соотношении пут/колл 1.09 — больше пут-опционов, чем колл-опционов, несмотря на рост фонда.
Сравнение экспирации SPY в тот же день с ценой закрытия в $746.32 наглядно показывает перекос: 3.33 миллионов внеденежных пут-опционов (страйк ниже цены закрытия) и 2.28 миллионов внеденежных колл-опционов против 1.77 миллионов вденежных колл-опционов и 0.63 миллионов вденежных пут-опционов. Наибольшим сегментом в рамках 0DTE дня для SPY стали пут-опционы с ценой исполнения ниже текущей, которые истекли без стоимости. Контракты с датой экспирации в пятницу, 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Самым активным контрактом стал SPY колл-опцион со страйком $747 с экспирацией в тот же день — 821,361 контрактов при средней премии $0.641; цена закрытия была на $0.68 выше последней регулярной свечи SPY, и контракт истек без стоимости. Статистика наглядно это подтверждает: пять из шести самых активных контрактов на рынке представляли собой SPY-опционы с экспирацией в тот же день и разницей в один доллар между страйками в районе закрытия (следующий — SPY $748 call), каждый из которых торговался за центы. Исключением стал контракт с объемом в 65.1% от объема лидера — это был KWEB $29 call с экспирацией December 18, 2026, а не контракт с экспирацией в тот же день: одна шестимесячная позиция среди пяти краткосрочных спекулятивных сделок.
Процентные ставки: рост длинного конца кривой к закрытию полугодия
Точный 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%). Оба сектора классически чувствительны к изменению ставок; это совпадение заслуживает внимания, хотя данные не позволяют установить причинно-следственную связь (обзор за первое полугодие определяет динамику кривой за этот период).
Календарь текущего дня
Точный 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 компаний перешли в статус ex-dividend в последний день квартала. Это связано с волной выплат в конце квартала, характерной для большинства компаний США. Также зафиксировано 7 сплитов и 2 новых листингов (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III). Основным показателем качества данных является объем отчетности: индекс SEC содержит 31 документов за 30 июня — 0 инсайдерских форм 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 идут с 04:00 по 19:59 по нью-йоркскому времени; всего 390 баров в регулярном окне — полная сессия, подтвержденная по ленте (данные биржевого календаря содержат только предстоящие закрытия).
Итоги сессии
Показатель 0.73% SPY, при котором 51.8% акций выросли в цене, 4 фондов сектора 10 закрылись в плюсе, а разрыв между лучшим и худшим результатом составил 4.69 пунктов, не является широким ралли. Это рост одного сектора, замаскированный под движение индекса, произошедший в период высокой активности в связи с аукционом в конце квартала. Изменение индекса — это среднее значение; в данном случае рост обеспечил технологический сектор, в то время как большинство остальных секторов снизились. Прежде чем доверять направлению движения, проверьте дисперсию.
FAQ
Как изменился фондовый рынок 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%). Ни одна из этих компаний не проводила дробление акций: оба изменения являются реальными колебаниями цен, а не следствием корпоративных действий.
Какова динамика фондового рынка во втором квартале 2026 года?
С открытия 1 апреля по закрытие 30 июня, на протяжении 62 торговых сессий: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08%. Квартал, характеризующийся ростом акций роста, завершился аналогичным днем.
Почему в последние полчаса торгуется такой большой объем?
В последнем получании прошел объем в 2.69 миллиарда акций против 2.05 миллиарда на открытии. Закрычный аукцион устанавливает официальную цену закрытия каждой акции в рамках одной сделки, и индексные фонды торгуют там для соответствия этой цене; ребалансировка в конце квартала дополнительно концентрирует потоки.
Примечания к данным и методология
- Корзины. В секторной панели представлены десять фондов SPDR, указанных в списке — состав корзины неизменен каждую сессию, что позволяет сравнивать показатели дисперсии по дням. Для панелей по лидерам роста и падения (movers) требуется оборот в 10 миллионов долларов и цена закрытия выше 1 доллара; список не включает повторно используемые символы, указанные выше, и содержит столбец с данными о сплитах.
- Ограничения. Долларовый объем является минутным показателем (цена закрытия × объем за бар). Индекс по отчетности за 30 июня практически пуст (примечание о разрыве в конце месяца объясняет это). Подсчет новостей ведется по одному источнику: отсутствие статьи в данном списке не означает, что публикации не было в других источниках.
- Методология. Одна сессия (1, подтверждено по наблюдаемым барам); временные метки хранятся в UTC и конвертируются в нью-йоркское время в запросах; «закрытие» — это последний регулярный минутный бар, а не результат аукциона. Сроки экспирации опционов пересчитываются по тикеру OCC (столбец в самой таблице содержит ошибки); денежность (moneyness) измеряется относительно последнего регулярного бара SPY. Панели формируются один раз в момент подготовки через защищенный путь чтения. Данные хранилища актуальны на 13 июля 2026 года.
Каждая панель представляет собой результат сохраненного запроса — график, таблицу и SQL в одном объекте. Вы можете скопировать любой из них в терминал Strasmore. Следующая сессия: 1 июля.