Strasmore Research
Обзор рынка Matt ConnorАвтор: Matt Connor · Обновлено 2026-07-24

Обзор рынка за 30 июня 2026 года в цифрах

Обзор последнего торгового дня квартала: рост технологического сектора на фоне общего снижения рынка, лидерство акций памяти и данные по опционам на закрытии.

Вторник, 30 июня 2026 года — последний торговый день квартала — прошел на фоне общего снижения рынка, вызванного ростом технологического сектора: QQQ вырос на 1.63%, а SPY на 0.73%, однако только 4 фондов сектора 10 S&P закрылись в плюсе (3,349 ликвидных активов выросли, 3,033 снизились). Предыдущая сессия: обзор за 29 июня. Все приведенные ниже данные получены из хранимых запросов — вы можете развернуть любую панель, чтобы увидеть SQL-код.

Итоговые показатели

Все изменения рассчитаны путем сравнения последней минутной свечи регулярной сессии 30 июня с показателями понедельника, 29 июня.

ЗапросSPY / QQQ / DIA / IWM — 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.ticker

SPY открылся на уровне $741.29 и закрылся на уровне $746.32, вблизи своего максимума $748.02. Основной тренд дня — это 1.63% QQQ против 0.12% DIA: рост котировок, практически отсутствие движения у голубых фишек и 0.49% IWM.

Итоги квартала

30 июня завершились последние сессии 62 во втором квартале. Динамика этого дня повторила общую тенденцию квартала.

ЗапросИтоги Q2 2026: динамика ETF по каждому индексу с открытия 1 апреля по закрытие 30 июня, регулярные часы
Точный 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 представлен по каждому инструменту отдельно).

Был ли этот день необычным?

ЗапросРейтинг изменения цены SPY (от открытия до закрытия) за последний месяц (1 — максимальное абсолютное изменение)
Точный 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 предыдущих сессий по абсолютному размеру изменения. Индекс оставался спокойным, в то время как динамика отдельных сделок была высокой.

Широта рынка: незначительное преимущество роста

ЗапросКоличество растущих и падающих акций среди тикеров с объемом торгов от $1M на 30 июня
Точный 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 > 0

3,349 растущих, 3,033 падающих, 88 без изменений: 51.8% ликвидных инструментов выросли — результат сопоставим с подбрасыванием монеты на фоне роста индекса на 1.63%. Фильтр ликвидности исключает 5,055 из 11,525 тикеров с двойным объемом торгов за сессию (объем менее $1 million), включенных в данный отчет.

По секторам: куда на самом деле ушли деньги

Подсчет количества компаний не дает представления о распределении капитала. Десять фондов, перечисленных ниже, представляют собой доли в S&P 500. Разница между лучшим и худшим показателем демонстрирует неравномерность торговой сессии.

Запрос10 секторных фондов S&P на 30 июня: изменение к закрытию понедельника и отставание от лидера
Точный 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 миллионов и выше.

ЗапросТоп-5 лидеров роста и падения среди акций с объемом торгов от $10M на 30 июня (один дублирующийся символ исключен)
Точный 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 ticker

CRCL показала результат -17.53%, достигнув минимума в $62.52 в 15:59 ET — на последней минуте сессии. Одновременно с этим динамику продемонстрировали MSTR -6.2%, COIN -3.61% и HOOD -1.53%. Наблюдается корреляция; причина не установлена.

Содержание ленты новостей

Обзор, который не устанавливает причинно-следственные связи, должен предоставлять читателю только фактически опубликованные за день сведения.

ЗапросЛента новостей на 30 июня: количество статей и последний заголовок дня для каждого актива
Точный 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 материалов. Объем освещения в СМИ не является показателем ценовой динамики.

Направления торговых потоков

ЗапросЛидеры по объему: топ-6 по обороту в $, топ-4 по количеству акций (один дублирующийся символ исключен)
Точный 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, — объемы интерпретируются двояко.

Один актив намеренно не включен в оба списка: это компания, прошедшая листинг в июне, чей тикер ранее принадлежал другой, не связанной с ней компании, поэтому поставщики данных помечают две разные организации одинаковыми тремя буквами (отчеты здесь).

ЗапросОбъем торгов в акциях за 30-минутные интервалы, регулярные часы (млрд)
Точный 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 млрд акций в первые полчаса торгов, минимум в 0.78 млрд в 13:30 и самый крупный объем за день — 2.69 млрд — к закрытию квартала, когда фиксируются результаты закрытого аукциона и потоки ребалансировки (подробный анализ за 29 июня доступен по ссылке).

Рынок опционов

ЗапросДанные по опционам за день: объем, экспирация в тот же день, соотношение put/call для SPY по moneyness, неделя с учетом праздников
Точный 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 миллионов.

Запрос6 наиболее активных опционных контрактов 30 июня по количеству сделок
Точный 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, а не контракт с экспирацией в тот же день: одна шестимесячная позиция среди пяти краткосрочных спекулятивных сделок.

Процентные ставки: рост длинного конца кривой к закрытию полугодия

ЗапросКривая доходности казначейских облигаций, закрытие 30 июня к 29 июня (только доступные сроки погашения)
Точный 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%). Оба сектора классически чувствительны к изменению ставок; это совпадение заслуживает внимания, хотя данные не позволяют установить причинно-следственную связь (обзор за первое полугодие определяет динамику кривой за этот период).

Календарь текущего дня

ЗапросКорпоративный календарь и поток информации на 30 июня (разрыв между подачей отчетности и индексом)
Точный 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_session

704 компаний перешли в статус ex-dividend в последний день квартала. Это связано с волной выплат в конце квартала, характерной для большинства компаний США. Также зафиксировано 7 сплитов и 2 новых листингов (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III). Основным показателем качества данных является объем отчетности: индекс SEC содержит 31 документов за 30 июня — 0 инсайдерских форм 4 и 0 форм 8-K, что на 4439 больше, чем в предыдущую сессию. В ленте данных наблюдается закономерность конца месяца, описанная в заметке о разрыве в конце месяца; любые расчеты, включающие этот день, будут занижены до момента обновления данных.

Сессия подтверждена

ЗапросПараметры сессии: диапазон минутных баров SPY
Точный 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 июля.