Итоги торгов 7 июля 2026 года: обзор рынка
Сектор полупроводников показал значительное падение, однако NVDA удержала позиции. Рыночная статистика зафиксировала соотношение падающих акций к растущим два к одному.
Вторник, 7 июля 2026 года, отыграл половину роста понедельничного гэпа на открытии и даже больше: QQQ закрылся на уровне -1.82%, полностью нивелировав понедельничный прирост, в то время как DIA показал -0.29%. Внутри рынка преобладали продавцы в соотношении два к одному: 4034 ликвидных бумаг подешевели против 2091 подорожавших. Главным событием дня стал обвал в секторе полупроводников, масштаб которого в несколько раз превысил падение индекса, при этом один из гигантов сектора остался в стороне от движения. Все приведенные ниже цифры получены из сохраненного запроса; разверните любую панель для просмотра точного SQL.
Табло
Все изменения сравнивают минутный бар последней минуты основной сессии 7 июля с аналогичным баром понедельника, 6 июля, — последовательными торговыми сессиями.
| Тикер | Цена закрытия (пред.) | Цена открытия | Цена закрытия | Гэп (%) | Внутридневное изм. (%) | Изменение (%) | Максимум дня | Минимум дня | Объем (млн) |
|---|---|---|---|---|---|---|---|---|---|
| DIA | 530.03 | 532.5 | 528.48 | 0.47 | -0.76 | -0.29 | 532.54 | 527.11 | 4.1 |
| IWM | 298.88 | 299.17 | 296.2 | 0.1 | -0.99 | -0.9 | 299.97 | 295.18 | 16.4 |
| QQQ | 722.63 | 714.17 | 709.5 | -1.17 | -0.65 | -1.82 | 716.35 | 704.9 | 37.4 |
| SPY | 751.3 | 750.22 | 747.66 | -0.14 | -0.34 | -0.48 | 750.96 | 745.21 | 38.4 |
Точный 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-07-06 13:30:00' AND window_start < '2026-07-06 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-07-07 13:30:00' AND window_start < '2026-07-07 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_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
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-1.82% QQQ привел четыре индексных ETF к снижению; SPY закрылся на -0.48%, IWM на -0.9%, а -0.29% DIA стал самым умеренным результатом. Разрыв между гэпом и внутридневным движением показывает, что два конца ленты сделок разошлись во мнениях на открытии: ночной гэп QQQ составил -1.17%, а его движение от открытия до закрытия — -0.65%; гэп нанес основной ущерб. В то же время DIA открылся гэпом вверх на 0.47%, но все равно завершил день в красной зоне, показав результат от открытия до закрытия -0.76%. Лидерство меняется каждую сессию, начиная с четверга: DIA лидировал в четверг, QQQ — в понедельник, а DIA снова во вторник.
Был ли этот день необычным?
| QQQ изм. закр./закр. (%) | QQQ ранг абс. движения | QQQ сессий для сравнения | SPY изм. откр./закр. (%) | SPY ранг абс. движения | SPY сессий для сравнения | Первая сессия |
|---|---|---|---|---|---|---|
| -1.82 | 9 | 21 | -0.34 | 15 | 21 | 2026-06-05 |
Точный SQL-код для каждого числа
SELECT
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-07'))) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ') AS qqq_sessions_compared,
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-07'))) + 1 AS spy_abs_move_rank,
countIf(ticker = 'SPY') AS spy_sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT ticker, d,
(close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct,
oc_pct
FROM (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close_px,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2026-06-04 00:00:00')
AND window_start < toDateTime('2026-07-08 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)
WHERE isFinite(cc_pct)На уровне индексов — не особенно. Изменение цены закрытия QQQ относительно предыдущего дня -1.82% занимает 9 место из 21 последних сессий по абсолютному значению. Изменение цены SPY от открытия до закрытия на -0.34% занимает 15 место из 21; прошедший месяц, включавший колебания в секторе памяти в конце июня, установил высокую планку. Именно под поверхностью индексов 7 июля наблюдалась заметная дисперсия.
Рыночный охват: на одну растущую бумагу приходятся две падающие
| Растущие | Падающие | Без изм. | Ликвидные тикеры | Тикеры в обеих сессиях | Отсеяно по ликвидности | Растущие (%) |
|---|---|---|---|---|---|---|
| 2091 | 4034 | 59 | 6184 | 11460 | 5276 | 33.8 |
Точный SQL-код для каждого числа
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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
FROM per_ticker
WHERE prior_close > 0 AND day_close > 02091 акций выросли, 4034 снизились, 59 остались без изменений. 33.8% ликвидных инструментов показали рост, зеленый принт понедельника сменился на противоположный. Фильтр исключает 5276 из 11460 тикеров, торговавшихся в течение двух сессий с объемом менее одного миллиона долларов, которые учитываются здесь.
Сектор чипов обвалился, за исключением крупнейших игроков
Распродажа была сосредоточена в полупроводниковой отрасли: среди производителей чипов, поставщиков оборудования, компаний сектора хранения данных и связанных с ними ETF с кредитным плечом. Ниже приведены данные о корреляции и масштабах движения; причины в данных не указаны.
| Тикер | Цена закрытия (пред.) | Цена закрытия | Изм. (%) | Максимум дня (ET) | Минимум дня (ET) | Минута максимума (ET) | Минута минимума (ET) | Диапазон (%) | Дневной объем ($ млрд) |
|---|---|---|---|---|---|---|---|---|---|
| AMD | 551.95 | 516.57 | -6.41 | 12:29 | 10:46 | 749 | 646 | 4.34 | 12.48 |
| AVGO | 373.9 | 370.79 | -0.83 | 13:42 | 10:44 | 822 | 644 | 3.02 | 6.09 |
| INTC | 122.22 | 110.5 | -9.59 | 09:30 | 15:18 | 570 | 918 | 7.54 | 13.82 |
| KLAC | 233.39 | 216.52 | -7.23 | 09:30 | 10:43 | 570 | 643 | 6.13 | 2.91 |
| LRCX | 349.92 | 326.12 | -6.8 | 09:30 | 10:41 | 570 | 641 | 5.64 | 3.97 |
| MRVL | 249.29 | 230.81 | -7.41 | 09:30 | 10:42 | 570 | 642 | 6.5 | 6.42 |
| MU | 984.31 | 938.95 | -4.61 | 15:59 | 10:41 | 959 | 641 | 5.65 | 41.6 |
| NVDA | 195.62 | 196.93 | 0.67 | 13:07 | 10:35 | 787 | 635 | 3.8 | 19.95 |
| SNDK | 1743.08 | 1619.26 | -7.1 | 09:30 | 10:42 | 570 | 642 | 10.36 | 19.73 |
| SOXL | 194.77 | 165.27 | -15.15 | 09:30 | 10:44 | 570 | 644 | 14.53 | 10.8 |
| SOXS | 4.16 | 4.82 | 15.87 | 10:42 | 09:30 | 642 | 570 | 10.3 | 2.78 |
| STX | 869.5 | 827.4 | -4.84 | 09:45 | 10:44 | 585 | 644 | 6.58 | 3.1 |
| TER | 379.66 | 343.1 | -9.63 | 09:30 | 10:41 | 570 | 641 | 9.98 | 1.59 |
| WDC | 577.46 | 532.34 | -7.81 | 09:30 | 11:00 | 570 | 660 | 7.76 | 3.73 |
Точный SQL-код для каждого числа
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-07 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-07 00:00:00') AS day_low,
argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS low_bar,
argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York')) AS high_minute_et,
toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerАкции Teradyne (-9.63%) и Intel (-9.59%) потеряли почти десятую часть своей стоимости, недалеко от них ушли Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%) и AMD (-6.41%). Компании сектора памяти и хранения данных, которые частично восстановились в понедельник, снова перешли к снижению: SanDisk -7.1% в диапазоне от максимума до минимума 10.36%, Western Digital -7.81%, Seagate -4.84% и MU -4.61%. Объем торгов по MU составил $41.6 миллиарда, что превышает показатели трех других компаний сектора хранения данных вместе взятых (подробный разбор MU содержит предысторию).
Два гиганта сектора остались в стороне: NVDA закрылась в зеленой зоне на отметке 0.67%, а Broadcom завершила торги практически без изменений на уровне -0.83%. Это был день всеобщего падения сектора, за исключением его крупнейших представителей (июньский разбор NVDA).
Тайминг был синхронизирован, возник «воздушный карман» в утренние часы: TER, LRCX и MU зафиксировали свои внутридневные минимумы в 10:41, 10:41 и 10:41 по восточному времени (ET). В те же минуты свои минимумы показали SanDisk, Marvell, KLA, AVGO и SOXL (на панели указаны соответствующие временные метки), а SOXS, трехкратный инверсный полупроводниковый ETF, достиг своего дневного максимума в 10:42, отражая перевернутую динамику. Intel продолжала падать долго после того, как остальные стабилизировались, достигнув минимума в 15:18. ETF с кредитным плечом наглядно демонстрируют масштаб: SOXL -15.15% против SOXS +15.87%.
Другая сторона ленты
На каждые две акции, закрывшиеся в минусе, приходится одна в плюсе. Что выросло на фоне падения сектора чипов:
| Тикер | Цена закрытия (пред.) | Цена открытия | Цена закрытия | Гэп (%) | Внутридневное изм. (%) | Изм. (%) | Дневной объем ($ млрд) |
|---|---|---|---|---|---|---|---|
| CRNX | 42.02 | 83.58 | 83.53 | 98.91 | -0.06 | 98.79 | 4.19 |
| CVX | 168.13 | 170.14 | 173.97 | 1.2 | 2.25 | 3.47 | 1.21 |
| JNJ | 259.33 | 264.89 | 267.29 | 2.14 | 0.91 | 3.07 | 1.92 |
| LLY | 1202.56 | 1232.88 | 1235.64 | 2.52 | 0.22 | 2.75 | 2.87 |
| META | 600.43 | 607.59 | 615.57 | 1.19 | 1.31 | 2.52 | 9.73 |
| TSLA | 419.77 | 416.96 | 402.88 | -0.67 | -3.38 | -4.02 | 13.36 |
| UNH | 418.1 | 423.95 | 428.18 | 1.4 | 1 | 2.41 | 1.61 |
| XOM | 136.49 | 138.56 | 141.65 | 1.52 | 2.23 | 3.78 | 1.63 |
Точный SQL-код для каждого числа
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close_raw,
toFloat64(argMinIf(open, window_start, window_start >= '2026-07-07 00:00:00')) AS day_open_raw,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close_raw,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('CRNX', 'CVX', 'JNJ', 'LLY', 'META', 'TSLA', 'UNH', 'XOM')
AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close_raw, 2) AS prior_close,
round(day_open_raw, 2) AS day_open,
round(day_close_raw, 2) AS day_close,
round((day_open_raw / prior_close_raw - 1) * 100, 2) AS gap_pct,
round((day_close_raw / day_open_raw - 1) * 100, 2) AS intraday_pct,
round((day_close_raw / prior_close_raw - 1) * 100, 2) AS pct_chg,
day_dollar_bn
FROM per_name
ORDER BY tickerЭнергетический сектор и здравоохранение обеспечили положительную динамику: Exxon +3.78%, Chevron +3.47%, Johnson & Johnson +3.07%, Eli Lilly +2.75%, UnitedHealth +2.41%. Две мегакапитализированные компании из этого списка показали разные результаты: META выросла на +2.52%, тогда как TSLA растеряла большую часть понедельничного безоткатного роста, закрывшись на -4.02%. Самая заметная сделка на ленте: акции Crinetics Pharmaceuticals (CRNX) закрылись с ростом +98.79% при объеме торгов в $4.19 миллиарда. Котировки почти удвоились, причем всё движение произошло за счет гэпа на открытии (98.91% на открытии; в ходе основной сессии цена изменилась лишь на -0.06%). Это пример переоценки между сессиями, которая происходит там, где проходят премаркет-сделки. Данные не содержат информации о причинах такого движения.
Где проходили торги
| Таблица лидеров | Тикер | Объем ($ млрд) | Акции (млн) | % от лидера |
|---|---|---|---|---|
| by dollars traded | MU | 41.6 | 45.3 | 100 |
| by dollars traded | SPY | 28.68 | 38.4 | 68.9 |
| by dollars traded | QQQ | 26.54 | 37.4 | 63.8 |
| by dollars traded | NVDA | 19.95 | 102.4 | 48 |
| by dollars traded | SNDK | 19.73 | 12.5 | 47.4 |
| by dollars traded | INTC | 13.82 | 124.8 | 33.2 |
| by shares traded | SOXS | 2.78 | 566.3 | 100 |
| by shares traded | BITO | 3.47 | 402.2 | 71 |
| by shares traded | TZA | 1.1 | 278.8 | 49.2 |
| by shares traded | CPOP | 0.02 | 161.3 | 28.5 |
Точный SQL-код для каждого числа
SELECT leaderboard, ticker, dollar_volume_bn, 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(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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) DESCMU возглавил список по объему торгов в долларовом выражении с показателем $41.6 млрд. Спустя всего одну сессию после того, как уступил лидерство, инструмент вернул себе первое место. Следом за ним расположились SPY ($28.68 млрд) и QQQ ($26.54 млрд). Еще три представителя полупроводникового сектора — NVDA ($19.95 млрд), SNDK ($19.73 млрд) и INTC ($13.82 млрд) — заняли оставшиеся места в первой шестерке. Концентрация оборота в отдельных бумагах — это то, на что указывает относительный объем.
В списке по количеству акций SOXS показал результат в 566.3 млн бумаг. Трехкратный инверсный ETF на полупроводники лидирует по этому показателю третью сессию подряд (предыдущие данные за понедельник и четверг), причем в этот раз — в день, когда сектор действительно показал снижение. CPOP служит контрпримером: 161.3 млн акций обеспечили оборот всего в $0.02 млрд. Количество акций в обращении искажает картину для дешевых бумаг. Основа: регулярная торговая сессия 7 июля; один тикер исключен до подтверждения эмитента, его расписки.
Характер торговой сессии
| Время (ET) | Акции (млрд) | % крупнейшего сегмента |
|---|---|---|
| 09:30 | 2 | 93.4 |
| 10:00 | 1.58 | 74 |
| 10:30 | 1.34 | 62.7 |
| 11:00 | 1.09 | 50.9 |
| 11:30 | 0.99 | 46.1 |
| 12:00 | 0.91 | 42.6 |
| 12:30 | 0.76 | 35.3 |
| 13:00 | 0.72 | 33.6 |
| 13:30 | 0.64 | 29.8 |
| 14:00 | 0.71 | 33.1 |
| 14:30 | 0.91 | 42.7 |
| 15:00 | 1.14 | 53.2 |
| 15:30 | 2.14 | 100 |
Точный 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-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time2 миллиарда акций в первые полчаса торгов, минимум в 0.64 миллиарда в 13:30 и 2.14 миллиарда к закрытию в 15:30 — стандартная «улыбка» объема, с пиком активности на закрытии.
Лента опционных сделок
| Сделки (млн) | Контракты (млн) | % Call | % экспирации сегодня | Контракты сегодня (млн) | Контракты SPY (млн) | Контракты QQQ (млн) | Контракты INTC (млн) | Базовый актив (1) | Страйк (1) | Тип (1) | Call (1) | Объем (1) | Ср. цена (1) | Страйк (1) - SPY | Базовый актив (2) | Страйк (2) | Тип (2) | Put (2) | Объем (2) | Ср. цена (2) | SPY - Страйк (2) | Оба контракта сегодня | Закрытие SPY |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10.6 | 61.13 | 55.6 | 31.2 | 19.08 | 12.48 | 8.36 | 0.69 | SPY | 749 | C | 1 | 873438 | 0.647 | 1.34 | SPY | 747 | P | 1 | 785834 | 0.88 | 0.66 | 2 | 747.66 |
Точный SQL-код для каждого числа
WITH
(
SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))
FROM (
SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,
sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,
if(substring(ticker, length(ticker) - 14, 6) = '260707', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
GROUP BY ticker
ORDER BY vol DESC
LIMIT 2
)
) AS top2,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
) AS spy_regular_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) = '260707') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707')) / 1e6, 2) AS same_day_contracts_m,
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 = 'INTC')) / 1e6, 2) AS intc_contracts_m,
top2.1[1] AS top_contract_underlying,
top2.2[1] AS top_contract_strike,
top2.3[1] AS top_contract_type,
if(top2.3[1] = 'C', 1, 0) AS top_contract_is_call,
top2.4[1] AS top_contract_volume,
top2.5[1] AS top_contract_avg_price,
round(top2.2[1] - spy_regular_close, 2) AS top_strike_minus_spy_close,
top2.1[2] AS second_contract_underlying,
top2.2[2] AS second_contract_strike,
top2.3[2] AS second_contract_type,
if(top2.3[2] = 'P', 1, 0) AS second_contract_is_put,
top2.4[2] AS second_contract_volume,
top2.5[2] AS second_contract_avg_price,
round(spy_regular_close - top2.2[2], 2) AS spy_close_minus_second_strike,
top2.6[1] + top2.6[2] AS both_top_contracts_same_day,
spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'Объем торгов опционами составил 61.13 миллиона контрактов в рамках 10.6 миллиона сделок — это соответствует размеру ленты понедельника, при этом на долю call-опционов по-прежнему пришлось 55.6% объема в день снижения рынка. На контракты с истечением в тот же день пришлось 31.2% ленты (19.08 миллиона контрактов), что является типичной долей 0DTE для обычного вторника. Два самых активных контракта дня были сосредоточены вокруг закрытия, оба с исполнением в тот же день и страйками SPY: call с ценой исполнения $749 (873438 контрактов по средней цене $0.647) закрылся на $1.34 вне денег, а put с ценой исполнения $747 (785834 контрактов по цене $0.88) закрылся на $0.66 вне денег с другой стороны. Цена закрытия SPY на уровне 747.66 оказалась между двумя крупнейшими ставками дня, и оба контракта истекли обесценившимися.
Лента котировок
Под каждой ценой на этой странице находится поток котировок, National Best Bid and Offer (NBBO), который непрерывно обновляется по всем листинговым инструментам. Это самый сложный для получения массив данных в нашем хранилище. Мы замеряем его каждую сессию, независимо от рыночных условий.
| Обновления 7 июля (млн) | Обновления 6 июля (млн) | Изменение за день (%) | Последняя котировка 7 июля (ET) | Обновления за час закрытия 7 июля (млн) |
|---|---|---|---|---|
| 492.76 | 391.96 | 25.7 | 1199 | 77.13 |
Точный SQL-код для каждого числа
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / countIf(toDate(sip_timestamp) = toDate('2026-07-06')) - 1) * 100, 1) AS day_over_day_pct,
toHour(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) * 60
+ toMinute(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) AS jul7_last_quote_et_minute,
round(countIf(sip_timestamp >= '2026-07-07 19:00:00' AND sip_timestamp < '2026-07-07 20:00:00') / 1e6, 2) AS jul7_close_hour_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'Лента акций зафиксировала 492.76 млн обновлений NBBO 7 июля, что на 25.7% больше, чем 391.96 млн в понедельник. Мы наблюдаем рост частоты котирования, а не расширение спредов:
| Тикер | Спред в «кармане» (б.п.) | Дневной спред (б.п.) | Дельта спреда (б.п.) | Обновления в «кармане» (тыс.) | Дневные обновления (тыс.) | Коэффициент котировок | Обновления сессии (млн) | Отклоненные невалидные котировки |
|---|---|---|---|---|---|---|---|---|
| AMD | 9.11 | 6.51 | 2.6 | 13.2 | 2.9 | 4.6 | 0.27 | 101 |
| INTC | 2.75 | 1.8 | 0.95 | 90.6 | 38.4 | 2.4 | 2.18 | 3498 |
| MU | 5.02 | 4.81 | 0.21 | 51.8 | 15.2 | 3.4 | 0.96 | 430 |
| NVDA | 1.04 | 1.01 | 0.03 | 122 | 44 | 2.8 | 2.41 | 266 |
| QQQ | 0.42 | 0.28 | 0.14 | 281.3 | 143.3 | 2 | 5.54 | 391 |
| SNDK | 8.65 | 8.89 | -0.24 | 19.1 | 4.6 | 4.1 | 0.3 | 91 |
| SOXL | 9.89 | 12.48 | -2.59 | 41.1 | 16.9 | 2.4 | 1.11 | 339 |
| SOXS | 19.59 | 21.07 | -1.49 | 50.1 | 13.4 | 3.8 | 0.95 | 0 |
| SPY | 0.27 | 0.27 | 0 | 237.9 | 70.6 | 3.4 | 4.23 | 803 |
| WDC | 10.77 | 12.01 | -1.25 | 6.3 | 2.3 | 2.7 | 0.13 | 22 |
Точный SQL-код для каждого числа
SELECT
ticker,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 2) AS pocket_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS midday_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00')
- quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS spread_delta_bps,
round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_updates_k,
round(countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_updates_k,
round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 1) AS quote_rate_ratio,
round(count() / 1e6, 2) AS session_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AMD', 'INTC', 'MU', 'NVDA', 'QQQ', 'SNDK', 'SOXL', 'SOXS', 'SPY', 'WDC')
AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
GROUP BY ticker
ORDER BY tickerНа утренних минимумах проверяемые бумаги обновлялись в несколько раз быстрее, чем в середине дня: MU — в 3.4 раза, SanDisk — в 4.1 раза, AMD — в 4.6 раза, при этом bid-ask спред почти не изменился. Медианная ширина спреда MU в момент просадки составила 5.02 б.п. против 4.81 в середине дня, у NVDA — 1.04 против 1.01, а у SPY спред не изменился вовсе (изменение на 0 б.п. при значении 0.27 б.п.). Двумя бумагами, которые действительно столкнулись с расширением спреда, стали AMD (+2.6 б.п.) и Intel (+0.95 б.п.); Intel была единственной бумагой, которая продолжала падать после просадки, в то время как пара с кредитным плечом, напротив, сузила спреды на дне (SOXL — -2.59 б.п., SOXS — -1.49 б.п.). Вакуум ликвидности обычно выглядит как широкие спреды и тишина; здесь же мы увидели обратное — шторм котировок при зафиксированном спреде. Тем не менее, издержки на исполнение сделок остались зависимыми от конкретного инструмента: спред SOXS на дне составил 19.59 б.п. против 1.04 б.п. у NVDA.
| Ср. спред 7 июля (центы) | Рейтинг плотности | Сравнение сессий | Мин. спред сессии (центы) | Макс. спред сессии (центы) | Первая сессия | Отклоненные невалидные котировки |
|---|---|---|---|---|---|---|
| 1.809 | 1 | 21 | 1.809 | 2.865 | 2026-06-05 | 41883 |
Точный SQL-код для каждого числа
SELECT
round(anyIf(avg_spread_cents, d = toDate('2026-07-07')), 3) AS jul7_avg_spread_cents,
arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-07')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-07'))) + 1 AS tightness_rank,
count() AS sessions_compared,
round(min(avg_spread_cents), 3) AS tightest_session_cents,
round(max(avg_spread_cents), 3) AS widest_session_cents,
toString(min(d)) AS first_session,
sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime('2026-06-05 00:00:00')
AND sip_timestamp < toDateTime('2026-07-08 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
)Что касается регулярной проверки, которую мы проводим каждую сессию: по средневзвешенному по количеству обновлений спреду 7 июля стало для SPY самой «узкой» сессией за последний месяц — 1.809 цента, что соответствует рангу 1 из 21, при том что в течение месяца этот показатель достигал 2.865 цента в своей самой широкой точке. Соотношение «два к одному» в пользу красной ленты при самой узкой за месяц котировке индекса — это факт, который может подтвердить только поток котировок.
| Строки котировок опционов 7 июля | Обновления котировок опционов 7 июля (млрд) | Обновления котировок опционов 6 июля (млрд) | Изменение за день (%) | Обновления котировок акций 7 июля (млн) | Соотношение опционов к акциям 7 июля |
|---|---|---|---|---|---|
| 8694614147 | 8.69 | 6.49 | 34 | 492.76 | 17.6 |
Точный SQL-код для каждого числа
WITH
(
SELECT count()
FROM global_markets.cache_options_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_option_rows,
(
SELECT count()
FROM global_markets.cache_options_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260706
) AS jul6_option_rows,
(
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_stock_quote_rows
SELECT
jul7_option_rows AS jul7_option_quote_rows,
round(jul7_option_rows / 1e9, 2) AS jul7_option_quote_updates_bn,
round(jul6_option_rows / 1e9, 2) AS jul6_option_quote_updates_bn,
round((jul7_option_rows / jul6_option_rows - 1) * 100, 1) AS day_over_day_pct,
round(jul7_stock_quote_rows / 1e6, 2) AS jul7_stock_quote_updates_m,
round(jul7_option_rows / jul7_stock_quote_rows, 1) AS jul7_option_to_stock_ratioПоток котировок опционов еще масштабнее, это самый крупный массив данных в нашем хранилище. 7 июля было зафиксировано 8.69 млрд обновлений NBBO по опционам, что в 17.6 раза превышает объем всей ленты котировок акций за ту же сессию (492.76 млн обновлений). В понедельник лента опционов содержала 6.49 млрд обновлений, таким образом, поток опционов вырос на 34% по сравнению с предыдущей сессией, тогда как поток акций — на 25.7%.
| Обновления опционов SPY (млн) | Доля в общем потоке котировок акций (%) | Котируемые контракты SPY | Обновления за день (млн) | Цена SPY в «кармане» | Дневная цена SPY | Спред ATM в «кармане» ($) | Дневной спред ATM ($) | Дельта спреда ATM ($) | Обновления ATM в «кармане» (тыс.) | Обновления ATM (тыс.) | Коэфф. котировок ATM | Отклоненные котировки (день) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 327.55 | 66.5 | 9116 | 13.61 | 746 | 749.08 | 0.01 | 0.01 | 0 | 191.1 | 64 | 3 | 42872 |
Точный SQL-код для каждого числа
WITH
(
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_stock_quote_rows,
(
SELECT round(toFloat64(avg(close)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-07 14:36:00' AND window_start < '2026-07-07 14:48:00'
) AS spy_pocket_price,
(
SELECT round(toFloat64(avg(close)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-07 17:30:00' AND window_start < '2026-07-07 17:42:00'
) AS spy_midday_price
SELECT
round(count() / 1e6, 2) AS spy_option_updates_m,
round(100.0 * count() / jul7_stock_quote_rows, 1) AS pct_of_whole_equity_quote_tape,
uniqExact(ticker) AS spy_contracts_quoted,
round(countIf(substring(ticker, -15, 6) = '260707') / 1e6, 2) AS same_day_updates_m,
spy_pocket_price AS spy_price_in_pocket,
spy_midday_price AS spy_price_midday,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
bid_price > 0 AND ask_price >= bid_price
AND substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 3) AS pocket_atm_spread_dollars,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
bid_price > 0 AND ask_price >= bid_price
AND substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 3) AS midday_atm_spread_dollars,
round(pocket_atm_spread_dollars - midday_atm_spread_dollars, 3) AS atm_spread_delta_dollars,
round(countIf(substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_atm_updates_k,
round(countIf(substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_atm_updates_k,
round(pocket_atm_updates_k / midday_atm_updates_k, 1) AS atm_quote_rate_ratio,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)
AND substring(ticker, -15, 6) = '260707') AS dropped_invalid_same_day_quotes
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
HAVING pocket_atm_updates_k > 0 AND midday_atm_updates_k > 0Только на контракты SPY с экспирацией в 2026 году пришлось 327.55 млн этих обновлений в основную торговую сессию, распределенных по 9116 листинговым контрактам. Это 66.5% от того объема, который весь рынок акций прокотировал за тот же день по одному базовому активу. На контракты с экспирацией в тот же день, составляющие ленту 0DTE, пришлось 13.61 млн из них.
В течение двенадцати минут утреннего провала рынка околоденежные контракты с экспирацией в тот же день котировались с медианным спредом в $0.01, что в точности соответствует показателю в контрольный период в середине дня ($0.01, дельта 0). Частота котирования по этой же паре составила 3: 191.1 тысяч обновлений на минимумах против 64 тысяч в обеденное время. Спред опционов вел себя так же, как и спред акций. Он сохранил свою ширину, пока механизм котирования работал на пределе. «Околоденежные» означает страйк в пределах двух долларов от средней цены SPY в том же временном окне; на панели представлены обе цены (746 в момент просадки, 749.08 в середине дня).
Ставки: кривая доходности снизилась вместе с сектором роста
| Точка кривой | Доходность 7 июля (%) | Изменение за сессию (б.п.) |
|---|---|---|
| 1 month | 3.69 | 0 |
| 3 month | 3.86 | -1 |
| 1 year | 4.06 | 11 |
| 2 year | 4.19 | 6 |
| 5 year | 4.27 | 6 |
| 10 year | 4.55 | 7 |
| 30 year | 5.05 | 6 |
| 2s10s spread | 0.36 | 1 |
Точный SQL-код для каждого числа
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul7_yield_pct,
round((t.2 - t.3) * 100) AS session_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-07-07') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS p
)Казначейские облигации подешевели вслед за акциями компаний роста. Доходность однолетних бумаг выросла на 11 базисного пункта до 4.06%, десятилетних — на 7 до 4.55%, а тридцатилетних — на 6 до 5.05%, превысив отметку в пять процентов. Спред 2s10s остался на уровне 0.36 процентного пункта (изменение на 1 базисного пункта): движение было преимущественно параллельным, без изменения формы кривой.
Календарь событий дня
| Реестры экс-дивидендов | Сплиты | Обратные сплиты | Прямые сплиты | Размещения IPO | Отчетность SEC | Инсайдерские отчеты (Form 4) | Отчеты 8-K | Новостные статьи | Издатели новостей | Тикер в фокусе | Лидер — NVDA | Статей о лидере | Отрыв от следующего | Статьи CRNX |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 80 | 7 | 5 | 2 | 1 | 2438 | 463 | 173 | 215 | 3 | NVDA | 1 | 17 | 4 | 0 |
Точный SQL-код для каждого числа
WITH
(
SELECT (count(), uniqExact(publisher))
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07'
) AS news,
(
SELECT (argMax(t, n), max(n), max(n) - arraySort(x -> -x, groupArray(n))[2])
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-07-07'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-07') AS ex_dividend_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS splits_executed,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-07') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS filings_8k,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
if(top_news.1 = 'NVDA', 1, 0) AS most_covered_is_nvda,
top_news.2 AS most_covered_articles,
top_news.3 AS most_covered_lead_over_next,
(SELECT countIf(has(tickers, 'CRNX')) FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07') AS crnx_articles80 эмитентов достигли даты ex-dividend, по 7 бумагам прошли сплиты, из них 5 — обратные сплиты, консолидации акций с ценой ниже одного доллара, создающие иллюзию трехзначного «роста» на нескорректированных графиках, против 2 форвардных сплитов, и состоялся 1 листинг. В базе SEC зарегистрировано 2438 отчетов: 463 форм 4, 173 форм 8-K. Наша лента новостей содержала 215 статей от 3 издателей; наиболее упоминаемым активом стал NVDA с 17 статьями, опередив на 4 следующую компанию — тот самый NVDA, который закрылся в плюсе на фоне общего снижения сектора. В ленте было 0 статей о CRNX, лидере роста по объему торгов, что отражает внимание конкретного источника, а не мировых СМИ.
Торговая сессия, подтверждено
| Первый бар SPY (ET) | Последний бар SPY (ET) | Минутные бары SPY | Бары осн. сессии | Дневные сессии | Строки праздника 7 июля | Дата след. закрытия | След. праздничный день |
|---|---|---|---|---|---|---|---|
| 04:00 | 19:59 | 902 | 390 | 1 | 0 | 2026-09-07 | Labor Day |
Точный 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-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-07') AS jul7_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 00:00:00' AND window_start < '2026-07-08 00:00:00'Седьмое июля было полноценной торговой сессией, а не сокращенным днем: бары SPY отображаются с 04:00 по 19:59 по нью-йоркскому времени, ровно 390 баров в рамках основной торговой сессии, а таблица праздничных дней содержит 0 записей для этой даты. Следующее запланированное закрытие торгов — Labor Day, 2026-09-07.
Примечания к данным
- Денежный объем является прокси-показателем на минуту: цена закрытия, умноженная на объем, суммируется по минутным барам в течение основной торговой сессии.
- Разделение на гэп и внутридневное движение рассчитывается от первого бара основной сессии (открытия) относительно цены закрытия предыдущей сессии; остаток движения приходится на период от открытия до закрытия 7 июля.
- Синхронизированные утренние минимумы были перепроверены по соседним барам на момент написания статьи; каждый из них подтверждается соседними минутами, а не является единичной сделкой; ни один из них не был признан аномалией. Если экстремум был зафиксирован более чем в одну минуту, в панели отображается самый ранний такой бар (детерминированный способ разрешения ничьих).
- Один тикер с повторно использованным символом исключен из списков лидеров по объему и из обзора новостей до завершения проверки эмитента; подробности приведены в отдельной публикации.
- Статистика котируемых спредов исключает невалидные котировки (односторонние или пересекающиеся записи NBBO), при этом каждая панель спредов содержит отдельный столбец для отброшенных значений. «Средневзвешенный по обновлениям спред» рассчитывает среднюю ширину котировок по всем валидным обновлениям NBBO, где моменты высокой активности имеют больший вес; это показатель котирования, а не стоимость исполнения сделки.
- Опционные котировки за 7 июля поступили после первой публикации статьи.
cache_options_quotesимеет наибольшую задержку при загрузке в хранилище, поэтому в первой версии на месте панелей с опционными котировками отображались нулевые значения. Данные поступили, ограничение по нулевым строкам было снято при обновлении, и в текущей версии учтено 8.69 миллиарда обновлений за сессию. Лента котировок акций была полной с самого начала: последнее обновление за 7 июля зафиксировано в минуту 1199 по восточному времени, с 77.13 миллионами обновлений в последний час основной сессии (столбцы с данными в панели ленты котировок). - Ширина опционных котировок измеряется около цены исполнения (near the money). Медиана по каждому обновлению для всех контрактов с исполнением в тот же день является составным статистическим показателем: контракты глубоко «в деньгах» котируются с широким спредом, контракты глубоко «вне денег» — с узким, а состав контрактов, по которым приходят обновления, меняется в течение сессии. Сравнение периодов открытия и середины дня ограничено страйками в пределах двух долларов от средней цены SPY в каждом окне; обе цены представлены в столбцах панели. Невалидные опционные котировки (односторонние или пересекающиеся) учитываются в этой панели, а не отбрасываются без уведомления.
- Данные по казначейским облигациям за 7 июля поступили с задержкой на одну сессию, в первой версии статьи было указано предупреждение о задержке; триггер сработал 8 июля, когда данные были получены, и в текущей версии представлена актуальная кривая доходности.
Методология
- Период анализа ограничен одной торговой сессией (сессия 1, верифицированная по наблюдаемым барам и календарю праздничных дней, без допущений). Временные метки хранятся в формате UTC и преобразуются в нью-йоркское время внутри запросов. «Закрытие» означает последний минутный бар основной торговой сессии; изменение за день сравнивает сессии седьмого июля и шестого июля, как последовательные торговые дни.
- Столбцы с десятичными дробями приводятся к 64-битным числам с плавающей запятой перед выполнением арифметических операций с коэффициентами; сроки экспирации опционов пересчитываются из тикера OCC (собственный столбец экспирации в таблице содержит ошибки). Все панели считываются однократно в момент написания через защищенный путь доступа только для чтения. Состояние хранилища данных на восьмое июля две тысячи двадцать шестого года.
- Раздел с котировками ленты был добавлен в ревизию от восьмого июля (в той же ревизии, где задержка поступления данных по казначейским облигациям была заменена на фактические сделки), а панели опционных котировок были переписаны после того, как поступили данные NBBO по опционам за седьмое июля. Генерация отчетов реализована как пакетная задача: панель опционных котировок SPY сканирует несколько сотен миллионов записей NBBO, в то время как подсчет объема ленты считывает итоговое количество строк в дневных разделах; именно так таблица, содержащая миллиарды строк на сессию, выдает результат подсчета менее чем за одну секунду.
Каждая панель представляет собой результат сохраненного запроса, график, таблицу и SQL-код как единый объект. Скопируйте любой из них в терминал Strasmore и используйте в своей работе. Предыдущая сессия: шестое июля.