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

Итоги торгов 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. Последний месяц, включающий колебания в секторе памяти в конце июня, задает высокую планку. Однако дисперсия под поверхностью индекса выделяет седьмое июля.

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

ЗапросРастущие и падающие акции с объемом торгов от $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 тикеров, торговавшихся в течение двух сессий с объемом менее одного миллиона долларов, которые учитываются в данном обзоре.

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.

ЗапросСектор полупроводников 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%) 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%.

Обратная сторона ленты

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

ЗапросРост на фоне падения сектора чипов: и самая крупная сделка дня
ТикерЦена закрытия (пред.)Цена открытияЦена закрытияГэп (%)Внутридневное изм. (%)Изм. (%)Дневной объем (млрд $)
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 млн бумаг. Этот инверсный 3x ETF на полупроводники возглавляет список третью сессию подряд (предыдущие сделки приходятся на понедельник и четверг), причем в этот раз — в день, когда его сектор действительно показал снижение. CPOP служит контрпримером: 161.3 млн акций обеспечили оборот всего в $0.02 млрд; количество акций в обращении часто завышает показатели дешевых бумаг. База данных: регулярная торговая сессия 7 июля; один тикер исключен до подтверждения данных эмитента, его расписки.

Ход торговой сессии

ЗапросОбъем торгов по 30-минутным интервалам, основная сессия, аукцион закрытия включен в последний интервал (млрд)
Время (ET)Акции (млрд)% от макс. объема
09:30261.6
10:001.5848.8
10:301.3441.3
11:001.0933.6
11:300.9930.4
12:000.9128.1
12:300.7623.3
13:000.7222.1
13:300.6419.6
14:000.7121.8
14:300.9128.1
15:001.1435.1
15:303.25100
Точный 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_time
Запустите сами

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

Рынок опционов

ЗапросИтоги дня по опционам: объем, доля колл-опционов, 0DTE и два контракта, ограничивающие цену закрытия SPY
Сделки (млн)Контракты (млн)% Call% эксп. сегодняКонтракты сегодня (млн)Контракты SPY (млн)Контракты QQQ (млн)Контракты INTC (млн)Актив (топ-1)Страйк (топ-1)Тип (топ-1)Call (топ-1)Объем (топ-1)Ср. цена (топ-1)Страйк - SPYАктив (топ-2)Страйк (топ-2)Тип (топ-2)Put (топ-2)Объем (топ-2)Ср. цена (топ-2)SPY - СтрайкОба 0DTESPY закрытие
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 минут)
ТикерСпред Pocket (б.п.)Спред Midday (б.п.)Дельта спреда (б.п.)Обновления Pocket (тыс.)Обновления Midday (тыс.)Коэффициент котировокОбновления сессии (млн)Отклоненные котировки
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 в PocketЦена SPY MiddayСпред ATM Pocket ($)Спред ATM Midday ($)Дельта спреда 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 тысяч в обеденное время. Опционный спред вел себя так же, как и спред акций. Он сохранил свою ширину, пока механизмы котирования работали на пределе. «Околоденежные» (near-the-money) означает страйк в пределах двух долларов от средней цены 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.

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

  • Денежный объем (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 июля.