Итоги торгов 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. Последний месяц, включающий колебания в секторе памяти в конце июня, задает высокую планку. Однако дисперсия под поверхностью индекса выделяет седьмое июля.
Рыночный охват: на каждую растущую бумагу приходится две падающие
| Растущие | Падающие | Без изменений | Ликвидные тикеры | Тикеры в обеих сессиях | Отсеяно по ликвидности | Доля растущих (%) |
|---|---|---|---|---|---|---|
| 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 тикеров, торговавшихся в течение двух сессий с объемом менее одного миллиона долларов, которые учитываются в данном обзоре.
The chip complex broke, except its biggest names
The selling concentrated in semiconductors: the chipmakers, the equipment names that supply them, the storage complex around them, and the leveraged ETFs wrapped on top. Co-movement and magnitude reported below; the data does not say why.
| Тикер | Цена закрытия (пред.) | Цена закрытия | Изм. (%) | Максимум дня (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 tickerTeradyne (-9.63%) and Intel (-9.59%) lost nearly a tenth of their value, with Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%) and AMD (-6.41%) close behind. The memory-and-storage names that half-bounced on Monday rolled straight back over: SanDisk -7.1% across a 10.36% high-to-low range, Western Digital -7.81%, Seagate -4.84%, and MU -4.61%, MU turning over $41.6 billion of stock, more than the other three storage names combined (the MU deep-dive carries the backstory).
The sector's two giants sat it out: NVDA closed green at 0.67% and Broadcom finished near flat at -0.83%, a sector-wide red day, minus its largest members (NVDA's June deep-dive).
The timing was synchronized, one morning air pocket: TER, LRCX and MU printed their session lows at 10:41, 10:41 and 10:41 ET, with SanDisk, Marvell, KLA, AVGO and SOXL inside the same minutes (the panel carries each stamp), and SOXS, the 3x inverse semiconductor ETF, printed its session high at 10:42, the stretch upside down. Intel kept falling long after the rest stabilized, its low arriving at 15:18. The leveraged wrappers translate the magnitude: SOXL -15.15% against 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 млн бумаг. Этот инверсный 3x ETF на полупроводники возглавляет список третью сессию подряд (предыдущие сделки приходятся на понедельник и четверг), причем в этот раз — в день, когда его сектор действительно показал снижение. CPOP служит контрпримером: 161.3 млн акций обеспечили оборот всего в $0.02 млрд; количество акций в обращении часто завышает показатели дешевых бумаг. База данных: регулярная торговая сессия 7 июля; один тикер исключен до подтверждения данных эмитента, его расписки.
Ход торговой сессии
| Время (ET) | Акции (млрд) | % от макс. объема |
|---|---|---|
| 09:30 | 2 | 61.6 |
| 10:00 | 1.58 | 48.8 |
| 10:30 | 1.34 | 41.3 |
| 11:00 | 1.09 | 33.6 |
| 11:30 | 0.99 | 30.4 |
| 12:00 | 0.91 | 28.1 |
| 12:30 | 0.76 | 23.3 |
| 13:00 | 0.72 | 22.1 |
| 13:30 | 0.64 | 19.6 |
| 14:00 | 0.71 | 21.8 |
| 14:30 | 0.91 | 28.1 |
| 15:00 | 1.14 | 35.1 |
| 15:30 | 3.25 | 100 |
Точный SQL-код для каждого числа
SELECT
et_time,
round(sum(shares) / 1e9, 2) AS shares_bn,
round(100 * sum(shares) / max(sum(shares)) OVER (), 1) AS pct_of_biggest_bucket
FROM
(
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
toFloat64(volume) AS shares
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'
UNION ALL
SELECT
'15:30' AS et_time,
toFloat64(size) AS shares
FROM global_markets.stocks_trades
WHERE sip_timestamp >= '2026-07-07 20:00:00' AND sip_timestamp < '2026-07-07 20:15:00'
AND has(conditions, 8)
)
GROUP BY et_time
ORDER BY et_time2 миллиарда акций в первые полчаса торгов, минимум на уровне 0.64 миллиарда в 13:30 и 3.25 миллиарда к закрытию в 15:30 — обычная «улыбка» объема, наиболее выраженная на закрытии.
Рынок опционов
| Сделки (млн) | Контракты (млн) | % Call | % эксп. сегодня | Контракты сегодня (млн) | Контракты SPY (млн) | Контракты QQQ (млн) | Контракты INTC (млн) | Актив (топ-1) | Страйк (топ-1) | Тип (топ-1) | Call (топ-1) | Объем (топ-1) | Ср. цена (топ-1) | Страйк - SPY | Актив (топ-2) | Страйк (топ-2) | Тип (топ-2) | Put (топ-2) | Объем (топ-2) | Ср. цена (топ-2) | SPY - Страйк | Оба 0DTE | 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 млн в понедельник. Мы наблюдаем рост частоты котирования, а не расширение спредов:
| Тикер | Спред Pocket (б.п.) | Спред Midday (б.п.) | Дельта спреда (б.п.) | Обновления Pocket (тыс.) | Обновления Midday (тыс.) | Коэффициент котировок | Обновления сессии (млн) | Отклоненные котировки |
|---|---|---|---|---|---|---|---|---|
| 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 в Pocket | Цена SPY Midday | Спред ATM Pocket ($) | Спред ATM Midday ($) | Дельта спреда 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 тысяч в обеденное время. Опционный спред вел себя так же, как и спред акций. Он сохранил свою ширину, пока механизмы котирования работали на пределе. «Околоденежные» (near-the-money) означает страйк в пределах двух долларов от средней цены 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.
Примечания к данным
- Денежный объем (dollar volume) — это прокси-показатель на основе минутных данных, рассчитываемый как произведение цены закрытия на объем для каждого минутного бара в течение основной торговой сессии.
- Панель объема за последние полчаса включает сделки закрытия (closing auction prints). Поскольку минутные бары не учитывают сделки аукциона, в итоговый интервал добавляются все сделки с условием исполнения «closing-print», зафиксированные в консолидированной ленте с 16:00 до 16:15 по восточному времени (ET).
- Разделение на «гэп» и «внутридневное движение» (gap-versus-grind) рассчитывается как разница между первым минутным баром основной сессии (открытие) и ценой закрытия предыдущей сессии; остальная часть движения — это изменение от открытия до закрытия 7 июля.
- Синхронизированные утренние минимумы были перепроверены по соседним барам на момент написания статьи; каждый минимум подтверждается соседними минутными интервалами, а не отдельной сделкой. Ни один из них не был классифицирован как аномалия. Если экстремум был зафиксирован в нескольких минутах, на панели отображается самый ранний бар (детерминированный метод разрешения спорных ситуаций).
- Один тикер с повторно использованным символом исключен из рейтингов по объему торгов и новостных сводок до завершения верификации эмитента; подробности приведены в отдельной публикации.
- Статистика котируемых спредов исключает некорректные котировки (односторонние или пересекающиеся записи NBBO), при этом количество отброшенных записей отображается в отдельном столбце каждой панели спредов. «Средневзвешенный по обновлениям спред» (update-weighted average spread) рассчитывается как средняя ширина котировок по всем валидным обновлениям NBBO; периоды высокой активности имеют больший вес. Это статистический показатель котировок, а не стоимость исполнения сделки.
- Опционные котировки за 7 июля поступили после первой публикации статьи.
cache_options_quotesимеет наибольшую задержку при загрузке данных, поэтому в первой версии на месте панелей опционных котировок отображались пустые строки. После поступления данных и обновления статьи текущая версия содержит 8.69 миллиардов обновлений за сессию. Лента котировок акций была полной с самого начала: последнее обновление за 7 июля зафиксировано в минуту 1199 по восточному времени, с общим объемом 77.13 миллионов обновлений за последний час основной сессии (столбцы с данными о поступлении приведены в панели ленты котировок). - Ширина опционных котировок измеряется для контрактов «около денег» (near the money). Медиана по каждому обновлению для всех торгуемых контрактов того же дня является композитным показателем: глубоко «в деньгах» контракты имеют спреды в долларах, а глубоко «вне денег» — в центах; набор активно котируемых контрактов меняется в течение сессии. Сравнение периодов «открытия» и «середины дня» ограничено страйками в пределах двух долларов от средней цены SPY в каждом окне; обе цены представлены в соответствующих столбцах панели. Некорректные опционные котировки (односторонние или пересекающиеся) учитываются в этой панели, а не просто игнорируются.
- Данные по казначейским облигациям за 7 июля поступили с задержкой на одну сессию, поэтому в первой версии статьи было указано наличие задержки; после поступления данных 8 июля текущая версия содержит актуальную кривую доходности.
Методология
- Период анализа ограничен одной торговой сессией (1 сессия, верифицированная по наблюдаемым барам и календарю праздников, без допущений). Временные метки хранятся в UTC и преобразуются в нью-йоркское время внутри запросов. «Закрытие» означает последний минутный бар основной торговой сессии; изменение за день сравнивает 7 июля с 6 июля, последовательными торговыми сессиями.
- Столбцы с десятичными дробями приводятся к 64-битным числам с плавающей запятой перед выполнением арифметических операций с коэффициентами; даты экспирации опционов повторно извлекаются из тикера OCC (собственный столбец экспирации в таблице содержит ошибки). Все панели считываются один раз, в момент написания статьи, через защищенный путь доступа только для чтения. Состояние хранилища данных на 8 июля 2026 года.
- Раздел ленты котировок был добавлен в ревизии от 8 июля (в той же ревизии, где задержка поступления данных по казначейским облигациям была заменена на фактические сделки), а панели опционных котировок были переписаны после того, как поступили строки NBBO по опционам за 7 июля. Генерация данных по своей архитектуре является пакетным заданием: панель опционных котировок SPY сканирует несколько сотен миллионов записей NBBO, в то время как подсчет объема ленты считывает итоговое количество строк в дневных разделах; именно так таблица, содержащая миллиарды строк на сессию, выдает результат подсчета менее чем за одну секунду.
Каждая панель представляет собой результат сохраненного запроса, график, таблица и SQL-код являются единым объектом. Скопируйте любой из них в терминал Strasmore и используйте в своей работе. Предыдущая сессия: 6 июля.