Огляд ринку 7 липня 2026 року
Сектор напівпровідників вплинув на індекс, проте NVDA демонструє ріст. Співвідношення продажів два до одного та найвужчий спред SPY за місяць.
Вівторок, 7 липня 2026 року повністю нівелював зростання, яке забезпелив відкриття ринку в понеділок, — і навіть більше: QQQ закрився на рівні -1.82%, що перевищує втрату прибутку понеділка, на фоні -0.29% у DIA. На внутрішньому ринку переважали продажі у співвідношенні два-до-одного: 4034 ліквідуваних акцій, що падають, проти 2091 акцій, що зростають. Головною подіною дня став обвал у секторі напівпровідників, масштаб якого в кілька разів перевищує розмір індексу, при цьому один із лідерів сектору не брав участі у торгах. Кожне наведене нижче число отримано з запиту до бази даних — розгорніть будь-яку панель, щоб побачити точний SQL-код.
Табло результатів
Кожне порівняння проводиться за останньою хвилинною свічкою регулярної сесії 7 липня та відповідним показником понеділка, 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-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%, а найменше падіння продемонстрував DIA з результатом -0.29%. Розрив між ціною відкриття та динамікою протягом сесії вказує на розбіжність ринку на відкритті: нічний розрив QQQ склав -1.17%, а зміна ціни від відкриття до закриття — -0.65% — основний негативний вплив мав саме розрив; водночас DIA відкрився вгору на 0.47%, але все одно завершив сесію у червоній зоні, продемонструвавши зміну ціни від відкриття до закриття на рівні -0.76%. Лідерство змінюється щосесії з четверга: у четвер лідером був DIA, у понеділок — QQQ, а у вівторок знову DIA.
Чи був цей день незвичним?
Точний 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 липня.
Ширина ринку: на кожну акцію, що зростає, припадає дві, що падають
Точний SQL-код для кожного числа
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
GROUP BY ticker
)
SELECT
countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
count() AS tickers_traded_both_sessions,
count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
/ countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE prior_close > 0 AND day_close > 02091 зросли, 4034 впали, 59 без змін — 33.8% ліквідних інструментів продемонстрували зростання, проте позитивна динаміка понеділка змінилася на протилежну. Фільтр виключає 5276 від 11460 акцій з обсягом торгів менше за один мільйон доларів за два сесії, які враховуються в цьому звіті.
Сектор чипів обвалився — за винятком найбільших гравців
Продажі зосередилися в напівпровідниковій галузі: виробники чипів, постачальники обладнання, компанії у сфері накопичувачів та відповідні кредитні ETF. Нижче наведено дані про кореляцію та масштаб падіння; причини не вказані.
Точний SQL-код для кожного числа
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-07 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-07 00:00:00') AS day_low,
argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS low_bar,
argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York')) AS high_minute_et,
toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerTeradyne (-9.63%) та 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, 3x інверсний semiconductor ETF, зафіксував свій сесійний максимум на рівні 10:42 — ситуація, протилежна ринку. Intel продовжувала падати ще довго після стабілізації інших акцій, досягнувши мінімуму на рівні 15:18. Кредитні інструменти відображають масштаб руху: SOXL -15.15% проти SOXS +15.87%.
Інша сторона ринку
Співвідношення два-до-одного на користь падіння все ще залишає третю частину ринку у зеленій зоні. Що зросло на фоні падіння сектору чипів:
Точний 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%). Це тип переоцінки між сесіями, що зазвичай відбувається там, де проходять премаркетові торги. Дані не пояснюють причин.
Де відбувалися торги
Точний SQL-код для кожного числа
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
/ max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
FROM (
SELECT
'by dollars traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_volume_bn DESC
LIMIT 6
UNION ALL
SELECT
'by shares traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESCMU очолив обсяги торгів у доларах на рівні $41.6 мільярда — через одну сесію після того, як поступився першого місця, він повернув лідерство. За ним слідують SPY ($28.68 мільярда) та QQQ ($26.54 мільярда), а також ще три компанії з сектору чипів — NVDA ($19.95 мільярда), SNDK ($19.73 мільярда) та INTC ($13.82 мільярда), — що доповнюють шістку лідерів. Концентрація обсягів окремих акцій відображається у показнику відносної волатильності.
На ринку акцій SOXS торгувався обсягом 566.3 мільйонів акцій — цей інверсний semiconductor ETF з плечем 3x утримує лідерство за кількістю акцій третю сесію поспіль (понеділок та четвер, згідно з попередніми даними), цього разу в день фактичного падіння його сектору. CPOP демонструє протилежний приклад: 161.3 мільйонів акцій обробили лише на $0.02 мільярда — невеликі обсяги характерні для дешевих акцій. Основа: регулярні години торгів 7 липня; один лістинг з повторюваним символом виключено до підтвердження даних про компанію — її звіти.
Динаміка сесії
Точний SQL-код для кожного числа
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time2 мільярдів акцій протягом першої половини години, мінімум у 0.64 мільярдів на 13:30 та 2.14 мільярдів на 15:30 закритті — типова «усмішка», з найбільшим обсягом на закритті.
Ринок опціонів
Точний 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 мільйонах транзакцій — обсяг на рівні понеділка — при цьому на фоні падіння ринку на колл-опціони припало 55.6% обсягу. Контракти з експірацією в той же день склали 31.2% від загального обсягу (19.08 мільйонів контрактів) — частка 0DTE у звичайному вівторку. Два найбільш активні контракти дня були зосереджені навколо закриття ринку, обидва — з експірацією в той же день та страйками SPY: колл-опціон зі страйком $749 (873438 контрактів за середньою ціною $0.647) завершився на 1.34 поза грошима, а пут-опціон зі страйком $747 (785834 контрактів за ціною $0.88) завершився на 0.66 з іншого боку. Ціна закриття SPY 747.66 опинилася між двома найбільшими ставками дня, і обидва контракти знецінилися.
The quote tape
Under every price on this page sits the quote stream — the National Best Bid and Offer, re-quoted continuously across every listed name, the hardest dataset in this warehouse to come by. It gets measured here every session, ordinary or not.
Точний 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'The equity tape carried 492.76 million NBBO updates on July 7 — 25.7% more than Monday's 391.96 million. More re-quoting, not wider quoting:
Точний 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 tickerAt the morning lows the checked names re-quoted at multiples of their midday pace — MU 3.4x, SanDisk 4.1x, AMD 4.6x — and the bid-ask spread barely moved: MU's median width was 5.02 bps in the pocket against 4.81 midday, NVDA's 1.04 against 1.01, and SPY's did not move at all (0 bps change on a 0.27 bps touch). The two names that paid a real width penalty were AMD (+2.6 bps) and Intel (+0.95) — Intel the one name that kept falling after the pocket — while the leveraged pair actually tightened at the bottom (SOXL -2.59 bps, SOXS -1.49). A liquidity vacuum looks like wide quotes and silence; this was the opposite — a quote storm with the touch pinned. Crossing costs stayed name-dependent all the same: SOXS quoted 19.59 bps wide at the bottom against NVDA's 1.04.
Точний 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
)And the ordinary-check this section runs every session: by update-weighted average quoted spread, July 7 was SPY's tightest session of the trailing month — 1.809 cents, rank 1 of 21, against a month that reached 2.865 cents at its widest. A two-to-one red tape priced at the month's tightest index touch is a fact only the quote stream can settle.
Точний 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_ratioThe options quote stream is larger still, and it is the biggest dataset in this warehouse. July 7 carried 8.69 billion option NBBO updates, 17.6 times the size of the same session's entire stock-quote tape (492.76 million updates). Monday's options tape held 6.49 billion, so the option stream expanded 34% session over session, alongside the equity stream's 25.7%.
Точний 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 > 0SPY's 2026-dated contracts alone took 327.55 million of those updates in regular hours, spread across 9116 listed contracts. That is 66.5% of what the entire equity market quoted the same day, from one underlying. The same-day expiries that carry the 0DTE tape account for 13.61 million of them.
Through the twelve minutes of the morning air pocket, the near-the-money same-day contracts quoted a median $0.01 wide, precisely what they quoted in the midday control ($0.01, a delta of 0). The quote rate across that same pair ran 3x: 191.1 thousand updates at the lows against 64 thousand at lunch. The option touch did what the stock touch did. It held its width while the quoting machinery ran hot. Near-the-money means a strike within $2 of SPY's average price in the same window, and the panel prints both prices (746 in the pocket, 749.08 midday).
Rates: the curve sold off with the growth tape
Точний 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
)Treasuries sold off alongside the growth tape. The 1-year rose 11 basis points to 4.06%, the 10-year 7 to 4.55%, and the 30-year 6 to 5.05% — above the five-percent line. The 2s10s spread held at 0.36 percentage points (1 basis point of change): a mostly parallel move, not a reshaping.
Календар дня
Точний 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_articles79 дивідендних дат екс-дивідендних, виконано 7 сплітів — 5 з них були зворотними сплітами, що створюють фіктивні тризначні «прибутки» на неадаптованій стрічці котирувань, на фоні 2 прогнозів — та з'явився 1 новий лістинг. SEC зафіксувала 2433 подань: 463 Form 4, 173 8-K. Наша стрічка новин містила 215 статей від 3 видавців; найпопулярнішою назвою була NVDA з 17 статтями, що на 4 більше за наступну назву — ту саму NVDA, яка закрилася зростанням попри червоний день у своєму секторі. Стрічка містила 0 статей про CRNX, головного лідера зростання на стрічці — це увага одного джерела, а не світових медіа.
Сесія підтверджена
Точний 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'7 липня була повноцінною сесією, а не раннім закриттям: бари SPY тривали від 04:00 до 19:59 за нью-йоркським часом, з рівно 390 барами у межах регулярного вікна, а таблиця святкових днів містить 0 рядків для цієї дати. Наступне заплановане закриття відбудеться Labor Day, 2026-09-07.
Примітки до даних
- Обсяг у доларах є хвилинним показником — ціна закриття, помножена на обсяг, що сумується за кожну хвилинну свічку в межах регулярних торгових годин.
- Розподіл gap-versus-grind вимірюється від першої свічки кожного активу в межах регулярної сесії (відкриття) відносно останнього ціни закриття попередньої сесії; залишок припадає на період від відкриття до закриття 7 липня.
- Синхронні мінімуми вранці були перевірені на відповідність сусіднім свічкам на момент написання — кожен мінімум визначається за сусідніми хвилинами, а не за одним окремим значенням; жоден не був визнаний аномалією. Якщо екстремальне значення з'являлося більше ніж в одну хвилину, у панелі відображається найперша така свічка (детермінований метод вирішення ніяковостей).
- Один актив з повторюваним символом виключено з таблиць лідерів за обсягом та з блоку новин до завершення перевірки юридичної особи; власний пост містить підтвердження.
- Статистика quoted-spread не включає некоректні котирування (односторонні або перехресні записи NBBO), і кожна панель спреду має окрему колонку для підрахунку видалених значень. "Update-weighted average spread" — це середнє значення котируваної ширини за кожне валідне оновлення NBBO; активні моменти мають більшу вагу; це статистичний показник котирувань, а не вартість окремої угоди.
- Котирування опціонів за 7 липня надійшли після публікації цього посту.
cache_options_quotesмає найбільшу затримку завантаження сховища, тому перша версія містила нульовий результат у місці, де зараз розташовані панелі котирувань опціонів. Дані надійшли, але при повторній генерації нульовий результат зберігся; ця редакція містить 8.69 мільярд оновлень сесії. Стрічка котирувань акцій була повною від початку: останнє оновлення за 7 липня зафіксоване в хвилину ET 1199, з 77.13 мільйонів оновлень у останню регулярну годину (колонки отриманих даних у панелі стрічки котирувань). - Ширина котирувань опціонів вимірюється near the money. Медіана за кожне оновлення по всіх перелічених контрактах за той самий день є складеним показником: контракти deep in-the-money мають ширину в доларах, контракти far out-of-the-money — у центах; також відображається, які контракти змінюють котирування протягом сесії. Порівняння "pocket-versus-midday" обмежується страйками в межах $2 від середньої ціни SPY у кожному вікні, обидві ціни представлені окремими колонками в панелі. Некоректні котирування опціонів (односторонні або перехресні) враховуються в цій панелі, а не видаляються без відома.
- Дані по Treasury за 7 липня були завантажені з затримкою — перша версія містила дані з оголошеною затримкою; тривожний сигнал спрацював 8 липня, коли дані надійшли, і ця редакція містить фактичну криву.
Методологія
- Період охоплює одну торгову сесію (сесія 1, підтверджена на основі спостережуваних барів та календаря вихідних днів — припущення не використовуються). Часові мітки зберігаються в UTC і конвертуються у нью-йоркський час під час виконання запитів. "Close" означає останній хвилинний бар регулярної сесії; зміна дня порівнює 7 липня з 6 липня, що є послідовними торговими сесіями.
- Десяткові стовпці перетворюються на 64-bit float перед арифметикою коефіцієнтів; дати експірації опціонів повторно розбираються з тікера OCC (власний стовпець експірації в таблиці містить помилки). Усі панелі зчитуються одноразово під час підготовки матеріалу через обмежений доступ лише для читання. Стан сховища станом на 8 липня 2026 року.
- Розділ quote-tape було додано в редакції від 8 липня (та сама редакція, що замінила затримку Treasury на landed print), а панелі котирувань опціонів були перезаписані після того, як з'явилися рядки NBBO для опціонів за 7 липня. Генерація є пакетним завданням за дизайном: панель котирувань опціонів SPY сканує кілька сотень мільйонів записів NBBO, тоді як підрахунок tape-size використовує суми рядків партицій дня; саме так таблиця, що містить мільярди рядків за сесію, забезпечує відповідь на запит підрахунку менш ніж за одну секунду.
Кожна панель є результатом збереженого запиту — графік, таблиця та SQL є одним об'єктом. Скопіюйте будь-який із них у термінал Strasmore для власного використання. Попередня сесія: 6 липня.