Strasmore Research
Огляди ринку Matt ConnorВід Matt Connor · Оновлено 2026-07-24

Огляд ринку за 30 червня 2026 року

Останній сеанс кварталу: технологічний сектор забезпечив зростання індексів на фоні загального падіння ринку. Читайте детальний аналіз показників та опціонів.

Вівторок, 30 червня 2026 року — останній торговий сеанс кварталу — пройшов із зростанням на фоні технологічного сектору, попри загальне падіння ринку: QQQ зріс на 1.63%, а SPY на 0.73%, проте лише 4 фондів сектору S&P 10 завершили торги зростанням (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. Динаміка QQQ 1.63% порівняно з 0.12% у DIA визначає характер дня: зростання було стрімким, blue chips майже не змінилися, а IWM 0.49%.

Підсумки завершення кварталу

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
)

Зміна вартості за торгову сесію (від відкриття до закриття) — інший підхід порівняно з показником зміни ціни за попередній день — склала 0.68% для SPY. Це 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 тикерів з обсягом торгів за дві сесії менше ніж один мільйон доларів; ці дані враховуються і не приховуються.

По секторах: куди саме пішли гроші

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

ЗапитДесять секторних фондів 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 лідерів зростання та топ-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 — це друга послідовна сесія, коли обсяги торгів перевищили показники провідного індексного фонду (огляд за понеділок містить дані за перший день). Дані по акціях свідчать про інше: SOXS, 3x-леверигований зворотний semiconductor 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 червня).

Опціонна стрічка

ЗапитОдин рядок для всього дня опціонів: обсяг, експірація в той же день, skew 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 мільйонів контрактів при співвідношенні put/call на рівні 1.09 — більше пут-опціонів, ніж колл-опціонів, попри зростання фонду.

Порівняння експірації SPY того ж дня із ціною закриття у $746.32 демонструє конкретний перекіс: 3.33 мільйонів позамонетних пут-опціонів (страйк нижче ціни закриття) та 2.28 мільйонів позамонетних колл-опціонів, проти 1.77 мільйонів внутрішньомонетних колл-опціонів та 0.63 мільйонів внутрішньомонетних пут-опціонів — страйки на падіння, що знецінилися, були найбільш активною групою за результатами 0DTE дня SPY. Операцій з кодом експірації на п'ятницю, липня третєго року не було (0 операцій — ринок того дня закритий); тижневий опціон на четвер склав 10.52 мільйонів.

ЗапитШість найбільш активних опційних контрактів 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, а не контракт з експірацією в той же день: одна шістьмісячна позиція серед п'яти денних лотерейних квитків.

Ставки: довгострокові показники зросли наприкінці півріччя

ЗапитКрива Treasury, закриття 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 bp до 4.44%, 2-річних — на 4 bp до 4.14%, а спред 2s10s поглибився на 2 bp до 0.3 пунктів. Дохідність за довгими термінами зростала під час торгової сесії, де найслабшим сектором була нерухомість (-2%), а третім за слабкістю — комунальні послуги (-1.48%). Обидва сектори є класично чутливими до зміни ставок; такий збіг є помітним, хоча ці дані не можуть підтвердити причинно-наслідковий зв'язок (підсумок H1 визначає криву за півріччя]).

Календар дня

ЗапитКорпоративний календар та інформаційні потоки 30 червня в одному рядку (відображено розрив між filings та індексами)
Точний 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 Insider Form 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 секторних фондів S&P були в зеленій зоні 10.

Який сектор став лідером ринку 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 мільярдів на відкритті. Закривальний аукціон встановлює офіційну ціну закриття кожної акції одним кросингом, і індексні фонди торгують там, щоб відповідати цій ціні; ребалансування наприкінці кварталу концентрує торгові потоки.

Примітки до даних та методологія

  • Кошики. Секторна панель складається з десяти фондів SPDR, зазначених у панелі — цей самий кошик використовується щосесії, тому показник дисперсії можна порівнювати за різні дні. Панелі активних інструментів (movers) вимагають обігу в $10 мільйонів та ціни закриття вище $1, виключають перелічені вище символи, що повторно використовуються, та містять колонку з історією сплітів.
  • Застереження. Обсяг у доларах є хвилинним показником (ціна закриття × обсяг за бар). Індекс звітів станом на 30 червня майже порожній (примітка про розрив наприкінці місяця). Кількість новин базується на одному джерелі постачальника: відсутність статті тут не є доказом того, що нічого не було опубліковано в інших місцях.
  • Методологія. Одна сесія (1, підтверджено за спостереженими барами); часові мітки зберігаються в UTC і конвертуються в нью-йоркський час у запитах; "close" — це останній регулярний хвилинний бар, а не результат аукціону. Дати експірації опціонів повторно розраховуються за тикером OCC (власна колонка таблиці некоректна); грошовість (moneyness) вимірюється відносно останнього регулярного бару SPY. Панелі створюються один раз під час підготовки матеріалу через обмежений доступ для читання. Дані сховища станом на 13 липня 2026 року.

Кожна панель є результатом збереженого запиту — графік, таблиця та SQL в одному об'єкті. Скопіюйте будь-яку з них у термінал Strasmore. Наступна сесія: 1 липня.