Strasmore Research
Обзор рынка Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-03

Итоги торгов 7 июля 2026 года: обзор рынка

Сектор полупроводников показал значительное падение, однако NVDA удержала позиции. Рыночная статистика зафиксировала соотношение падающих акций к растущим два к одному.

Вторник, 7 июля 2026 года, отыграл половину роста понедельничного гэпа на открытии и даже больше: QQQ закрылся на уровне -1.82%, полностью нивелировав понедельничный прирост, в то время как DIA показал -0.29%. Внутри рынка преобладали продавцы в соотношении два к одному: 4034 ликвидных бумаг подешевели против 2091 подорожавших. Главным событием дня стал обвал в секторе полупроводников, масштаб которого в несколько раз превысил падение индекса, при этом один из гигантов сектора остался в стороне от движения. Все приведенные ниже цифры получены из сохраненного запроса; разверните любую панель для просмотра точного SQL.

Табло

Все изменения сравнивают минутный бар последней минуты основной сессии 7 июля с аналогичным баром понедельника, 6 июля, — последовательными торговыми сессиями.

ЗапросSPY / QQQ / DIA / IWM: 7 июля к закрытию 6 июля, основная торговая сессия
ТикерЦена закрытия (пред.)Цена открытияЦена закрытияГэп (%)Внутридневное изм. (%)Изменение (%)Максимум дняМинимум дняОбъем (млн)
DIA530.03532.5528.480.47-0.76-0.29532.54527.114.1
IWM298.88299.17296.20.1-0.99-0.9299.97295.1816.4
QQQ722.63714.17709.5-1.17-0.65-1.82716.35704.937.4
SPY751.3750.22747.66-0.14-0.34-0.48750.96745.2138.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 и SPY: показатели 7 июля в сравнении с прошлым месяцем (ранг 1 = максимальное абсолютное изменение)
QQQ изм. закр./закр. (%)QQQ ранг абс. движенияQQQ сессий для сравненияSPY изм. откр./закр. (%)SPY ранг абс. движенияSPY сессий для сравненияПервая сессия
-1.82921-0.3415212026-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 июля наблюдалась заметная дисперсия.

Рыночный охват: на одну растущую бумагу приходятся две падающие

ЗапросРастущие и падающие акции с объемом торгов от $1 млн за 7 июля
РастущиеПадающиеБез изм.Ликвидные тикерыТикеры в обеих сессияхОтсеяно по ликвидностиРастущие (%)
2091403459618411460527633.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 > 0
Запустите сами

2091 акций выросли, 4034 снизились, 59 остались без изменений. 33.8% ликвидных инструментов показали рост, зеленый принт понедельника сменился на противоположный. Фильтр исключает 5276 из 11460 тикеров, торговавшихся в течение двух сессий с объемом менее одного миллиона долларов, которые учитываются здесь.

Сектор чипов обвалился, за исключением крупнейших игроков

Распродажа была сосредоточена в полупроводниковой отрасли: среди производителей чипов, поставщиков оборудования, компаний сектора хранения данных и связанных с ними ETF с кредитным плечом. Ниже приведены данные о корреляции и масштабах движения; причины в данных не указаны.

ЗапросСектор полупроводников 7 июля: изменение к закрытию понедельника, диапазон и объем торгов в долларах
ТикерЦена закрытия (пред.)Цена закрытияИзм. (%)Максимум дня (ET)Минимум дня (ET)Минута максимума (ET)Минута минимума (ET)Диапазон (%)Дневной объем ($ млрд)
AMD551.95516.57-6.4112:2910:467496464.3412.48
AVGO373.9370.79-0.8313:4210:448226443.026.09
INTC122.22110.5-9.5909:3015:185709187.5413.82
KLAC233.39216.52-7.2309:3010:435706436.132.91
LRCX349.92326.12-6.809:3010:415706415.643.97
MRVL249.29230.81-7.4109:3010:425706426.56.42
MU984.31938.95-4.6115:5910:419596415.6541.6
NVDA195.62196.930.6713:0710:357876353.819.95
SNDK1743.081619.26-7.109:3010:4257064210.3619.73
SOXL194.77165.27-15.1509:3010:4457064414.5310.8
SOXS4.164.8215.8710:4209:3064257010.32.78
STX869.5827.4-4.8409:4510:445856446.583.1
TER379.66343.1-9.6309:3010:415706419.981.59
WDC577.46532.34-7.8109:3011:005706607.763.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%.

Другая сторона ленты

На каждые две акции, закрывшиеся в минусе, приходится одна в плюсе. Что выросло на фоне падения сектора чипов:

ЗапросРост на фоне падения чипов: лидеры рынка и крупнейшая сделка дня
ТикерЦена закрытия (пред.)Цена открытияЦена закрытияГэп (%)Внутридневное изм. (%)Изм. (%)Дневной объем ($ млрд)
CRNX42.0283.5883.5398.91-0.0698.794.19
CVX168.13170.14173.971.22.253.471.21
JNJ259.33264.89267.292.140.913.071.92
LLY1202.561232.881235.642.520.222.752.87
META600.43607.59615.571.191.312.529.73
TSLA419.77416.96402.88-0.67-3.38-4.0213.36
UNH418.1423.95428.181.412.411.61
XOM136.49138.56141.651.522.233.781.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%). Это пример переоценки между сессиями, которая происходит там, где проходят премаркет-сделки. Данные не содержат информации о причинах такого движения.

Где проходили торги

ЗапросЛидеры по объему: топ-6 по долларовому обороту, топ-4 по количеству акций (исключая дублирующие тикеры)
Таблица лидеровТикерОбъем ($ млрд)Акции (млн)% от лидера
by dollars tradedMU41.645.3100
by dollars tradedSPY28.6838.468.9
by dollars tradedQQQ26.5437.463.8
by dollars tradedNVDA19.95102.448
by dollars tradedSNDK19.7312.547.4
by dollars tradedINTC13.82124.833.2
by shares tradedSOXS2.78566.3100
by shares tradedBITO3.47402.271
by shares tradedTZA1.1278.849.2
by shares tradedCPOP0.02161.328.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) DESC
Запустите сами

MU возглавил список по объему торгов в долларовом выражении с показателем $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 июля; один тикер исключен до подтверждения эмитента, его расписки.

Характер торговой сессии

ЗапросОбъем торгов по 30-минутным интервалам, основная сессия (млрд)
Время (ET)Акции (млрд)% крупнейшего сегмента
09:30293.4
10:001.5874
10:301.3462.7
11:001.0950.9
11:300.9946.1
12:000.9142.6
12:300.7635.3
13:000.7233.6
13:300.6429.8
14:000.7133.1
14:300.9142.7
15:001.1453.2
15:302.14100
Точный 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_time
Запустите сами

2 миллиарда акций в первые полчаса торгов, минимум в 0.64 миллиарда в 13:30 и 2.14 миллиарда к закрытию в 15:30 — стандартная «улыбка» объема, с пиком активности на закрытии.

Лента опционных сделок

ЗапросИтоги дня по опционам: объем, доля колл-опционов, 0DTE и два контракта, охватившие закрытие SPY
Сделки (млн)Контракты (млн)% Call% экспирации сегодняКонтракты сегодня (млн)Контракты SPY (млн)Контракты QQQ (млн)Контракты INTC (млн)Базовый актив (1)Страйк (1)Тип (1)Call (1)Объем (1)Ср. цена (1)Страйк (1) - SPYБазовый актив (2)Страйк (2)Тип (2)Put (2)Объем (2)Ср. цена (2)SPY - Страйк (2)Оба контракта сегодняЗакрытие SPY
10.661.1355.631.219.0812.488.360.69SPY749C18734380.6471.34SPY747P17858340.880.662747.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), который непрерывно обновляется по всем листинговым инструментам. Это самый сложный для получения массив данных в нашем хранилище. Мы замеряем его каждую сессию, независимо от рыночных условий.

ЗапросПоток котировок NBBO: 7 июля в сравнении с 6 июля
Обновления 7 июля (млн)Обновления 6 июля (млн)Изменение за день (%)Последняя котировка 7 июля (ET)Обновления за час закрытия 7 июля (млн)
492.76391.9625.7119977.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 млн в понедельник. Мы наблюдаем рост частоты котирования, а не расширение спредов:

ЗапросКотировки в момент «воздушной ямы»: медианный спред и частота обновления, 10:36–10:48 ET против контрольного периода (по 12 минут)
ТикерСпред в «кармане» (б.п.)Дневной спред (б.п.)Дельта спреда (б.п.)Обновления в «кармане» (тыс.)Дневные обновления (тыс.)Коэффициент котировокОбновления сессии (млн)Отклоненные невалидные котировки
AMD9.116.512.613.22.94.60.27101
INTC2.751.80.9590.638.42.42.183498
MU5.024.810.2151.815.23.40.96430
NVDA1.041.010.03122442.82.41266
QQQ0.420.280.14281.3143.325.54391
SNDK8.658.89-0.2419.14.64.10.391
SOXL9.8912.48-2.5941.116.92.41.11339
SOXS19.5921.07-1.4950.113.43.80.950
SPY0.270.270237.970.63.44.23803
WDC10.7712.01-1.256.32.32.70.1322
Точный 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.

ЗапросСредневзвешенный спред SPY: 7 июля в сравнении с прошлым месяцем (ранг 1 = минимальный спред)
Ср. спред 7 июля (центы)Рейтинг плотностиСравнение сессийМин. спред сессии (центы)Макс. спред сессии (центы)Первая сессияОтклоненные невалидные котировки
1.8091211.8092.8652026-06-0541883
Точный 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 цента в своей самой широкой точке. Соотношение «два к одному» в пользу красной ленты при самой узкой за месяц котировке индекса — это факт, который может подтвердить только поток котировок.

ЗапросПоток опционных котировок NBBO: 7 июля в сравнении с 6 июля и с котировками акций за ту же сессию
Строки котировок опционов 7 июляОбновления котировок опционов 7 июля (млрд)Обновления котировок опционов 6 июля (млрд)Изменение за день (%)Обновления котировок акций 7 июля (млн)Соотношение опционов к акциям 7 июля
86946141478.696.4934492.7617.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 7 июля: весь инструмент и околоденежные контракты в момент «воздушной ямы» против контрольного периода
Обновления опционов SPY (млн)Доля в общем потоке котировок акций (%)Котируемые контракты SPYОбновления за день (млн)Цена SPY в «кармане»Дневная цена SPYСпред ATM в «кармане» ($)Дневной спред ATM ($)Дельта спреда ATM ($)Обновления ATM в «кармане» (тыс.)Обновления ATM (тыс.)Коэфф. котировок ATMОтклоненные котировки (день)
327.5566.5911613.61746749.080.010.010191.164342872
Точный 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 июля в сравнении с 6 июля (только доступные сроки погашения)
Точка кривойДоходность 7 июля (%)Изменение за сессию (б.п.)
1 month3.690
3 month3.86-1
1 year4.0611
2 year4.196
5 year4.276
10 year4.557
30 year5.056
2s10s spread0.361
Точный 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 базисного пункта): движение было преимущественно параллельным, без изменения формы кривой.

Календарь событий дня

ЗапросКорпоративный календарь и информационный поток 7 июля
Реестры экс-дивидендовСплитыОбратные сплитыПрямые сплитыРазмещения IPOОтчетность SECИнсайдерские отчеты (Form 4)Отчеты 8-KНовостные статьиИздатели новостейТикер в фокусеЛидер — NVDAСтатей о лидереОтрыв от следующегоСтатьи CRNX
80752124384631732153NVDA11740
Точный 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_articles
Запустите сами

80 эмитентов достигли даты ex-dividend, по 7 бумагам прошли сплиты, из них 5обратные сплиты, консолидации акций с ценой ниже одного доллара, создающие иллюзию трехзначного «роста» на нескорректированных графиках, против 2 форвардных сплитов, и состоялся 1 листинг. В базе SEC зарегистрировано 2438 отчетов: 463 форм 4, 173 форм 8-K. Наша лента новостей содержала 215 статей от 3 издателей; наиболее упоминаемым активом стал NVDA с 17 статьями, опередив на 4 следующую компанию — тот самый NVDA, который закрылся в плюсе на фоне общего снижения сектора. В ленте было 0 статей о CRNX, лидере роста по объему торгов, что отражает внимание конкретного источника, а не мировых СМИ.

Торговая сессия, подтверждено

ЗапросОбзор сессии: минутные бары SPY, праздничный календарь и дата следующего закрытия торгов
Первый бар SPY (ET)Последний бар SPY (ET)Минутные бары SPYБары осн. сессииДневные сессииСтроки праздника 7 июляДата след. закрытияСлед. праздничный день
04:0019:59902390102026-09-07Labor 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 и используйте в своей работе. Предыдущая сессия: шестое июля.

#recap#daily#spy#qqq#market structure