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

Обзор рынка 8 июля 2026 года итоги дня

Краткосрочный отскок в секторе полупроводников почти не повлиял на основные индексы. Акции NVDA показали рост второй день подряд, однако общая рыночная динамика осталась слабой.

Среда, 8 июля 2026 года, отметилась однодневным отскоком в секторе чипов, который индексы почти не заметили. Акции SNDK закрылись с ростом 6.8%, AVGO — 4.82%, NVDA — 3.66%, что стало резким разворотом после вторничного обвала в секторе полупроводников, однако индексные ETF остались практически без изменений: SPY -0.31% и QQQ 0.25%. Общая рыночная картина выглядела еще более негативной, чем днем ранее: соотношение падающих акций к растущим составило два к одному: 1821 растущих бумаг против 4260 падающих, при этом доля растущих акций составила 29.6% после 33.8% в предыдущую сессию. Каждое число ниже получено из сохраненного запроса; разверните любую панель для просмотра точного SQL.

Табло результатов

Все изменения сравнивают данные последней минутной свечи регулярной сессии 8 июля с данными за 7 июля, вторник, — два последовательных торговых дня. Строки отсортированы в алфавитном порядке, поэтому каждый ETF сохраняет фиксированную позицию.

ЗапросSPY / QQQ / DIA / IWM: 8 июля к закрытию 7 июля, основная торговая сессия
ТикерЦена закрытия (пред.)Цена открытияЦена закрытияГэп (%)Внутридневное изм. (%)Изм. (%)Максимум дняМинимум дняОбъем (млн)
DIA528.48523.34522.72-0.97-0.12-1.09524.46520.033.2
IWM296.2294.03293.47-0.73-0.19-0.92295.1290.6820.3
QQQ709.5704.95711.3-0.640.90.25712.26700.9129.5
SPY747.66743.16745.31-0.60.29-0.31746.15739.5135.6
Точный 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-07 13:30:00' AND window_start < '2026-07-07 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-08 13:30:00' AND window_start < '2026-07-08 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
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker
Запустите сами

Четыре ETF открылись с гэпом вниз, после чего их динамика разошлась. Акции DIA открыли сессию на уровне -0.97% относительно предыдущего закрытия и продолжили снижение, завершив день на отметке -1.09%. Инструмент IWM открылся на уровне -0.73% и остался в минусе, закрывшись на -0.92%. Фонд SPY открылся на уровне -0.6%, постепенно отыгрывал позиции в течение дня, но всё же закрылся на -0.31%: восстановление после открытия оказалось меньше размера гэпа. Акции QQQ открылись на уровне -0.64% и к закрытию выросли до +0.25%, став единственным из четырёх инструментов, показавшим положительный результат.

Был ли этот день необычным?

Изменение цены SPY от открытия до закрытия на 0.29% заняло 16 место среди 22 последних торговых сессий. Это средний показатель для индекса, не выходящий за рамки нормы. Изменение цены QQQ от закрытия до закрытия на +0.25% заняло 21 место из 22. Это одно из самых незначительных движений QQQ за последний месяц, что соответствует сдержанным результатам торгов по данному индексу.

ЗапросДневная динамика SPY / QQQ в контексте скользящего периода (close-over-close, ~22 сессии)
QQQ изм. закр./закр. (%)QQQ ранг абс. движенияQQQ сессий для сравненияSPY изм. откр./закр. (%)SPY ранг абс. движенияSPY сессий для сравненияПервая сессия
0.2521220.2916222026-06-05
Точный SQL-код для каждого числа
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-08'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-08'))) + 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-05 13:30:00')
          AND window_start < toDateTime('2026-07-09 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)
Запустите сами

Ширина рынка: еще более выраженное соотношение «два к одному» в пользу снижения, чем днем ранее

ЗапросШирина рынка ликвидных активов: доля растущих акций 8 июля к 7 июля, фильтр по объему торгов $1 млн
РастущиеПадающиеБез изм.Ликвидные тикерыТорги в обе сессииОтсеяно по ликвидностиДоля растущих (%)Доля растущих 7 июля (%)
1821426074615511439528429.633.8
Точный SQL-код для каждого числа
SELECT
    countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS advancers,
    countIf(close_8 < close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS decliners,
    countIf(close_8 = close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS unchanged,
    countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS liquid_tickers,
    countIf(close_7 > 0 AND close_8 > 0) AS traded_both_sessions,
    countIf(close_7 > 0 AND close_8 > 0) - countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) / countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000), 1) AS advancer_pct,
    round(100.0 * countIf(close_7 > close_6 AND close_6 > 0 AND dv_7 >= 1000000) / countIf(close_7 > 0 AND close_6 > 0 AND dv_7 >= 1000000), 1) AS jul7_advancer_pct
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS dv_8,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS dv_7
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-08 20:00:00'
    GROUP BY ticker
)
Запустите сами

Разрыв между растущими (1821) и падающими (4260) активами привел к тому, что доля растущих бумаг составила 29.6% по сравнению с 33.8% в предыдущую сессию; расчеты проводились по идентичному фильтру ликвидности для обоих дней. Из 11439 инструментов, закрывшихся в оба дня, 5284 не прошли фильтр по объему торгов в один миллион долларов и были исключены из подсчета. Отскок в секторе полупроводников и разнонаправленное закрытие индекса произошли на фоне еще более повсеместного негативного настроя на широком рынке.

Сектор производителей чипов продемонстрировал уверенный отскок на высоких объёмах торгов

Строки отсортированы в алфавитном порядке, поэтому каждая позиция остается неизменной; сравнение с данными за вторник рассчитано на основе цен закрытия 7 и 6 июля, представленных в блоке данных ниже.

ЗапросЧетырнадцать акций полупроводникового сектора: цена закрытия предыдущего дня, цена закрытия дня, дневной диапазон, объем торгов в долларах, время минимума/максимума (ET)
ТикерЦена закрытия (пред.)Цена закрытияИзм. (%)Диапазон (%)Минимум дняМаксимум дняМинута минимума (ET)Макс. минута (ET)Оборот (млрд $)
AMD516.57517.260.134.81498.15522.986835878.93
AVGO370.79388.674.824.91376.89395.095707789.39
INTC110.5110.27-0.215.5104.41110.497139579.48
KLAC216.52221.032.084.2214.3223.46859291.79
LRCX326.12332.932.094.53322.72337.55705872.1
MRVL230.81231.660.375.12224.98236.795705934.57
MU938.95949.371.116.24900.4195957060032.02
NVDA196.93204.143.665.13195.06205.1657093724.17
SNDK1619.261729.46.88.9415901734.6957095916.82
SOXL165.27174.845.7910.82158.87176.755708168.12
SOXS4.824.52-6.22114.464.999295702.97
STX827.4859.683.96.18811.27862.415709593.46
TER343.1351.562.475.6335.06354.276865870.77
WDC532.34550.713.456.91526562.765706003.03
Точный SQL-код для каждого числа
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-08 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-08 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
        OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 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,
    round(((day_high - day_low) / prior_close) * 100, 2) AS range_pct,
    round(toFloat64(day_low), 2) AS day_low,
    round(toFloat64(day_high), 2) AS day_high,
    toUInt32(toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York'))) AS low_minute_et,
    toUInt32(toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York'))) AS high_minute_et,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Запустите сами

12 из четырнадцати компаний сектора закрылись в плюсе, что является зеркальным отражением торговой сессии вторника, когда 12 из четырнадцати закрылись в минусе. Лидером сектора стала SNDK с результатом +6.8% при объёме торгов в 16.82 млрд долларов, следом за ней с небольшим отставанием идет AVGO с показателем +4.82%; за ними последовали другие представители сектора систем хранения данных: STX +3.9% и WDC +3.45%. Трехкратный ETF SOXL вырос на +5.79%, а инверсный SOXS показал -6.22%, что соответствует однодневному восстановлению базового сектора. Акции MU показали более скромный рост на +1.11%, однако объём торгов по ним составил 32.02 млрд долларов, что стало самым высоким показателем в денежном выражении среди всех представленных бумаг. Акции NVDA закрылись с повышением на +3.66%, показав положительную динамику второй день подряд: это одна из всего лишь 2 компаний в данном списке, закрывшихся в плюсе во время распродажи во вторник (+0.67% в тот день).

ЗапросРезультаты: количество растущих/падающих акций из списка 14 компаний за 8 и 7 июля
8 июля (рост)8 июля (падение)7 июля (рост)7 июля (падение)NVDA 7 июля (%)Кол-во инструментов
1222120.6714
Точный SQL-код для каждого числа
SELECT
    countIf(close_8 > close_7) AS jul8_green,
    countIf(close_8 < close_7) AS jul8_red,
    countIf(close_7 > close_6) AS jul7_green,
    countIf(close_7 < close_6) AS jul7_red,
    round(anyIf((close_7 / close_6 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul7_pct,
    count() AS names_counted
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8
    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-08 20:00:00'
    GROUP BY ticker
)
Запустите сами

Другая сторона: защитные активы и мега-капитализация роста не последовали за рынком

ЗапросАнализ ротации: восемь инструментов, защитные активы, мега-капы, биотехнологии
ТикерЦена закрытия (пред.)Цена открытияЦена закрытияГэп (%)Внутридневное изм. (%)Изм. (%)Оборот (млрд $)
CRNX83.5383.5283.45-0.01-0.08-0.11.38
CVX173.97176.8175.921.63-0.51.121.36
JNJ267.29268.6263.360.49-1.95-1.471.38
LLY1235.641221.11215.87-1.18-0.43-1.62.55
META615.57614.38603.03-0.19-1.85-2.045.86
TSLA402.88399.38393.92-0.87-1.37-2.2211.71
UNH428.18427.14425.56-0.24-0.37-0.611.28
XOM141.65143.44140.961.26-1.73-0.492.08
Точный SQL-код для каждого числа
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close_raw,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-08 00:00:00')) AS day_open_raw,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close_raw,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
        OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 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
Запустите сами

Акции мега-капитализации роста двигались в направлении, противоположном сектору чипов: TSLA -2.22%, META -2.04%, LLY -1.6%. CVX стал единственным активом в списке, закрывшимся в плюсе, прибавив +1.12% на утреннем гэпе, в то время как XOM открылся ростом на +1.26%, но к закрытию снизился до -0.49%. Таким образом, в среду рынок разделился на две части: акции производителей чипов выросли, а бумаги роста и защитные активы упали, при этом индексы остались на прежних уровнях между ними. (Строки расположены в алфавитном порядке: CRNX, CVX, JNJ, LLY, META, TSLA, UNH, XOM.)

Где прошли основные объемы торгов

ЗапросТоп-6 по объему торгов в долларах, топ-4 по объему торгов в акциях: 8 июля, основная сессия
ЛидерыТикерОбъем ($ млрд)Акции (млн)Средняя цена (имп.)% от лидера
by dollars tradedMU32.0234.1939100
by dollars tradedSPY26.4935.6744.182.7
by dollars tradedNVDA24.17120.5200.5875.5
by dollars tradedQQQ20.929.5708.4765.3
by dollars tradedSNDK16.8210.11665.3552.5
by dollars tradedTSLA11.7129.7394.2836.6
by shares tradedSOXS2.97636.54.67100
by shares tradedTZA1.37334.84.0952.6
by shares tradedBITO2.29272.48.4142.8
by shares tradedAAL2.79169.316.4826.6
Точный SQL-код для каждого числа
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(1000 * dollar_volume_bn / shares_m, 2) AS implied_avg_price,
    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-08 13:30:00' AND window_start < '2026-07-08 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, pct_of_board_leader DESC
Запустите сами

Бумаги MU показали оборот в 32.02 млрд долларов, став лидером по этому показателю и единственным активом, преодолевшим отметку в тридцать миллиардов долларов. Следом расположились SPY (26.49 млрд), NVDA (24.17 млрд) и QQQ (20.9 млрд), а SNDK с показателем 16.82 млрд и TSLA с 11.71 млрд завершили список лидеров по денежному объему. В то же время по количеству проторгованных акций картина иная: трехкратный инверсный ETF на полупроводники SOXS показал объем в 636.5 млн акций при расчетной средней цене $4.67, что характерно для низкоценового инструмента с тройным плечом в день высокой активности в секторе чипов.

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

ЗапросКоличество акций на 30-минутный интервал (ET), основная сессия, с указанием % от пикового интервала дня
Время (ET)Акции (млрд)% макс. сегмента
09:301.9889.9
10:001.3862.9
10:301.3259.9
11:001.1653
11:301.0145.9
12:000.9342.2
12:300.9242
13:000.7534.1
13:300.7634.5
14:000.7734.9
14:300.7534.3
15:000.941.1
15:302.2100
Точный 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
GROUP BY et_time
ORDER BY et_time
Запустите сами

Объём торгов сформировал классическую U-образную кривую: на открытии показатель составил 89.9% от максимального значения за день, после чего снижался в течение утренних часов и достиг минимума на уровне 34.1% в интервале с тринадцати ноль-ноль до тринадцати тридцати по восточному времени. Последние полчаса торгов (пятнадцать тридцать по восточному времени) стали наиболее активным периодом с объёмом 2.2 миллиардов акций, что превысило показатель открытия в 1.98 миллиардов акций, соответствуя стандартной модели обычной торговой сессии.

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

ЗапросПоток опционов: сделки, контракты, доля call-опционов, доля 0DTE к вторнику, топ-контракт
Сделки опц. (млн)Контракты (млн)7 июля (млн контр.)Call (%)0DTE (%)7 июля 0DTE (%)SPY (закр.)Топ-1 (актив)Топ-1 (страйк)Топ-1 (тип)Топ-1 (контр.)Топ-1 (ср. цена)Топ-1 (0DTE)Топ-1 (денежность)
10.4463.2661.1355.438.731.2745.31SPY745C6779810.8751-0.31
Точный 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) = '260708', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
    ) AS jul7_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
    ) AS jul7_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul7_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) = '260708') / sum(size), 1) AS pct_0dte,
    jul7_pct_0dte,
    spy_regular_close,
    top2.1[1] AS top1_und, top2.2[1] AS top1_strike, top2.3[1] AS top1_type, top2.4[1] AS top1_contracts, top2.5[1] AS top1_avg_px, top2.6[1] AS top1_is_0dte,
    round(toFloat64(top2.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
Запустите сами

В консолидированной ленте опционов зафиксировано 10.44 млн сделок и 63.26 млн контрактов, что выше показателей вторника в 61.13 млн, рассчитанных по данным ленты за аналогичный период. На долю call-опционов пришлось 55.4% от общего объема, что указывает на умеренный перевес в сторону покупок call. Контракты 0DTE (с экспирацией в день сделки, 260708) составили 38.7% от общего объема контрактов по сравнению с 31.2% во вторник. Самым активным отдельным контрактом стал SPY 745C с объемом 677981 контрактов по средней цене $0.875. Это контракт с экспирацией в день сделки, который по сути находился «на деньгах» (at the money) относительно цены закрытия SPY на уровне $745.31.

Лента котировок

ЗапросКоличество обновлений NBBO: 8 июля к 7 июля, с разбивкой по тикерам (в миллионах)
8 июля (млн обновл.)Обновления 7 июля (млн)Изменение за день (%)SPY: обновления 8 июля (млн)QQQ: обновления 8 июля (млн)NVDA: обновления 8 июля (млн)TSLA: обновления 8 июля (млн)MU: обновления 8 июля (млн)
530.55492.767.74.936.531.80.720.6
Точный SQL-код для каждого числа
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / countIf(toDate(sip_timestamp) = toDate('2026-07-07')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'SPY') / 1e6, 2) AS jul8_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'QQQ') / 1e6, 2) AS jul8_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'NVDA') / 1e6, 2) AS jul8_nvda_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'TSLA') / 1e6, 2) AS jul8_tsla_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'MU') / 1e6, 2) AS jul8_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
Запустите сами

8 июля лента котировок акций зафиксировала 530.55 млн обновлений NBBO, что на 7.7% больше, чем в предыдущую сессию. По количеству обновлений лидировал QQQ с показателем 6.53 млн, опередив SPY с 4.93 млн. В число лидеров также вошли NVDA (1.8 млн), TSLA (0.72 млн) и MU (0.6 млн).

ЗапросSPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: медианный спред котировок (RTH) в базисных пунктах
ТикерМедианный спред (б.п.)
SPY0.27
QQQ0.71
NVDA1.52
TSLA2.28
AVGO3.63
MU5.66
SNDK12.21
Точный SQL-код для каждого числа
SELECT
    ticker,
    round(quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000), 2) AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA', 'MU', 'SNDK', 'AVGO')
  AND sip_timestamp >= '2026-07-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00'
  AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps ASC
Запустите сами

Среди семи указанных тикеров медианный котируемый спред SPY в основную торговую сессию составил 0.27 б.п., что находится на нижней границе типичных значений для наиболее ликвидного ETF в США. Котируемый спред QQQ составил 0.71 б.п., NVDA — 1.52 б.п. В конце списка оказались бумаги с менее активным котированием: MU с 5.66 б.п. и SNDK с 12.21 б.п.

ЗапросСредний спред котировок SPY (RTH) в контексте последнего месяца
Ср. спред 8 июля (центы)Рейтинг спредаСравнение сессийМин. спред сессии (центы)Макс. спред сессии (центы)Первая сессияОтклоненные котировки
2.20211221.8092.8652026-06-0542783
Точный SQL-код для каждого числа
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-08')), 3) AS jul8_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-08')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-08'))) + 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-09 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)
Запустите сами

Средний котируемый спред SPY в основную сессию составил 2.202 цента, заняв 11 место среди 22 последних сессий. Это средний показатель по уровню сжатия спреда, при этом диапазон за последний месяц варьировался от 1.809 цента (минимум) до 2.865 центов (максимум). Никаких провалов ликвидности или нештатных ситуаций не наблюдалось — для котируемого спреда SPY это была обычная сессия.

ЗапросПоток NBBO опционов: общие обновления к потоку акций, включая долю SPY
Опционы 8 июля (млрд)Соотношение опционы/акцииSPY: опционы 8 июля (млн)
9.6218.1422
Точный SQL-код для каждого числа
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_stock_quote_rows
SELECT
    round(jul8_options_rows / 1e9, 2) AS jul8_options_bn,
    round(jul8_options_rows / jul8_stock_quote_rows, 1) AS options_to_stock_ratio,
    round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00') / 1e6, 0) AS jul8_spy_options_m
Запустите сами

Лента опционов зафиксировала 9.62 млрд обновлений NBBO, что в 18.1 раза превышает объем ленты котировок акций. Только по опционам на SPY в основную торговую сессию прошло 422 млн обновлений.

Ставки: кривая почти не изменилась

ЗапросДоходность казначейских облигаций: 8 июля к 7 июля, основные сроки погашения + спред 2s10s
Точка кривойДоходность 8 июля (%)Изменение сессии (б.п.)
1 month3.67-2
3 month3.871
1 year4.060
2 year4.212
5 year4.314
10 year4.561
30 year5.061
2s10s spread0.35-1
Точный SQL-код для каждого числа
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul8_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-08') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-07') AS p
)
Запустите сами

Пятилетние бумаги стали лидерами движения в ходе сессии с результатом +4 б.п.; доходность двухлетних бумаг выросла на 2 б.п., при этом ни по одному другому сроку погашения изменение не превысило двух базисных пунктов в любую из сторон. В результате спред 2s10s составил 0.35% (изменение на -1 б.п. за сессию), оставаясь в рамках недавнего диапазона. Сдержанная динамика ставок совпала с низкой волатильностью индексов.

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

ЗапросДивиденды, сплиты, отчетность SEC, новостной фон
Экс-дивидендные датыСплитыОбратные сплитыПрямые сплитыОтчет 424B2Отчет Form 4Отчет 8-KВсего отчетовСтатьиИздателиТикер (главные новости)№ главных новостейОтрыв главных новостей
8110152777516337311923MU170
Точный SQL-код для каждого числа
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-08'
    ) AS news,
    (
        SELECT (argMax(t, (n, t)), 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-08'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-08') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS forward_splits,
    (SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_424b2,
    (SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_form4,
    (SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_8k,
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_total,
    news.1 AS news_articles, news.2 AS news_publishers,
    top_news.1 AS top_news_ticker, top_news.2 AS top_news_n, top_news.3 AS top_news_lead_over_next
Запустите сами

Календарь событий был не насыщенным: 81 записей о датах ex-dividend, 1 исполненных форвардных сплитов и 3731 документов, поданных в SEC (включая 775 форм 4 об инсайдерских сделках, 527 проспектов 424B2 и 163 текущих отчетов 8-K). В новостных лентах вышло 192 статей от 3 издателей, при этом MU стал одним из наиболее упоминаемых тикеров в 17 статьях. Значимых корпоративных событий с участием компаний первого эшелона в потоке новостей не было, основной темой рынка стал сам сектор производителей чипов.

Сессия, верифицировано

ЗапросВерификация сессии: первый/последний бар SPY (ET), количество баров, праздничные данные, дата следующего закрытия
Первый бар SPY (ET)Последний бар SPY (ET)Минутные бары SPYБары основной сессииДневные сессииСтроки праздника 8 июляДата следующего закрытияСобытие следующего закрытия
04:0019:59919390102026-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-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-08') AS jul8_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-08 00:00:00' AND window_start < '2026-07-09 00:00:00'
Запустите сами

Сессия прошла в полном объеме с учетом продленных часов торгов: первый бар по SPY зафиксирован в 04:00 ET, последний — в 19:59 ET. В рамках торгового окна было сформировано 390 минутных баров основной сессии и 1 торговых сессий (сокращенный торговый день отсутствовал; в календаре праздничных дней для этой даты нет записей). Следующее запланированное закрытие торгов состоится Labor Day числа 2026-09-07.

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

Все временные метки хранятся в формате UTC; регулярные торговые часы 8 июля 2026 года отфильтрованы как sip_timestamp / window_start в интервале между 2026-07-08 13:30:00 и 2026-07-08 20:00:00, что соответствует периоду с 9:30 до 16:00 по нью-йоркскому времени. Десятичные цены приводятся к формату Float64 перед выполнением любого деления. Именованные панели по тикерам (табло, комплекс чипов, ротация) отсортированы в алфавитном порядке по тикеру, чтобы каждая ссылка в тексте указывала на фиксированную строку; таблицы лидеров (объем, моментальный снимок котировок) отсортированы по значению, и каждое утверждение о позиции в них закодировано как ограничение достоверности для этой позиции. Все сравнения по вторникам на этой странице, доля рыночного охвата (breadth), количество «зеленых» и «красных» чипов, контракты на опционы и доля 0DTE, количество обновлений котировок — всё это рассчитывается заново на основе данных за 7 июля (и 6 июля, если требуется цена закрытия предыдущего дня) в том же блоке запросов и никогда не берется из предыдущих публикаций.

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

Панель рыночного охвата учитывает бумаги, имевшие цену закрытия в регулярные часы в обе сессии и объем торгов не менее одного миллиона долларов в день измерения; количество исключенных бумаг (5284 из 11439) делает видимым исключенный «хвост» выборки. Столбцы времени day_low/day_high в комплексе чипов используют шаблон argMin/argMaxIf(..., (value, timestamp)), что позволяет детерминированно разрешать совпадения. Метки корзин «улыбки объема» (volume-smile) указаны по времени ET (%H:%i) и вычисляются только с помощью toTimeZone в списке SELECT. Панель ленты опционов определяет экспирацию в тот же день через сопоставление подстроки тикера OCC (substring(ticker, length(ticker) - 14, 6)), а не через options_trades.expiration_date (этот столбец неисправен согласно действующему примечанию по предварительной проверке). Символы в KNOWN_AMBIGUOUS_TICKERS исключаются из расчетов лидеров по объему и внимания новостей, поэтому упоминания «наиболее X» относятся только к проверяемым именам. Тикер главных новостей использует детерминированный механизм разрешения совпадений (argMax(t, (n, t))); значение top_news_lead_over_next = 0 означает ничью, поэтому в тексте используется формулировка «среди наиболее упоминаемых». Панель казначейских облигаций объединяет две строки ежедневных снимков данных; отсутствие снимка для любой из дат приводит к нулевому результату, и ограничение row_count удерживает публикацию. Количество котировок акций и опционов представляет собой сканирование всей ленты по дневным разделам; количество по именованным тикерам приводится в миллионах, чтобы соответствовать единицам измерения в столбцах. Медианы спредов используют quantileExact (детерминированный метод); панель скользящего спреда представляет собой среднее значение (avgIf), что и указано в маркировке.

Методология

  • Источник рыночных данных: консолидированная лента, delayed_stocks_minute_aggs для цен и объемов по индексам и отдельным инструментам, cache_stocks_quotes для расчетов NBBO и котируемых спредов, cache_options_quotes и options_trades для ленты опционов.
  • Учет часовых поясов: все сохраненные временные метки указаны в UTC; метки времени по восточному времени (ET) вычисляются с помощью toTimeZone(..., 'America/New_York') только в списках SELECT; в предложениях WHERE используются необработанные литералы UTC.
  • Окно основной торговой сессии: 13:30–20:00 UTC, верифицируется по наблюдаемым минутным барам SPY (панель верификации сессии), а не путем календарных вычислений.
  • Определение спреда: (ask - bid) / midpoint × 10,000 в базисных пунктах по валидным двусторонним котировкам на момент снимка; панель за последний месяц представляет собой среднюю ширину в центах, обозначенную как среднее значение.
  • Сравнение с предыдущей сессией: вычисляется внутри запроса начиная с 7 июля (и 6 июля для сравнения вторника с предыдущим днем), данные никогда не переносятся из предыдущих публикаций.
  • Детерминированные агрегаты: quantileExact, кортежи с ключами argMin/argMax и детерминированный механизм разрешения конфликтов для новостей, обеспечивающий стабильность при повторной генерации.
  • Дата актуальности хранилища: 10 июля 2026 года (T+2 для данного периода); ленты обеих сессий полностью загружены на эту глубину.

Перекрестные ссылки: обзор за 7 июля 2026 года, издержки при торговле опционами, основы спреда bid-ask, опционы 0DTE и относительный объем.

#recap#daily#spy#qqq#semiconductors#market structure