огляд ринку за тиждень 20 липня 2026
Підсумки першого повного тижня після липневої експірації опціонів: індексне табло, секторальна дисперсія, тижнева ширина та напрямок грошових потоків.
Тиждень 20 липня 2026 року став першим повним тижнем після липневої місячної експірації опціонів і тривав 5 сесій без жодної всередині. Зміна SPY за підсумками тижня (close-over-close) становила -0.59%, а за показником open-to-close відносно попереднього року тижнів він посів 43 місце з 53. Кожне число нижче отримано зі збереженого запиту, а всі вікна прив’язані до конкретних дат, тому повторний запуск SQL повертає ті самі значення.
Тиждень на біржі
Тижневі зміни розраховуються від закриття регулярної сесії п'ятниці 17 липня до закриття п'ятниці 24 липня. Остання колонка містить показники попереднього тижня, тому вони розташовані поруч. Рядки впорядковані за абеткою.
Точний SQL-код для кожного числа
SELECT ticker,
round(argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00'), 2) AS prior_week_close,
round(argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'), 2) AS week_close,
round((argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
/ argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00') - 1) * 100, 2) AS week_change_pct,
round((argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
/ argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-10 13:30:00' AND window_start < '2026-07-10 20:00:00') - 1) * 100, 2) AS prior_week_change_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND ((window_start >= '2026-07-10 13:30:00' AND window_start < '2026-07-10 20:00:00')
OR (window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'))
GROUP BY ticker
ORDER BY tickerЗа тиждень: DIA змінився на -0.38%, IWM — на -0.98%, QQQ — на -1.59%, а SPY — на -0.59%, закрившись на рівні $738.85. Показники попереднього тижня в тому ж абетковому порядку становили -0.95%, -0.63%, -4.17% та -1.55%. Відстань між чотирма індексами — перше, що вимірює табло, і вона не завжди мала.
Тиждень відносно попереднього року
Показник одного тижня мало що означає без розподілу, що стоїть за ним. Ця панель перераховує кожен попередній тиждень за однаковою логікою — від відкриття до закриття в межах регулярної сесії — і ранжує поточний тиждень у цьому ряду.
Точний SQL-код для кожного числа
SELECT round(anyIf(ret, wk = toDate('2026-07-20')), 2) AS week_open_to_close_pct,
arrayCount(x -> x > anyIf(ret, wk = toDate('2026-07-20')), groupArrayIf(ret, wk != toDate('2026-07-20'))) + 1 AS rank_best,
count() AS weeks_compared,
toString(min(wk)) AS first_week,
anyIf(sessions_measured, wk = toDate('2026-07-20')) AS sessions_this_week
FROM (
SELECT toStartOfWeek(toDate(toTimeZone(window_start, 'America/New_York')), 1) AS wk,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions_measured,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2025-07-21 00:00:00')
AND window_start < toDateTime('2026-07-25 00:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY wk
HAVING sessions_measured >= 3
)Виміряний таким чином, SPY показав -1.1% і посів 43 місце з 53 тижнів, починаючи з 2025-07-21. Зверніть увагу на розбіжність у визначенні: цей показник починається з першого відкриття регулярної сесії тижня, тоді як таблиця результатів вище починається із закриття попереднього тижня. Обидва позначені скрізь, де з'являються.
П'ять сесій, одна траєкторія
Точний SQL-код для кожного числа
SELECT toString(d) AS date,
round(c, 2) AS spy_close,
round((c / prev_c - 1) * 100, 2) AS change_pct,
round(shares_m, 1) AS spy_shares_m
FROM (
SELECT d, c, shares_m,
lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS c,
toFloat64(sum(volume)) / 1e6 AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)
)
WHERE d >= '2026-07-20'
ORDER BY dateСесія за сесією, зміна SPY становила -0.15% у понеділок, 0.84% у вівторок, -0.12% у середу, -1.22% у четвер та 0.08% у п'ятницю, завершившись на рівні $738.85 за 40.1 мільйона акцій. Показник понеділка вимірюється відносно закриття 17 липня — сесії, що безпосередньо передувала періоду.
Ширина ринку, сесія за сесією
Рівень індексу — це одне число. Ширина ринку показує, скільки акцій рухалися разом із ним, і саме це число визначає, чи був зелений тиждень широким чи вузьким.
Точний SQL-код для кожного числа
SELECT toString(d) AS date, advancers, decliners, unchanged, measured_names
FROM (
SELECT d,
countIf(c > prev_c) AS advancers,
countIf(c < prev_c) AS decliners,
countIf(c = prev_c) AS unchanged,
count() AS measured_names
FROM (
SELECT d, c, dv,
lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)
WHERE d >= '2026-07-20' AND prev_c > 0 AND dv >= 5000000
GROUP BY d
)
ORDER BY dateУ понеділок зросло 1268 із 3945 вимірюваних найменувань, а впало 2632. До п’ятниці співвідношення становило 2273 зростаючих проти 1635 спадаючих із 3950. Найменування, які не мали ціни закриття по обидва боки сесії, виключаються, тому вимірювана кількість дещо коливається від дня до дня.
Те саме запитання, поставлене один раз за весь тиждень:
Точний SQL-код для кожного числа
SELECT
countIf(cw > cp AND liquid) AS advancers,
countIf(cw < cp AND liquid) AS decliners,
countIf(cw = cp AND liquid) AS unchanged,
countIf(liquid) AS measured_names,
countIf(NOT liquid) AS dropped_by_liquidity_filter,
round(100.0 * countIf(cw > cp AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
SELECT ticker, cp, cw, dv >= 5000000 AS liquid
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING cp > 0 AND cw > 0
)
)Серед 6100 найменувань, які подолали планку обороту в п’ять мільйонів доларів під час основної сесії, 2437 закрилися вище за рівень закриття 17 липня, а 3630 — нижче, що дає частку зростаючих у 40%. Фільтр ліквідності додатково відсіяв 5099 найменувань, які торгувалися нижче цієї планки протягом тижня. Вони враховуються тут, а не просто відкидаються.
Галузеве табло
Одинадцять SPDR-ETF за галузями, ранжовані від найкращого до найгіршого за період із закриття 17 липня по закриття 24 липня.
Точний SQL-код для кожного числа
SELECT sector, week_pct, round(max(week_pct) OVER () - week_pct, 2) AS points_behind_best
FROM (
SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
round((cw / cp - 1) * 100, 2) AS week_pct
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'))
GROUP BY ticker
HAVING cp > 0 AND cw > 0
)
)
ORDER BY week_pct DESCEnergy опинився на вершині таблиці з показником 3.33%. Consumer Discretionary замкнув список із -5.2%, відстаючи на 8.53 відсоткових пункти. Цей розрив — галузева дисперсія тижня, і вона варта окремої уваги: тиждень, коли всі одинадцять секторів перебувають у межах одного пункту один від одного, — це зовсім інший ринок, ніж той, де спред сягає десятків пунктів.
Куди пішли долари
Точний SQL-код для кожного числа
SELECT ticker, week_dollar_bn, round(100 * week_dollar_bn / max(week_dollar_bn) OVER (), 1) AS pct_of_leader
FROM (
SELECT ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS week_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY week_dollar_bn DESC
LIMIT 8
)
ORDER BY week_dollar_bn DESCMU зафіксував 158.1 мільярдів доларів обороту в регулярні години торгів за п’ять сесій, випередивши SPY з 133.9 мільярдами та QQQ з 101.5 мільярдами. Восьмий у списку, AAPL, провів 34.5% від доларів лідера. Показники обороту показують, де ринок витрачав тиждень на суперечки, і це не обов’язково збігається з ціною. Версія цього показника для окремих акцій — відносний обсяг.
Найбільші рухи тижня
Спліти змінюють ціну, не змінюючи вартості: зворотний спліт створює штучний чотиризначний приріст, прямий спліт — штучне падіння такого ж масштабу. Тиждень містив 25 зворотних сплітів та 11 прямих сплітів, і обидві таблиці нижче виключають будь-який інструмент, чий спліт виконався між закриттям 17 липня та закриттям 24 липня — саме той інтервал, за який вимірюється зміна. Обидві також вимагають п'яти мільйонів доларів обороту в основну сесію.
Точний SQL-код для кожного числа
SELECT ticker, board, week_pct, week_dollar_m, sessions_traded,
round(100 * week_dollar_m / max(week_dollar_m) OVER (), 1) AS pct_of_dollar_max
FROM (
SELECT 'gainers' AS board, ticker, round((cw / cp - 1) * 100, 1) AS week_pct,
round(dv / 1e6, 1) AS week_dollar_m, sessions_traded
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-20 13:30:00') AS sessions_traded
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-17' AND execution_date <= '2026-07-24')
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING cp > 0 AND cw > 0 AND dv >= 5000000
)
ORDER BY week_pct DESC
LIMIT 10
UNION ALL
SELECT 'decliners' AS board, ticker, round((cw / cp - 1) * 100, 1) AS week_pct,
round(dv / 1e6, 1) AS week_dollar_m, sessions_traded
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-20 13:30:00') AS sessions_traded
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-17' AND execution_date <= '2026-07-24')
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING cp > 0 AND cw > 0 AND dv >= 5000000
)
ORDER BY week_pct ASC
LIMIT 10
)
ORDER BY board DESC, abs(week_pct) DESCПотрапити до будь-якої таблиці означало справжній рух. Найслабший показаний зростач виріс на 92.3%, а найслабший падач зафіксував -47.8%. На крайнощах STAK змінився на 383.7% при обсязі торгів 251.6 мільйонів доларів, а LBGJ змінився на -98.8% при 47.7 мільйонах. Це падіння близьке до всієї котируваної вартості інструменту, тому таблиця містить власну квитанцію: LBGJ зафіксував бари основної сесії на 5 з п'яти сесій, і жоден спліт не виконався проти нього між двома закриттями, які вимірює таблиця.
Котирований спред, сесія за сесією
Ціна — це головне. Вартість виконання угоди — це котирований спред, виміряний тут на SPY окремо за кожною сесією, безпосередньо з сирих даних NBBO, а не з будь-яких узагальнень.
Точний SQL-код для кожного числа
SELECT toString(toDate(sip_timestamp)) AS date,
round(quantileExactIf(0.5)(
10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2),
bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
round(count() / 1e6, 2) AS quote_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= '2026-07-20 13:30:00'
AND sip_timestamp < '2026-07-24 20:00:00'
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY toDate(sip_timestamp)
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY toDate(sip_timestamp)Медіанний котирований спред SPY становив 0.27 базисних пунктів від середини у понеділок та 0.27 у п'ятницю, на основі 3.89 мільйона та 4.4 мільйона оновлень NBBO. Останні дві колонки — це розкриття, а не висновок: 0 односторонніх котирувань та 1084 перехресних котирувань було враховано в медіані понеділка, а не відкинуто мовчки. Перехресне котирування, де ціна покупки вища за ціну продажу, є звичайним артефактом консолідованої стрічки, зібраної з багатьох майданчиків з наносекундною роздільною здатністю.
Тиждень опціонів після місячного експайру
Липневий місячний експайр припав на п’ятницю перед початком цього тижня, тому кожен контракт, що торгувався в ці п’ять сесій, є його «виживцем». Час експайру задає ритм, за яким торгує натовп того самого дня.
Точний SQL-код для кожного числа
SELECT toString(toDate(sip_timestamp)) AS date,
round(toFloat64(sum(size)) / 1e6, 1) AS contracts_m,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = formatDateTime(toDate(sip_timestamp), '%y%m%d')) / sum(size), 1) AS pct_0dte,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'C') / sum(size), 1) AS pct_call,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260724') / sum(size), 1) AS pct_expiring_jul24
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-20 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
GROUP BY toDate(sip_timestamp)
ORDER BY toDate(sip_timestamp)Обсяг контрактів становив 64 мільйона в понеділок і 71.1 мільйона в п’ятницю. Частка контрактів того самого дня, тобто тих, що експірують у сесію, коли торгуються, склала 40.2% у понеділок проти 49% у п’ятницю, сесію експайру тижня. Колли забрали 53.5% п’ятничного обсягу контрактів. І притягання тієї п’ятниці було помітним уже з відкриття: 15.1% понеділкового обсягу вже перебувало в контрактах із датою експайру в той день.
Ставки за тиждень
Точний SQL-код для кожного числа
SELECT toString(date) AS date,
round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp,
round((toFloat64(yield_10_year) - (SELECT toFloat64(any(yield_10_year)) FROM global_markets.treasury_yields WHERE date = '2026-07-17')) * 100) AS chg_10y_from_prior_close_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-17' AND date <= '2026-07-24'
ORDER BY dateВиміряно від позначки 17 липня: десятирічна ставка змінилася на 16 базисних пунктів до 4.71% за останнім наявним закриттям, дворічна — на рівні 4.37%, а тридцятирічна — 5.17%. Спред дворічних проти десятирічних облігацій завершив серію на позначці 34 базисних пунктів. Файл Казначейства відстає від стрічки приблизно на одну сесію, тому ця панель містить 5 позначок, кожна з якої має дату в таблиці.
Шорти: щоденні файли
FINRA публікує щоденний файл обсягу коротких продажів. Обсяг шортів — це валовий денний потік, а не позиція, і ці файли іноді надходять урізаними, тому спочатку вимірюють покриття, перш ніж з них виводять будь-яке співвідношення.
Точний SQL-код для кожного числа
SELECT date, tickers_on_file, short_shares_bn,
round(100.0 * tickers_on_file / max(tickers_on_file) OVER (), 1) AS pct_of_fullest_file
FROM (
SELECT toString(date) AS date,
uniqExact(ticker) AS tickers_on_file,
round(sum(short_shares) / 1e9, 2) AS short_shares_bn
FROM (
SELECT date, ticker, max(short_volume) AS short_shares
FROM global_markets.stocks_short_volume
WHERE date >= '2026-07-20' AND date <= '2026-07-24'
GROUP BY date, ticker
)
GROUP BY date
)
ORDER BY date5 щоденних файлів є за тиждень. Перший містить 15098 тікерів і 4.71 мільярдів позначених як шорт акцій; останній містить 15062 тікерів, або 99.7% від кількості тікерів найповнішого файлу. Будь-яке твердження про обсяг шортів за окремим тікером, отримане з файлу, який значно поступається сусіднім, залишається неперевіреним, доки цей файл не буде завантажено повторно.
Календар за тижнем
Точний SQL-код для кожного числа
SELECT toString(filing_date) AS date,
count() AS filings,
countIf(form_type = '4') AS form4,
countIf(form_type = '8-K') AS form8k,
countIf(form_type = '424B2') AS f424b2
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24'
GROUP BY filing_date
ORDER BY dateПерша сесія у файлі мала 3012 подань, 632 з яких — інсайдерські звіти Form 4, а 166 — 8-K. Остання сесія мала 3814 подань, з них 644 Form 4 та 223 8-K. 5 сесій тижня мають щоденний індекс EDGAR у файлі; цей індекс надходить за власним графіком, який іноді відстає від стрічки.
Точний SQL-код для кожного числа
SELECT
(SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24') AS filings_week,
(SELECT uniqExact(filing_date) FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24') AS filing_days_on_file,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-20' AND ex_dividend_date <= '2026-07-24') AS ex_dividends_week,
(SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-20' AND ex_dividend_date <= '2026-07-24') AS household_ex_dividends_week,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-20' AND execution_date <= '2026-07-24') AS reverse_splits_week,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-20' AND execution_date <= '2026-07-24') AS forward_splits_week,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= '2026-07-20' AND listing_date <= '2026-07-24') AS listings_week,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-20 04:00:00' AND published_utc < '2026-07-25 04:00:00') AS news_week,
(SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-20 04:00:00' AND published_utc < '2026-07-25 04:00:00') AS news_publishers_weekРешта документації тижня: 17106 подань SEC за 5 індексованих днів, 592 записів ex-dividend, 1 з яких — від десяти відомих компаній, які перевіряє ця панель, 25 зворотних та 11 прямих сплітів, 4 нових лістингів та 1704 статей від 2 видавців. Остання пара вимірює увагу одного джерела, а не світових медіа.
Підтверджені сесії
Точний SQL-код для кожного числа
WITH spy AS (
SELECT d, c, lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS p
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)
)
SELECT
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions_in_week,
toString(min(toDate(toTimeZone(window_start, 'America/New_York')))) AS first_session,
toString(max(toDate(toTimeZone(window_start, 'America/New_York')))) AS last_session,
count() AS regular_bars_in_week,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-20' AND date <= '2026-07-24') AS holiday_rows_in_week,
(SELECT countIf(c > p) FROM spy WHERE d >= '2026-07-20') AS up_sessions,
(SELECT countIf(c < p) FROM spy WHERE d >= '2026-07-20') AS down_sessions,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-24' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-24' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 11995 сесій, 2026-07-20 по 2026-07-24, з 0 святковими рядками десь у вікні. SPY надрукував 1950 хвилинних барів регулярної сесії в межах цих сесій. 2 сесій закрилися вище попереднього закриття, а 3 — нижче. Наступне заплановане закриття — Labor Day о 2026-09-07.
На черзі
Наступного тижня, згідно з нашими таблицями:
Точний SQL-код для кожного числа
SELECT
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-27' AND date <= '2026-07-31' AND status != 'open') AS closures_next_week,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-27' AND ex_dividend_date <= '2026-07-31') AS ex_dividends_next_week,
(SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-27' AND ex_dividend_date <= '2026-07-31') AS household_ex_div_next_week,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-27' AND execution_date <= '2026-07-31') AS splits_next_week,
(SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) FROM global_markets.options_trades WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00') AS jul31_expiry_pct_of_friday_volume,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-24') AS latest_short_interest_settlementСвятковий календар показує 0 закриттів наступного тижня. 368 дат екс-дивідендів припадають на цей період, 0 з них — із набору домогосподарств, разом із 15 запланованими сплітами. З обсягу опціонів п’ятниці 14.2% вже перебували в контрактах, що закінчуються наступної п’ятниці. Найновіша дата розрахунку за короткими позиціями у файлі — 2026-07-15; цей файл публікується із затримкою, достатньою для власного пояснення.
FAQ
Як поводився фондовий ринок протягом тижня 20 липня 2026 року?
SPY змінився -0.59% закриття до закриття з 17 по 24 липня, QQQ — на -1.59%, DIA — на -0.38%, а IWM — на -0.98%. Серед ліквідних назв 2437 зросло, а 3630 впало.
Який сектор лідирував на тижні 20 липня 2026 року?
Energy, на рівні 3.33%. Найслабшим з одинадцяти секторних SPDR ETF був Consumer Discretionary на рівні -5.2%, що на 8.53 відсоткових пунктів відставав.
Скільки торгових сесій було на тижні 20 липня 2026 року?
5, що тривали з 2026-07-20 по 2026-07-24, з 0 святковими рядками у вікні. Наступне заплановане закриття — Labor Day.
Який тікер мав найбільший обсяг торгів у доларах на тижні 20 липня 2026 року?
MU, з 158.1 мільярдами доларів обороту в регулярні години торгів, випереджаючи SPY з 133.9 мільярдами.
Примітки до даних
Усі збережені мітки часу вказано в UTC; звичайна торгова сесія триває 13:30-20:00 UTC, а межі тижня пролягають від закриття регулярної сесії 17 липня до закриття 24 липня. Кожна панель порівняння «закриття до закриття» тут зчитує останню хвилинну свічку регулярної сесії з кожного боку порівняння, тому ціна, сформована в позарегулярні години, ніколи не може встановити тижневе закриття. Рейтинг за останній рік використовує тижневі дохідності «відкриття–закриття», тому він не збігатиметься з таблом порівняння «закриття до закриття»; обидва визначення позначено там, де вони з’являються. Тижнева ширина ринку та дошки руху застосовують фільтр за обсягом торгів у регулярні години на суму п’ять мільйонів доларів, а ширина публікує кількість найменувань, відсіяних цим фільтром. Дошки руху виключають будь-яке найменування, спліт якого відбувся після закриття 17 липня і до 24 липня включно — тобто саме за той проміжок, за який вимірюється зміна; це охоплює як спліт, датований проміжними вихідними, так і спліт, датований торговою сесією. Вони не виключають кредитні та інверсні ETF, які можуть домінувати на дошці в напрямлений тиждень. Нижня частина дошки падіння може наближатися до повної втрати ринкової вартості за тиждень, і ця дошка публікує, у скількох із п’яти сесій було зафіксовано кожне найменування. Панель спреду SPY враховує односторонні та перехресні котирування, а не відкидає їх мовчки, а медіана обчислюється за рештою дійсних котирувань. Файл Міністерства фінансів відстає від стрічки приблизно на одну сесію, а щоденний індекс EDGAR публікується за власним графіком, тому панелі ставок і подань звітують, скільки днів вони фактично охоплюють. Жоден індекс імпліцитної волатильності тут не з’являється: ці ряди не ліцензовані для цього сховища, тому волатильність зчитується зі стрічки через діапазони, частку опціонів з тією ж датою експірації та поведінку котирувань.
Методологія
- Джерело ринкових даних: консолідована стрічка.
delayed_stocks_minute_aggsдля цін та обсягів,cache_stocks_quotesдля панелі NBBO,options_tradesдля опціонного тижня. - Закриття: останній хвилинний бар регулярної сесії, ніколи не припускається друк о 16:00 і не використовуються дані після закриття.
- Сесії: верифікуються за таблицею святкових днів та спостережуваними барами, ніколи не припускаються з календаря.
- Обробка часових поясів: речення WHERE використовують сирі літерали UTC, а
toTimeZoneз'являється лише в списках SELECT для позначок ET. - Десяткові знаки: стовпці ціни, розміру та обсягу приводяться до типу Float64 перед будь-яким діленням або множенням.
- Детерміновані агрегати: точні квантилі всюди, а кожне твердження про порядок або знак у тексті закодоване як гранична перевірка.
- Дата сховища: 26 липня 2026 року.
Перехресні посилання: попередній випуск цього щотижневого огляду, що таке спред між ціною купівлі та продажу, коли закінчуються опціони, короткий інтерес проти короткого обсягу та спред дворічних та десятирічних облігацій.
Кожен запит вище виконується без змін на терміналі Strasmore, якщо ви хочете переналаштувати вікно на інший тиждень.