Червень 2026 року став місяцем дивергенції: індекси великої капіталізації знизилися, тоді як компанії малої капіталізації продемонстрували зростання. Попри динаміку індексів, кількість акцій, що впали, перевищила кількість акцій, що зросли. SPY завершив період на рівні $746.32, продемонструвавши зміну на -1.2% за місяць, тоді як IWM — індекс малої капіталізації — зріс на 4.2%. Іншим помітним показником місяця стало те, що один виробник чипів пам'яті здійснив операцій на суму $995.7 мільярдів за 21 сесій, що перевищує обсяг самого SPY. Кожне число тут є результатом збереженого запиту; розгорніть будь-яку панель, щоб побачити точний SQL.
Підсумки місяця
Точний SQL-код для кожного числа
SELECT ticker,
round(argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_open,
round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_close,
round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS month_return_pct,
round(maxIf(toFloat64(high), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_high,
round(minIf(toFloat64(low), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_low,
round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / 1e9, 1) AS rth_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY tickerДані чітко відображають динаміку: DIA 2.4% та IWM 4.2% зросли, тоді як SPY впав на -1.2%, а QQQ завершив період зі зміною на -0.2% — індекс акцій великої капіталізації продемонстрував стагнацію або зниження за того ж місяця, коли акції малої капіталізації зросли на чотири відсотки.
Червень порівняно з попередніми п'ятьма місяцями
Чи був спад у червні нетиповим? На панелі з ретроспективними даними показник місячної прибутковості для кожного місяця півріччя розраховується одним запитом — дані за червень генеруються так само, як і за січень, безпосередньо під час формування звіту.
Точний SQL-код для кожного числа
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start, ticker,
round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS month_return_pct,
round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY period_start, ticker
ORDER BY period_start, tickerЗа цим показником червень був звичайним: прибутковість SPY на рівні -1.2% знаходиться всередині діапазону за півріччя — у березні спостерігалося падіння на -4.4%, а у квітні — зростання на 9.9%. Основною характеристикою місяця стала ротація активів, а не зміна загального напрямку руху.
Червень порівняно з усіма попередніми червнями на ринку
Точний SQL-код для кожного числа
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 1) AS june_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY')
AND window_start >= toDateTime('2003-01-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')
AND toMonth(toTimeZone(window_start, 'America/New_York')) = 6
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y
HAVING sessions >= 17
ORDER BY y ASCТочний SQL-код для кожного числа
SELECT round(anyIf(ret, y = 2026), 1) AS june_2026_pct,
arrayCount(x -> x > anyIf(ret, y = 2026), groupArrayIf(ret, y != 2026)) + 1 AS rank_best,
count() AS junes_compared,
min(y) AS first_year,
anyIf(sessions, y = 2026) AS sessions_2026
FROM (
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY')
AND window_start >= toDateTime('2003-01-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')
AND toMonth(toTimeZone(window_start, 'America/New_York')) = 6
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y
HAVING sessions >= 17
)Показник -1.2% індексу SPY займає 15 місце серед 23 червнів з 2004 (1 — найкращий результат) — середня позиція, трохи нижче середини. Це звичайний червень, і такий результат є обґрунтованим: динаміка індексу за цей місяць не має виняткових відхилень порівняно з даними за два десятиліття червнів. Винятковим став процес ротації активів, що відображено на панелі охоплення ринку нижче. База розрахунку: зміна ціни від відкриття до закриття в межах регулярних торгових сесій кожного календарного червня; арифметичні параметри однакові для кожного року; верхня межа зафіксована наприкінці цього місяця, щоб порівняльна вибірка не збільшувалася автоматично.
Посесійний аналіз
Точний SQL-код для кожного числа
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS spy_close,
round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / any(prev) - 1) * 100, 1) AS change_pct
FROM global_markets.delayed_stocks_minute_aggs
INNER JOIN (
SELECT d, lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-05-29 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY d
)
) AS p ON toDate(toTimeZone(window_start, 'America/New_York')) = p.d
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY et_date
ORDER BY et_dateНайбільше одноденне падіння за місяць сталося на початку — -2.6% 2026-06-05 — і графік відображає динаміку місяця: поступове зниження до середини червня, формування рівня підтримки в районі $716.58 та часткове відновлення протягом останніх сесій наприкінці кварталу. Детальний огляд останнього тижня цього відновлення доступний у огляді тижня.
Ширина ринку: падіння переважало зростання
Точний SQL-код для кожного числа
SELECT
countIf(chg > 0 AND NOT dropped) AS advancers,
countIf(chg < 0 AND NOT dropped) AS decliners,
countIf(chg = 0 AND NOT dropped) AS unchanged,
countIf(dropped) AS dropped_by_liquidity_filter
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-01') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)
- argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-05-29') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS chg,
sumIf(toFloat64(close) * toFloat64(volume), toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-01')) < 5e6 AS dropped
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-05-29 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
HAVING countIf(toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-05-29') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) > 0
AND countIf(toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-01') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) > 0
)4608 тикерів знизилися протягом місяця проти 4240, що зросли — негативна ширина ринку в місяці, коли два з чотирьох індексних ETF продемонстрували приріст. Вага індексу та ширина на основі рівної кількості акцій дають різні відповіді; червень — місяць, коли ці показники розійшлися. Фільтр ліквідності виключив 2896 тикерів з обсягом торгів менше $5M за червень, які враховані тут, а не приховані. Денна динаміка збігається з динамікою тикерів: 12 з 21 сесій місяця закрилися зниженням SPY проти 9 зростання.
Точний SQL-код для кожного числа
SELECT countIf(day_ret > 0) AS up_sessions,
countIf(day_ret < 0) AS down_sessions,
countIf(day_ret = 0) AS flat_sessions,
count() AS sessions_total
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 2) AS day_ret
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
)Лідери ринку
Точний SQL-код для кожного числа
SELECT ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS dollar_bn,
round(100 * sum(toFloat64(close) * toFloat64(volume)) / max(sum(toFloat64(close) * toFloat64(volume))) OVER (), 1) AS pct_of_leader
FROM global_markets.delayed_stocks_minute_aggs
WHERE 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
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_bn DESC
LIMIT 8MU очолив показники за весь місяць із результатом $995.7 мільярда — SPY посів друге місце з показником 77.5% від цієї суми. NVDA забезпечив обіг у розмірі $523 мільярда, посівши четверте місце; детальний аналіз його динаміки доступний у власному покроковому звіті. У списку переважає сектор напівпровідників — чотири з восьми позицій. База: регулярні торгові сесії з 1 по 30 червня; один лістинг за червень з повторюваним символом виключено до підтвердження даних про юридичну особу, а перший місяць має власний матеріал.
The options tape: June against May
Точний SQL-код для кожного числа
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00')
AND window_start < toDateTime('2026-07-01 00:00:00')Точний SQL-код для кожного числа
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-05-01 00:00:00')
AND window_start < toDateTime('2026-06-01 00:00:00')June's whole-tape options volume was 1477.9 million contracts with 34.3% trading on same-day expiries — against May's 1394.6 million and 30.3%. More volume AND a bigger same-day share: June's 0DTE share is the highest month of the half, and the January-onward evolution is in the H1 recap. A third of June's options volume expired the day it traded.
Точний SQL-код для кожного числа
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 3) AS med_spread_bps,
round(count() / 1e6, 2) AS quote_updates_m,
countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND ((sip_timestamp >= toDateTime64('2026-05-13 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-05-13 20:00:00', 9))
OR (sip_timestamp >= toDateTime64('2026-06-10 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-06-10 20:00:00', 9)))
GROUP BY session
ORDER BY session ASCThe cost to trade the market's biggest ticket moved the same direction: SPY's median quoted spread on the June sample session (0.409 bps, June 10) is wider than May's (0.27 bps, May 13). Basis, disclosed: single labeled sample sessions — the second Wednesday of each month — not month-wide medians; invalid quotes are counted in the panel.
Ставки: крива майже не змінилася
Точний SQL-код для кожного числа
SELECT toString(date) AS d,
round(yield_10_year, 2) AS y10,
round(yield_2_year, 2) AS y2,
round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-06-01') AND date <= toDate('2026-06-30')
AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY date10-річна облігація завершила червень на рівні 4.44%, а спред 2s10s склав 30 базисних пунктів — спокійний місяць для ставок порівняно з більш волатильним півріччям (підсумок H1 містить аналіз динаміки шестимісячної кривої).
Календар: висока активність наприкінці кварталу, один пропущений день подання звітності
Точний SQL-код для кожного числа
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-06-01') AND ex_dividend_date <= toDate('2026-06-30')) AS ex_div_events,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-06-01') AND execution_date <= toDate('2026-06-30')) AS splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-06-01') AND listing_date <= toDate('2026-06-30')) AS ipos,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= toDate('2026-06-01') AND filing_date <= toDate('2026-06-30')) AS june_filings,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS filings_jun30,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= toDateTime('2026-06-01 00:00:00') AND published_utc < toDateTime('2026-07-01 00:00:00')) AS news_articlesЧервень охопив 6651 дивідендних подій, 164 сплітів та 35 нових лістингів — серед них головний дебют місяця, детально розглянутий у глибокому аналізі першого місяця SpaceX. Один нюанс у підрахунку звітності: індекс SEC показує 68388 подань за червень, проте на 30 червня припадає лише 31 — індекс для останнього дня місяця є суттєво неповним (сусідні дні містять тисячі записів), тому загальний показник за червень буде заниженим, доки стрічка даних не заповниться — це частина патерну завершення місяців у 2026 році з власним діагностичним приміткою.
Хвиля дивідендів
Точний SQL-код для кожного числа
SELECT toString(ex_dividend_date) AS d, count() AS ex_div_events
FROM global_markets.stocks_dividends
WHERE ex_dividend_date >= toDate('2026-06-01') AND ex_dividend_date <= toDate('2026-06-30')
GROUP BY d
ORDER BY dДивідендний потік зростає наприкінці місяця: червень розпочався з 807 подіями ex-dividend за один день. Графік відображає загальний ритм місяця — щоденна активність у кілька сотень операцій з періодичними сплесками на межі місяців. Вплив дати ex-dividend на ціну описано в поясненні щодо ex-dividend.
Короткі позиції: доступні дані за обидва червеньські звіти
Точний SQL-код для кожного числа
SELECT toString(settlement_date) AS settlement, count() AS tickers
FROM global_markets.stocks_short_interest
WHERE settlement_date >= toDate('2026-05-20')
GROUP BY settlement
ORDER BY settlementДані щодо коротких позицій фіксуються двічі на місяць із затримкою у публікації. Обидва червеньські звіти вже доступні: 2026-06-30 розрахунок містить 22207 тікери після 22178 у звіті за 15 червня та 21987 у звіті за 29 травня. Щоденний обсяг коротких продажів — це інший набір даних; його червневе обмеження полягає у неповному файлі за 29 червня, який наведено у щотижневому підсумку та детальному аналізі за 29 червня.
Звіт по сесіях
Точний SQL-код для кожного числа
SELECT
(SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) 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')) AS june_sessions,
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-19 00:00:00') AND window_start < toDateTime('2026-06-20 00:00:00')) AS juneteenth_spy_bars,
(SELECT countIf((toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) 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')) AS regular_bars_juneЧервень охопив 21 сесій — Juneteenth (19 червня) демонструє 0 барів SPY, а 8190 регулярних барів складають рівно двадцять одну повну 390-хвилинну сесію.
Примітки до даних
Повні примітки до даних
- Дані щодо коротких позицій охоплюють розрахунковий період станом на 30 червня — обидва показники за місяць зафіксовані та наведені вище.
- Показник індексу на дату подання звітності за 30 червня є суттєво неповним (кілька адміністративних подань порівняно з тисячами у сусідні дні); загальні показники за червень занижені до моменту заповнення даних у потоці; кожен кінець місяця 2026 року, останній календарний день якого був робочим днем, має таку ж особливість — діагностична примітка містить підтвердження; підсумок Q2 містить застереження щодо квартального масштабу.
- Файл FINRA щодо коротких обсягів за 29 червня є неповним по всьому ринку — підтвердження наведені у щотижневому підсумку та детальному аналізі за 29 червня.
- Виключення лідера за обсягами: один актив у списку червня торгується під повторно використаним символом і виключений з таблиці лідерів до завершення перевірки юридичної особи; відповідна стаття містить підтвердження перевірки.
- Ширина порівнює останню ціну закриття кожного тікера на 30 червня з останньою ціною закриття на травень; тікери, які не мають обох цін закриття, виключені за замовчуванням, а виключення з фільтра ліквідності враховані в панелі.
Методологія
- Період охоплює з 1 по 30 червня 2026 року — 21 сесію, підтверджену за спостережуваними барами (панель отримання вище). Місячна прибутковість розраховується від відкриття до закриття в межах регулярних торгових годин у цьому періоді.
- Часові мітки зберігаються в UTC і фільтруються за необробленими межами UTC; червень 2026 року повністю відповідає EDT, тому регулярні години тривають з 13:30 до 20:00 UTC. Обсяг у доларах розраховується як ціна закриття за хвилину, помножена на обсяг за хвилину протягом регулярних годин.
- Порівняння за попередній місяць перераховуються в режимі реального часу в тому самому запиті, що й рядок за червень — значення ніколи не зчитуються зі збережених даних. Блок історії за кожен червень виконує аналогічну операцію по всій хвилинній стрічці (регулярні години за часом східного узбережжя — стандартна багаторічна конвенція з урахуванням DST — з верхньою межею наприкінці цього місяця та мінімальною кількістю сесій для кожного року); перевірка глибини даних наведена в методології рекап H1.
- Генерація даних відбувається через обмежений шлях лише для читання; публічна сторінка ніколи не робить запитів до живих даних. Стан сховища станом на 5 липня 2026 року.
Це перше видання регулярного щомісячного рекапу — видання за липень буде містити посилання на цю сторінку. Для детального аналізу останнього тижня місяця по сесіях див. рекап тижня від 29 червня; для аналізу кварталу, який завершився цього місяця, див. рекап Q2.