Strasmore Research
Market Recap

Итоги рынка за второй квартал 2026 года

Matt ConnorBy Matt Connor Updated 2026-07-24

Второй квартал 2026 года стал периодом восстановления: после отрицательных показателей первого квартала все основные индексные ETF выросли на двузначные величины. Лидером роста стал QQQ с показателем 26.5%. В представленных ниже панелях отражена динамика квартала: ежемесячный график, контекст процентных ставок, календарь и два уточнения по данным, указанных в тексте. Все числа являются результатами запросов к базе данных; вы можете развернуть любую панель, чтобы увидеть точный SQL-код.

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

Насколько изменились показатели по сравнению с первым кварталом? В этой панели доходность обоих кварталов рассчитывается в одном запросе. Данные за первый квартал пересчитываются в реальном времени по тем же определениям.

ЗапросДоходность четырех индексных ETF за Q2 2026; Q1 пересчитан для сравнения
Точный SQL-код для каждого числа
SELECT ticker,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-04-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q2_return_pct,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q1_return_pct,
    round(argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS q2_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY ticker

QQQ вырос на 26.5% за квартал после -6.9% в первом квартале; SPY показал 14.1% после -5.2%; IWM — 20.2%. Каждый индекс, который снижался в первом квартале, во втором показал более значительный рост. Эти четыре индекса демонстрируют три разные ситуации: индекс роста испытал самое глубокое падение в первом квартале и показал самый масштабный отскок; DIA — индекс промышленных компаний с взвешиванием по цене — изменился с -3.9% на 12.1%; а IWM практически не снижался (0.1% в первом квартале), поэтому его 20.2% квартал стал продолжением стабильного роста, а не восстановлением после падения. В столбце квартальной доходности показатели восстановления и импульса выглядят одинаково; их разделяет столбец за первый квартал.

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

Периоды восстановления кажутся историческими, когда находишься внутри них; только рыночные данные могут подтвердить это. Система пересчитывает одну и ту же доходность за период с апреля по июнь для каждого года из всей доступной истории. Вычисления идентичны для каждого года, после чего текущий квартал ранжируется относительно остальных.

ЗапросВторой квартал на ленте: SPY и QQQ, пересчет по годам (указано кол-во сессий)
Точный SQL-код для каждого числа
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
       ticker,
       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 q2_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
  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')) BETWEEN 4 AND 6
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y, ticker
HAVING sessions >= 50
ORDER BY y ASC, ticker ASC
ЗапросРейтинг: текущий квартал в сравнении с каждым предыдущим Q2 (1 — лучший; исключая себя)
Точный SQL-код для каждого числа
SELECT ticker,
       round(anyIf(ret, y = 2026), 1) AS q2_2026_pct,
       arrayCount(x -> x > anyIf(ret, y = 2026), groupArrayIf(ret, y != 2026)) + 1 AS rank_best,
       count() AS q2s_compared,
       min(y) AS first_year,
       anyIf(sessions, y = 2026) AS sessions_2026
FROM (
    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
           ticker,
           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', 'QQQ')
      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')) BETWEEN 4 AND 6
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY y, ticker
    HAVING sessions >= 50
)
GROUP BY ticker
ORDER BY ticker ASC

Результаты близки к историческим: показатель 26.5% фонда QQQ занимает 2 место среди 17 сопоставимых вторых кварталов (ранг 1 — лучший) — ровно один предыдущий второй квартал завершился с более высокой доходностью; в таблице выше указано, какой именно. Показатель 14.1% фонда SPY занимает 3 место среди 23 с 2004 года. Существуют два уточнения: серия данных QQQ короче (в течение нескольких лет фонд торговался под другим тикером — защита по количеству торговых сессий исключает эти годы, что видно по годовому счету в таблице), и каждый запрос истории ограничивает верхнюю границу концом текущего квартала, поэтому набор данных для сравнения не может незаметно расти при наступлении последующих лет. Основа для каждого ранга на этой странице: разница между ценой открытия и закрытия в рамках календарного квартала в основную торговую сессию.

Ежемесячная лестница

ЗапросПомесячная доходность Q2: апрель, май, июнь (SPY и QQQ, идентичный пересчет)
Точный 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-04-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 9.9%, QQQ 14.8%), май добавил темпов (4.9% и 10.3%), а июнь показал небольшую коррекцию — SPY -1.2%. Подробный обзор за июнь включает детальный анализ месяца и данные по охвату рынка.

Лидеры торгов за квартал

ЗапросОбщий объем торгов в долларах в основную сессию Q2 (один символ исключен до верификации)
Точный 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-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
  AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_bn DESC
LIMIT 8

За весь квартал MU ($2047.5 млрд) опередил SPY ($2032 млрд), заняв первое место в списке. Одна акция превзошла основной индексный фонд по объему торгов за три месяца на 99.2% от общего показателя лидера. Далее следуют: QQQ ($1658.5 млрд), затем NVDA с объемом $1591.8 млрд, подробный анализ торгов которой за июнь представлен здесь, шаг за шагом, и TSLA с объемом $1198.8 млрд. Обратите внимание на критерий списка: это оборот в основные торговые часы, а не доходность — акция может лидировать по объемам, даже если ее цена падает. Анализ торгов лидера за июнь доступен в подробном разборе, шаг за шагом. Данные основаны на показателях в основные торговые часы за период с 1 апреля по 30 июня; один список за июнь с дублирующимся символом исключен до завершения проверки юридического лица (отчеты).

Breadth: the day grain

ЗапросСоотношение растущих и падающих сессий SPY за квартал
Точный 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-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 d
)

36 of the quarter's 62 sessions closed SPY higher against 26 lower — up-day dominance that matches a double-digit quarter. The ticker-grain count (every advancer and decliner) is bounded at quarter scale: the single whole-market scan exceeds the query budget this page generates under (measured at authoring), so the equal-count breadth lives at month scale — June's advancer/decliner split, where more fell than rose, is in the June recap — and the bound is disclosed here rather than silently narrowed.

Динамика опционов по месяцам

Микроструктура рынка за квартал в единственном подходящем масштабе — в ежемесячном сравнении по всем котировкам листинговых опционов. Объем торгов рос к концу квартала: с 1386.9 млн контрактов в апреле до 1477.9 млн в июне, когда была зафиксирована максимальная активность за квартал. Доля опционов с экспирацией в тот же день (0DTE) также росла: с 30.3% до 34.3%. Доля таких контрактов в июне является самой высокой за первое полугодие. Динамика с января представлена в обзоре за первое полугодие.

ЗапросАпрель: объем контрактов на опционы и доля экспирации в тот же день
Точный 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-04-01 00:00:00')
  AND window_start < toDateTime('2026-05-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')
ЗапросИюнь: объем контрактов на опционы и доля экспирации в тот же день
Точный 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')

Стоимость торговли (ежемесячная выборка)

ЗапросМедианный спред SPY по одной выборке сессий в месяц (вторые среды)
Точный 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-04-15 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-04-15 20:00:00', 9))
    OR (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 ASC

Медианный спред SPY по ежемесячным сессиям выборки за квартал: 0.286 б.п. в выборке за апрель, 0.27 в мае, 0.409 в июне — самый широкий спред зафиксирован в июньской выборке. Методология: данные получены по отдельным сессиям (вторая среда каждого месяца), а не по медианам за весь месяц; некорректные котировки включаются в панель, а не исключаются.

Ставки: квартал уплощения кривой

ЗапросСпред 2s10s и доходность 10-летних облигаций по Q2, ежедневно
Точный SQL-код для каждого числа
SELECT toString(date) AS d,
    round(yield_10_year, 2) AS y10,
    round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-04-01') AND date <= toDate('2026-06-30')
  AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY date

Спред 2s10s в начале квартала составлял 52 базисных пунктов, а в конце — 30. Это был период уплощения кривой; доходность 10-летних облигаций завершила квартал на уровне 4.44%. О динамике шестимесячных ставок можно узнать в обзоре H1. С технической точки зрения уплощение означает сокращение разрыва между краткосрочными и долгосрочными ставками. Данная таблица не позволяет определить, сохранится ли эта тенденция, и на этой странице такой анализ не проводится.

Календарь, квартальный масштаб

ЗапросКорпоративный календарь Q2 (разрыв отчетности на 30 июня)
Точный SQL-код для каждого числа
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-04-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-04-01') AND execution_date <= toDate('2026-06-30')) AS splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-04-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-04-01') AND filing_date <= toDate('2026-06-30')) AS q2_filings,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-04-30')) AS filings_apr30,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS filings_jun30

105 компаний, котирующихся в этом квартале, 435 проведенных сплитов и 15402 выплат по дивидендам. Количество отчетов (235075) отражает выявленный разрыв: на 30 июня — последний день квартала — индекс содержит только 31 отчетов, а на 30 апреля — 34, в то время как в соседние дни их количество исчисляется тысячами. Таким образом, общее число за квартал не учитывает два конца месяца и будет занижено до момента обновления данных. Разрыв в конце месяца имеет отдельное примечание.

Подготовка к концу квартала

ЗапросЛистинги, сплиты и дивиденды по месяцам в течение квартала
Точный SQL-код для каждого числа
SELECT m, ipos, splits, ex_divs FROM (
    SELECT '2026-04' AS m,
        (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-04-01') AND listing_date <= toDate('2026-04-30')) AS ipos,
        (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-04-01') AND execution_date <= toDate('2026-04-30')) AS splits,
        (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-04-01') AND ex_dividend_date <= toDate('2026-04-30')) AS ex_divs, 1 AS o
    UNION ALL SELECT '2026-05',
        (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-05-01') AND listing_date <= toDate('2026-05-31')),
        (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-05-01') AND execution_date <= toDate('2026-05-31')),
        (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-05-01') AND ex_dividend_date <= toDate('2026-05-31')), 2
    UNION ALL SELECT '2026-06',
        (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-06-01') AND listing_date <= toDate('2026-06-30')),
        (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-06-01') AND execution_date <= toDate('2026-06-30')),
        (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-06-01') AND ex_dividend_date <= toDate('2026-06-30')), 3
) ORDER BY o

По мере приближения конца квартала график корпоративных событий стал более плотным: количество выплат дивидендов росло каждый месяц — от 3947 в апреле до 6651 в июне, также увеличилось число дроблений акций (129 и 164). Количество новых листингов оставалось стабильным на протяжении трех месяцев — в этом квартале метафора волны применима к дивидендам, а не к IPO.

Отчет по сессиям

Запрос62 сессии за квартал, подтвержденные по ленте, по месяцам
Точный 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-04-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')) AS q2_sessions,
    (SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-05-01 00:00:00')) AS april_sessions,
    (SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-05-01 00:00:00') AND window_start < toDateTime('2026-06-01 00:00:00')) AS may_sessions,
    (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

62 сессий подтверждены на основе фактических баров, а не календарных данных: 21 в апреле, 20 в мае (Memorial Day), 21 в июне (Juneteenth). Данные по количеству сессий за месяц и подтверждения закрытия доступны в обзоре за июнь и пояснении по праздникам.

Примечания к данным

Полные примечания к данным
  • Данные по коротким позициям (Short interest) актуальны на расчетную дату 15 июня — данные на конец июня еще не опубликованы; подробная информация представлена в обзоре за июнь. Данный пост будет обновлен после публикации данных.
  • Разрыв между отчетностью на конец месяца и индексом указан в тексте: 30 июня и 30 апреля относятся к этому кварталу; 31 марта имеет аналогичный показатель. Почти все отчеты на конец месяца в 2026 году, последний календарный день которых был будним, практически пусты. Диагностическая заметка содержит подтверждающие данные и обоснованный диагноз.
  • Микроструктура (механика тиковых уровней) намеренно не рассматривается — подробный анализ ленты торгов за сессию представлен в глубоком анализе от 29 июня.
  • Исключение лидеров по объему: один тикер из списка за июнь был исключен до завершения проверки юридического лица.

Методология

  • Период: с 1 апреля по 30 июня 2026 года — 62 сессий, подтвержденных по наблюдаемым барам. Квартальная доходность рассчитывается от открытия до закрытия регулярных торгов в рамках периода; показатели за первый квартал пересчитываются в реальном времени по тем же определениям.
  • Временные метки хранятся в формате UTC и фильтруются по необработанным границам UTC; регулярные часы торгов: 13:30–20:00 UTC в течение квартала (EDT). Долларовый объем рассчитывается как произведение цены закрытия минуты на объем за минуту в течение регулярных часов. Блоки многолетней истории фильтруются по регулярным часам по восточному времени (с конвертацией для каждой строки — стандарт, учитывающий переход на летнее время на протяжении десятилетий) и ограничены концом текущего квартала; проверка глубины данных (поминутная история до сентября 2003 года) приведена в методологии обзора H1.
  • Генерация данных выполняется через защищенный путь только для чтения; публичная страница не выполняет запросы к живым данным. Состояние хранилища на 5 июля 2026 года.

Это первое издание регулярного квартального обзора; в издании за третий квартал будет ссылка на этот материал. Детализация по месяцам: июнь. Завершенная половина года в этом квартале: H1 2026.