market recap linggo ng Hulyo 20 2026
Ang linggo pagkatapos ng July options expiration: index scoreboard, sector dispersion, weekly breadth, at kung saan napunta ang pera sa tape.
Ang linggo ng Hulyo 20, 2026 ay ang unang buong linggo pagkatapos ng monthly options expiration ng Hulyo, at tumakbo ito ng 5 na sesyon na walang pagsasara sa loob nito. Ang close-over-close na pagbabago ng SPY sa linggo ay umabot sa -0.59%, at kung susukatin ang open-to-close laban sa trailing na taon ng mga linggo, ito ay nag-rank ng 43 sa 53. Ang bawat numero sa ibaba ay binabasa mula sa isang stored query, at ang bawat window ay naka-pin sa mga tiyak na petsa, kaya ang muling pagpapatakbo ng SQL ay magbabalik ng parehong mga figure na ito.
Ang linggo sa board
Ang mga pagbabago kada linggo ay mula sa regular na pagsasara ng Biyernes Hulyo 17 hanggang sa Biyernes Hulyo 24. Ang huling kolum ay naglalaman ng linggo bago nito, kaya magkatabi ang dalawa. Ang mga hilera ay naka-alpabeto.
Ang eksaktong SQL sa likod ng bawat numero
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 tickerSa linggo: Ang DIA ay lumipat ng -0.38%, IWM ng -0.98%, QQQ ng -1.59%, at SPY ng -0.59% patungo sa $738.85 na pagsasara. Ang mga pagbasa noong nakaraang linggo, sa parehong pagkakasunod-sunod na alpabeto, ay -0.95%, -0.63%, -4.17%, at -1.55%. Kung gaano kalayo ang pagitan ng apat na index ay ang unang sinusukat ng isang scoreboard, at hindi ito laging maliit.
Ang linggo laban sa nakaraang taon
Walang saysay ang bilang ng isang linggo kung wala ang distribusyon sa likod nito. Muling kinukuwenta ng panel na ito ang bawat nakaraang linggo gamit ang parehong lohika, mula bukas hanggang sara sa regular na sesyon, at nirarangguhan ang linggong ito sa loob nito.
Ang eksaktong SQL sa likod ng bawat numero
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
)Sa ganoong sukat, nagbalik ang SPY ng -1.1% at nagranggo ng 43 sa 53 na linggo pabalik sa 2025-07-21. Pansinin ang agwat sa depinisyon: ang bilang na ito ay nagsisimula sa unang bukas ng regular na sesyon ng linggo, samantalang ang iskorboard sa itaas ay nagsisimula sa sara ng nakaraang linggo. Pareho itong may label saanman lumitaw.
Limang sesyon, iisang arko
Ang eksaktong SQL sa likod ng bawat numero
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 dateBawat sesyon, ang pagbabago ng SPY ay -0.15% noong Lunes, 0.84% noong Martes, -0.12% noong Miyerkules, -1.22% noong Huwebes, at 0.08% noong Biyernes, na nagsara sa $738.85 sa 40.1 milyong bahagi. Ang bilang ng Lunes ay sinusukat laban sa pagsasara ng Hulyo 17, ang sesyon na kaagad bago ang panahon.
Lawak, session bawat session
Ang antas ng index ay isang numero lamang. Sinusukat ng lawak kung ilang stock ang sumabay dito, at ito ang numerong nagpapasya kung ang isang berdeng linggo ay malawak o makitid.
Ang eksaktong SQL sa likod ng bawat numero
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 dateNoong Lunes, 1268 sa 3945 ng mga sinusukat na pangalan ay tumaas at 2632 ang bumagsak. Pagsapit ng Biyernes, ang hati ay 2273 pataas laban sa 1635 pababa, mula sa 3950. Ang mga pangalang walang pagsara sa magkabilang panig ng isang session ay hindi kasama, kaya naman ang bilang ng sinusukat ay bahagyang nag-iiba araw-araw.
Ang parehong tanong ay itinanong nang isang beses, sa buong linggo:
Ang eksaktong SQL sa likod ng bawat numero
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
)
)Sa 6100 na mga pangalang pumasa sa limang-milyong-dolyar na bar ng turnover sa regular na oras, 2437 ay nagsara sa itaas ng kanilang pagsara noong Hulyo 17 at 3630 ay nagsara sa ibaba, isang bahagi ng mga sumulong na 40%. Ang filter ng likwididad ay nagtabi ng karagdagang 5099 na mga pangalang nakipagkalakal sa ilalim ng bar na iyon sa loob ng linggo. Sila ay binibilang dito sa halip na tahimik na itapon.
Ang scoreboard ng sektor
Ang labing-isang SPDR sector ETF, mula sa pagsasara ng Hulyo 17 hanggang sa pagsasara ng Hulyo 24, niraranggo mula sa pinakamahusay hanggang sa pinakamasama.
Ang eksaktong SQL sa likod ng bawat numero
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 ang nanguna sa board sa 3.33%. Consumer Discretionary ang nasa ilalim sa -5.2%, 8.53 percentage points ang layo nito. Ang agwat na iyon ang dispersion ng sektor para sa linggo, at ito ay may sariling kahulugan: isang linggo kung saan ang lahat ng labing-isa ay nasa loob ng isang punto ng bawat isa ay isang napaka-ibang merkado kumpara sa isang linggo kung saan ang spread ay umaabot sa double digits.
Saan napunta ang mga dolyar
Ang eksaktong SQL sa likod ng bawat numero
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 ay nag-print ng 158.1 bilyong dolyar na regular-hours turnover sa loob ng limang sesyon, mas mataas kaysa sa SPY na nasa 133.9 bilyon at QQQ na nasa 101.5 bilyon. Ikawalo sa board, AAPL, ay nakipagkalakalan ng 34.5% ng mga dolyar ng lider. Ang turnover ay nagtatala kung saan ginugol ng merkado ang linggo nito sa pagtatalo, at hindi ito kailangang sumang-ayon sa presyo. Ang per-name na bersyon ng panukat na ito ay relative volume.
Ang pinakamalaking kumilos ngayong linggo
Ang mga split ay gumagalaw sa print nang hindi ginagalaw ang halaga: ang isang reverse split ay gumagawa ng pekeng apat-na-digit na pagtaas, ang isang forward split ay isang pekeng pagbagsak na may parehong laki. Ang linggong ito ay may dalang 25 mga reverse split at 11 na forward split, at ang parehong talahanayan sa ibaba ay hindi kasama ang anumang pangalan na ang split ay naisakatuparan sa pagitan ng Hulyo 17 na pagsasara at Hulyo 24 na pagsasara, ang eksaktong agwat kung saan sinusukat ang pagbabago. Pareho rin silang nangangailangan ng limang milyong dolyar na turnover sa regular na oras.
Ang eksaktong SQL sa likod ng bawat numero
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) DESCAng makapasok sa alinmang talahanayan ay nangangailangan ng tunay na paggalaw. Ang pinakamahinang tumaas na ipinakita ay tumaas ng 92.3%, at ang pinakamahinang bumagsak ay nag-print ng -47.8%. Sa mga sukdulan, ang STAK ay kumilos ng 383.7% sa 251.6 milyong dolyar na na-trade, at ang LBGJ ay kumilos ng -98.8% sa 47.7 milyon. Ang pagbaba na iyon ay malapit sa buong siniping halaga ng pangalan, kaya ang talahanayan ay may dalang sariling resibo: ang LBGJ ay nag-print ng mga regular-oras na bar sa 5 ng limang sesyon, at walang split na naisakatuparan laban dito sa pagitan ng dalawang pagsasara na sinusukat ng talahanayan.
Ang quoted spread, session bawat session
Ang presyo ang pangunahing pokus. Ang gastos sa pagpapatupad ng trade ay ang quoted spread, na sinusukat dito sa SPY isang session sa bawat pagkakataon, diretso mula sa raw NBBO tape sa halip na mula sa anumang buod.
Ang eksaktong SQL sa likod ng bawat numero
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)Ang median quoted spread ng SPY ay umabot ng 0.27 basis points ng mid noong Lunes at 0.27 noong Biyernes, sa 3.89 milyon at 4.4 milyong NBBO updates. Ang huling dalawang column ay ang pagsisiwalat sa halip na ang natuklasan: 0 one-sided quotes at 1084 crossed quotes ang binilang mula sa median ng Lunes sa halip na tahimik na ibinagsak. Ang crossed quote, bid na mas mataas sa ask, ay isang ordinaryong artifact ng isang consolidated feed na pinagdugtong mula sa maraming venues sa nanosecond resolution.
Ang linggo ng opsyon pagkatapos ng buwanang expiration
Ang buwanang expiration ng Hulyo ay bumagsak noong Biyernes bago magsimula ang linggong ito, kaya bawat kontratang nag-trade sa limang sesyong ito ay isang nakaligtas dito. Ang timing ng expiration ang nagtatakda ng ritmo na ginagamit ng parehong-araw na mga mangangalakal.
Ang eksaktong SQL sa likod ng bawat numero
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)Ang dami ng kontrata ay umabot ng 64 milyon noong Lunes at 71.1 milyon noong Biyernes. Ang bahagi ng parehong araw, ibig sabihin ang mga kontratang nag-e-expire sa sesyon kung saan sila nag-trade, ay nasa 40.2% noong Lunes laban sa 49% noong Biyernes, ang sesyon ng expiration ng linggo. Ang mga call ay kumuha ng 53.5% ng dami ng kontrata noong Biyernes. At ang hatak ng Biyernes na iyon ay nakita na mula sa pambungad na sesyon: 15.1% ng dami ng Lunes ay nasa mga kontratang nakatakdang mag-expire rito.
Mga rate sa buong linggo
Ang eksaktong SQL sa likod ng bawat numero
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 dateSinusukat mula sa print noong Hulyo 17, ang ten-year ay lumipat ng 16 basis points patungong 4.71% sa huling print na nasa file, habang ang two-year ay nasa 4.37% at ang thirty-year ay nasa 5.17%. Ang two-to-ten-year spread ay nagtapos ang serye sa 34 basis points. Ang file ng Treasury ay halos isang sesyon ang agwat sa tape, kaya ang panel na ito ay may dalang 5 prints, bawat isa ay may petsa sa talahanayan.
Ang shorts: ang araw-araw na files
Nag-publish ang FINRA ng araw-araw na file ng short-sale volume. Ang short volume ay isang gross daily flow, hindi isang position, at minsan pumapasok ang mga file na ito na truncated, kaya sinusukat muna ang coverage bago kumuha ng anumang ratio mula sa kanila.
Ang eksaktong SQL sa likod ng bawat numero
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 araw-araw na files ang nasa kamay para sa linggong ito. Ang una ay may 15098 tickers at 4.71 bilyong shares na minarkahang short; ang huli ay may 15062 tickers, o 99.7% ng bilang ng ticker ng pinakamalaking file. Anumang claim ng short-volume bawat pangalan na galing sa isang file na mas mababa kaysa sa mga katabi nito ay mananatiling hindi ma-verify hanggang sa ma-refile ang file na iyon.
Ang kalendaryo sa likod ng linggo
Ang eksaktong SQL sa likod ng bawat numero
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 dateAng unang sesyon na nasa tala ay may dalang 3012 na pagsusumite, 632 sa mga ito ay insider Form 4 na ulat at 166 sa mga ito ay 8-K. Ang huli ay may dalang 3814, na may 644 na Form 4 at 223 na 8-K. 5 ng mga sesyon ng linggo ay may EDGAR daily index na nasa tala; ang index na iyon ay dumarating sa sarili nitong iskedyul, na paminsan-minsan ay nahuhuli sa tape.
Ang eksaktong SQL sa likod ng bawat numero
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_weekAng natitirang papeles ng linggo: 17106 na pagsusumite ng SEC sa 5 na araw na may index, 592 na ex-dividend na tala, 1 sa mga ito ay mula sa sampung pangalan ng sambahayan na sinusuri ng panel na ito, 25 na reverse at 11 na forward splits, 4 na bagong listahan, at 1704 na artikulo mula sa 2 na publisher. Ang huling pares na iyon ay sumusukat sa atensyon ng isang feed, hindi sa media ng mundo.
Ang mga sesyon, beripikado
Ang eksaktong SQL sa likod ng bawat numero
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 na sesyon, 2026-07-20 hanggang 2026-07-24, na may 0 holiday row sa kahit saang bahagi ng window. Nag-print ang SPY ng 1950 regular-session minute bars sa mga ito. 2 na sesyon ang nagsara sa itaas ng naunang pagsasara at 3 ang nagsara sa ibaba. Ang susunod na nakatakdang pagsasara ay Labor Day sa 2026-09-07.
Naka-iskedyul
Sa susunod na linggo, basahin mula sa aming sariling mga talahanayan:
Ang eksaktong SQL sa likod ng bawat numero
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_settlementAng holiday table ay nagpapakita ng 0 na pagsasara sa susunod na linggo. 368 na ex-dividend records ang nasa loob nito, 0 mula sa household set, kasama ang 15 na naka-iskedyul na splits. Sa volume ng options noong Biyernes, 14.2% ay nasa kontratang mag-e-expire sa susunod na Biyernes. Ang pinakabagong settlement date ng short-interest na nasa file ay 2026-07-15, isang file na inilalathala na may sapat na lag para magkaroon ng sariling paliwanag nito.
FAQ
Kumusta ang stock market noong linggo ng Hulyo 20, 2026?
Ang SPY ay nagbago ng -0.59% sa close-over-close mula Hulyo 17 hanggang Hulyo 24, kasama ang QQQ sa -1.59%, DIA sa -0.38%, at IWM sa -0.98%. Sa mga liquid na pangalan, tumaas ang 2437 at bumagsak ang 3630.
Aling sektor ang nanguna noong linggo ng Hulyo 20, 2026?
Energy, sa 3.33%. Ang pinakamahina sa labing-isang SPDR sector ETF ay Consumer Discretionary sa -5.2%, 8.53 percentage points ang layo.
Ilang trading session ang nasa linggo ng Hulyo 20, 2026?
5, mula 2026-07-20 hanggang 2026-07-24, na may 0 holiday rows sa window. Ang susunod na nakatakdang pagsasara ay Labor Day.
Aling ticker ang may pinakamataas na dollar trading volume noong linggo ng Hulyo 20, 2026?
MU, sa 158.1 bilyong dolyar ng regular-hours turnover, nauuna sa SPY sa 133.9 bilyon.
Mga tala sa datos
Lahat ng nakaimbak na timestamp ay nasa UTC; ang regular na oras ay 13:30-20:00 UTC bawat sesyon, at ang mga hangganan ng linggo ay mula sa pagsasara ng regular na oras noong Hulyo 17 hanggang sa Hulyo 24. Bawat panel ng close-over-close dito ay binabasa ang huling minutong bar ng regular na oras sa bawat panig ng paghahambing, kaya ang isang print sa extended-hours ay hindi kailanman makakapagtakda ng lingguhang pagsasara. Ang trailing-year rank ay gumagamit ng open-to-close na lingguhang returns, kaya hindi ito tutugma sa scoreboard ng close-over-close; parehong depinisyon ay may label kung saan lumilitaw ang mga ito. Ang lingguhang breadth at ang mga mover board ay naglalapat ng filter na limang milyong dolyar na turnover sa regular na oras, at inilalathala ng breadth ang bilang ng mga pangalan na itinabi ng filter na iyon. Ang mga mover board ay hindi kasama ang anumang pangalan na ang split ay naisakatuparan pagkatapos ng pagsasara noong Hulyo 17 at hanggang sa Hulyo 24, ang eksaktong agwat kung saan sinusukat ang pagbabago, na sumasalo sa isang split na nakatatak sa intervening weekend pati na rin sa isang nakatatak sa isang sesyon; hindi nila isinasama ang leveraged at inverse ETFs, na maaaring mangibabaw sa isang board sa isang directional week. Ang ilalim ng decliner board ay maaaring malapit sa kabuuang pagkawala ng quoted value para sa linggo, at inilalathala ng board na iyon kung ilan sa limang sesyon ang bawat pangalan ay nag-print. Ang SPY spread panel ay binibilang ang one-sided at crossed quotes sa halip na tahimik na ibagsak ang mga ito, at ang median ay kinukuha sa natitirang valid quotes. Ang file ng Treasury ay tumatakbo nang halos isang sesyon sa likod ng tape at ang araw-araw na index ng EDGAR ay dumarating sa sarili nitong iskedyul, kaya ang mga panel ng rates at filings ay nag-uulat kung ilang araw ang aktuwal nilang hawak. Walang implied-volatility index na lumilitaw dito: ang mga seryeng iyon ay hindi lisensyado sa warehouse na ito, kaya ang volatility ay binabasa mula sa tape sa pamamagitan ng mga range, same-day options share, at quote behavior.
Pamamaraan
- Pinagmulan ng datos ng pamilihan: consolidated tape.
delayed_stocks_minute_aggspara sa mga presyo at volume,cache_stocks_quotespara sa NBBO panel,options_tradespara sa options week. - Pagsasara: ang huling regular-session minute bar ng sesyon, hindi kailanman isang assumed 16:00 print at hindi kailanman isang extended-hours print.
- Mga sesyon: na-verify mula sa holiday table kasama ang observed bars, hindi kailanman assumed mula sa kalendaryo.
- Pamamahala ng time zone: ang WHERE clauses ay gumagamit ng raw UTC literals, at
toTimeZoneay lumalabas lamang sa SELECT lists para sa ET labels. - Mga desimal: ang price, size, at volume columns ay naka-cast sa Float64 bago ang anumang division o product.
- Deterministic aggregates: exact quantiles sa kabuuan, at bawat ordering o sign claim sa prose ay naka-encode bilang sanity bound.
- Warehouse as-of date: July 26, 2026.
Cross-links: ang nakaraang edisyon ng weekly series na ito, kung ano ang bid-ask spread, kung kailan nag-e-expire ang options, short interest versus short volume, at ang two-to-ten-year spread.
Bawat query sa itaas ay tumatakbo nang walang pagbabago sa Strasmore terminal kung gusto mong i-repoint ang isang window sa ibang linggo.