Huling linggo ng Hunyo ay isang apat na sesyon na linggo: ang market ay nag-trade mula Lunes, Hunyo 29 hanggang Huwebes, Hulyo 2, at pagkatapos ay nagsara noong Biyernes, Hulyo 3 para sa Araw ng Kalayaan — ang Hulyo 4 ay pumatak sa Sabado, kaya ang holiday ay na-observe sa Biyernes bago nito. Ang mga resibo para sa pagkakasara na iyon, at para sa lahat ng iba pa rito, ay nasa mga panel. Ang pinaka-kapansin-pansing sinusukat na katotohanan ng linggo ay nasa volume table: isang memory-chip maker ang nag-pasok ng $190.2 billion sa tape sa loob ng apat na araw — kalahating muli kaysa sa SPY mismo. Ang bawat numero sa pahinang ito ay resulta ng isang nakaimbak na query; palawakin ang alinmang panel para sa eksaktong SQL.
Ang linggo sa scoreboard
Na-recover ba ng tape ang pagbagsak ng nakaraang linggo, o pinatagal pa ito? Sinasabi ng scoreboard: na-recover — kinakalkula ng panel na ito ang lingguhan na pagbabago ng bawat index ETF at, bilang paghahambing, ang linggo bago nito — parehong panig mula sa parehong query.
Ang eksaktong SQL sa likod ng bawat numero
SELECT ticker,
round(argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-26') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS prior_friday_close,
round(argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-29') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS week_close,
round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-29') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)
/ argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-26') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS week_change_pct,
round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-26') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)
/ argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-18') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS prior_week_change_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= toDateTime('2026-06-15 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')
GROUP BY ticker
ORDER BY tickerNatapos ng SPY ang linggo sa $744.8, tumaas ng 2.2% mula sa nakaraang Biyernes — kasunod ng -2.3% na linggo bago nito. Tumaas ang QQQ ng 1% pagkatapos ng -4.6% na nakaraang linggo, tumubo ang DIA ng 2%, at nagsara ang IWM sa 297.53 — 0% sa linggo, flat habang tumaas ang mga large-cap index.
Ang linggo laban sa nakaraang taon
Ang eksaktong SQL sa likod ng bawat numero
SELECT round(anyIf(ret, wk = toDate('2026-06-29')), 2) AS week_2026_pct,
arrayCount(x -> x > anyIf(ret, wk = toDate('2026-06-29')), groupArrayIf(ret, wk != toDate('2026-06-29'))) + 1 AS rank_best,
count() AS weeks_compared,
toString(min(wk)) AS first_week,
anyIf(sessions, wk = toDate('2026-06-29')) 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,
(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-06-29 00:00:00')
AND window_start < toDateTime('2026-07-03 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 >= 3
)Sinukat open-to-close sa loob ng linggo — unang regular-hours bar ng Lunes hanggang huli ng Huwebes, medyo magibang lente mula sa scoreboard na batay sa close ng Biyernes sa itaas, at nakasaad iyon sa resibo — ang linggo ng SPY ay nasa 14 sa 53 nakaraang linggo (antas 1 = pinakamahusay): nasa gitna ng pangkat, sa isang nakaraang taon na may kasamang pagbaba at pagbangon. Ang mga linggo na may kulang sa tatlong sesyon ay hindi kasama dahil sa session guard; ang linggong ito ay may 4. Ang historical context ay sumusukat ayon sa window — ang mga recap ng buwan, quarter, at kalahating taon ay inaantas ang kanilang mga panahon laban sa bawat taon ng minute tape.
Apat na sesyon, saka holiday
Ang isang limang-araw na trading week ay isang assumption, hindi isang katotohanan — ang week na ito ay may apat na sesyon. Sinusuri ng receipt panel ang closure mula sa tape mismo: zero SPY bars ang na-print noong July 3 laban sa 1560 regular-session bars sa apat na traded days.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
(SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-29 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')) AS sessions_in_week,
(SELECT countIf((toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-29 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')) AS regular_bars_week,
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-07-03 00:00:00') AND window_start < toDateTime('2026-07-04 00:00:00')) AS jul3_spy_barsAng eksaktong SQL sa likod ng bawat numero
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS spy_close,
round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / any(prev) - 1) * 100, 1) AS change_pct,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
INNER JOIN (
SELECT d, lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-26 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')
GROUP BY d
)
) AS p ON toDate(toTimeZone(window_start, 'America/New_York')) = p.d
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-29 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')
GROUP BY et_date
ORDER BY et_dateAng lahat ng apat na sesyon ay tumakbo ng buong regular schedule — ang 1560 regular bars ay katumbas ng eksaktong apat na 390-minute na sesyon. Ang week ay nagsara nang essentially flat (-0.1%) noong 2026-07-02, papunta sa holiday — ang mga gain ng week ay nakuha sa unang tatlong sesyon nito.
Saklaw: gaano karami sa merkado ang tumaas
Ang pag-akyat ng isang index ay maaaring magtakip ng pagbagsak ng merkado. Binibilang ng panel na ito ang bawat ticker na may close sa magkabilang panig ng linggo, kung saan ang hindi kasamang set ay isinisiwalat sa halip na tahimik na ibinababa.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
countIf(chg > 0 AND NOT dropped) AS advancers,
countIf(chg < 0 AND NOT dropped) AS decliners,
countIf(chg = 0 AND NOT dropped) AS unchanged,
countIf(dropped) AS dropped_by_liquidity_filter,
count() AS tickers_with_both_closes
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-29') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)
- argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-26') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS chg,
sumIf(toFloat64(close) * toFloat64(volume), toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-29')) < 1e6 AS dropped
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-06-26 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')
GROUP BY ticker
HAVING countIf(toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-26') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) > 0
AND countIf(toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-29') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) > 0
)5047 na ticker ang tumaas sa linggo laban sa 3525 na bumagsak (39 ang hindi nagbago) — ang advance ay malawak, hindi lamang antas-index. Itinabi ng liquidity filter ang 3163 na ticker na nakipagkalakalan sa ilalim ng $1M sa buong linggo; binibilang sila dito, hindi tinatago.
Mga lider ng tape: isang stock na nasa itaas ng mga ETF
Ang eksaktong SQL sa likod ng bawat numero
SELECT ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS dollar_bn,
round(100 * sum(toFloat64(close) * toFloat64(volume)) / max(sum(toFloat64(close) * toFloat64(volume))) OVER (), 1) AS pct_of_leader
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-06-29 00:00:00') AND window_start < toDateTime('2026-07-03 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_bn DESC
LIMIT 8Ang MU ang namuno sa buong tape na may $190.2 bilyon sa regular-hours na dolyar na volume — ang SPY, ang pinakamalaking ETF, ay nakapag-66.4% nito. Isang kumpanya na tinalo ang default index fund ng merkado sa buong isang linggo ang pinaka-tanging nasusukat na katotohanan ng linggo; iniuulat ng pahinang ito ang laki ng daloy, hindi ang dahilan nito. Batayan: June 29–July 2 na regular hours; isang reused-symbol na Hunyo listing ay hindi kasama habang naghihintay ng entity verification — ang mga resibo nito ay nasa sariling deep-dive nito.
Ang holiday ay nagpalipat ng weekly
Nasaan napupunta ang Friday weekly expiry kapag sarado ang Friday? Direktang sinasagot ng options tape: sinusuri ng panel na ito ang expiry date mula sa bawat kontratang na-trade sa buong linggo at inaayos ayon sa ranggo.
Ang eksaktong SQL sa likod ng bawat numero
SELECT concat('20', substring(expiry_raw, 1, 2), '-', substring(expiry_raw, 3, 2), '-', substring(expiry_raw, 5, 2)) AS expiry,
round(sum(size) / 1e6, 1) AS contracts_m,
round(100 * sum(size) / max(sum(size)) OVER (), 1) AS pct_of_biggest
FROM (
SELECT substring(ticker, length(ticker) - 14, 6) AS expiry_raw, size
FROM global_markets.options_trades
WHERE sip_timestamp >= toDateTime64('2026-06-29 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-03 00:00:00', 9)
)
GROUP BY expiry
ORDER BY contracts_m DESC
LIMIT 6Ang pinakaabala na expiry ng linggo ay 2026-07-02 — isang Huwebes — na may 74.1 milyong kontrata, 42.2% mas maaga kaysa sa susunod na petsa. Dahil sarado ang Hulyo 3, ang "Friday" expiration ng linggo ay nanirahan sa Huwebes na lang; ang Monday-hanggang-Wednesday na daily expiries at ang Hulyo 17 monthly ang bumubuo sa talahanayan. Ang mga expiry date ay muling sinusuri mula sa OCC symbol ng bawat kontrata (ang sariling expiry column ng tape ay hindi mapagkakatiwalaan); ang mekanika ng mga expiry week na tulad nito ay nasa holiday explainer.
Rates: ang 10-year ay bumagsak
Ang eksaktong SQL sa likod ng bawat numero
SELECT toString(date) AS d,
round(yield_10_year, 2) AS y10,
round(yield_2_year, 2) AS y2,
round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-06-26') AND date <= toDate('2026-07-02')
ORDER BY dateAng 10-year ay lumipat mula 4.38% noong nakaraang Biyernes patungong 4.48% sa 2026-07-01, habang ang 2s10s spread ay nanatiling malapit sa 31 basis points. Isang disclosure: ang July 2 yield print ay hindi pa na-ingest nang generate ang page na ito (4 rows hanggang July 1) — ang panel ay magdadala nito sa susunod na regeneration.
Ang kalendaryo: nagtatapos ang isang quarter, nawawala ang isang filing day
Ang eksaktong SQL sa likod ng bawat numero
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-06-29') AND ex_dividend_date <= toDate('2026-07-02')) AS ex_div_events,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-06-29') AND execution_date <= toDate('2026-07-02')) AS splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-06-29') AND listing_date <= toDate('2026-07-02')) AS ipos,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-29')) AS filings_jun29,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS filings_jun30,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-07-01')) AS filings_jul1,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-07-02')) AS filings_jul2,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= toDateTime('2026-06-29 00:00:00') AND published_utc < toDateTime('2026-07-03 00:00:00')) AS news_articlesAng linggo ay nagdala ng 2217 ex-dividend na event, 48 split, at 7 bagong listing tungo sa pagtatapos ng quarter. Ang mga filing column ay naglalaman ng data-quality finding ng linggo: ang filing index ng SEC ay nagpapakita ng 4439 filing noong Hunyo 29 at 4282 noong Hulyo 1, ngunit 31 lang noong Hunyo 30 — ang huling araw ng quarter. Ang mga quarter-end na araw ng nakaraang taon ay nagdadala ng libu-libo. Ang gap ay nasa data feed, hindi sa mga ini-file ng mga kumpanya; anumang bilang ng filing para sa Hunyo o Q2 na kasama ang Hunyo 30 ay kulang hanggang sa mag-backfill ang index. Bahagi ito ng isang month-end pattern noong 2026 — ang diagnostic note ay naglalaman ng mga resibo — na isiniwalat dito at sa mga recap ng Hunyo at Q2.
Ang mga short: isang putol na file, tatlong kumpleto
Ang eksaktong SQL sa likod ng bawat numero
SELECT toString(date) AS d,
uniqExact(ticker) AS tickers_on_file,
max(ticker) AS alphabetical_end,
round(100 * sum(toFloat64(short_volume)) / sum(toFloat64(total_volume)), 1) AS marked_short_pct
FROM (
SELECT date, ticker, any(short_volume) AS short_volume, any(total_volume) AS total_volume
FROM global_markets.stocks_short_volume
WHERE date >= toDate('2026-06-29') AND date <= toDate('2026-07-02')
GROUP BY date, ticker
)
GROUP BY date
ORDER BY dateMinarka ang off-exchange volume bilang short nang halos 48.8% sa kalagitnaan ng linggo — karaniwang market-maker plumbing, hindi signal ng squeeze. Kasama sa coverage columns ang caveat: ang June 29 file ay truncated market-wide (5489 tickers na nagtatapos sa "SSUS" laban sa ~15,000 na nagtatapos sa "ZYME" sa mga kumpleto araw), kaya ang 45.8% ng June 29 ay kinuha mula sa partial file. Ang malalim na pagsusuri sa June 29 ay may ganap na market-wide probe.
Mga Tala sa Datos
Buong mga tala sa datos
- Ang Hulyo 3 ay isang BUONG pagsasara, hindi isang maagang pagsara. Ang Hulyo 4, 2026 ay pumapatak sa isang Sabado; sinunod ng NYSE at Nasdaq ang holiday sa Biyernes, Hulyo 3 — 0 SPY bars ang na-print noong araw na iyon. Isang tala sa dataset na natuklasan nang muling nabuo ang pahinang ito: ang exchange-calendar table ay isang rolling upcoming-holidays feed, at ang Hulyo 3 row ay lumabas na rito nang lumipas ang holiday (naroon ito sa unang edisyon ng pahinang ito), kaya ang closure receipt ay ang zero-bar day ng tape; ang mga mekanika ay nasa tagapagpaliwanag ng holiday.
- Ang short interest ay nagtatapos sa June 15 settlement. Ang end-of-June bi-monthly settlement ay hindi pa nailathala nang nabuo ang pahinang ito; walang gumagamit nito rito, at ang June recap ay naglalaman ng kumpletong disclosure. Ang post na ito ay mabubuo muli kapag nailathala na ito.
- Ang June 30 filing-index gap ay nakalahad nang inline sa itaas; ang July 2 treasury print ay naghihintay ng ingestion.
- Ang June 29 FINRA short-volume file ay na-truncate sa buong merkado; ang ratio nito ay ipinapakita kasama ng coverage nito sa itaas.
- Pagbubukod sa volume leader: isang June listing ang nakikipagkalakalan sa ilalim ng isang muling ginamit na simbolo at hindi kasama sa leaderboard habang naghihintay ng entity verification (ang sariling post nito ang may mga receipt).
Metodolohiya
- Ang saklaw ay Hunyo 29 hanggang Hulyo 2, 2026 — ang apat na trading session ng linggo; Hulyo 3 ay market holiday. Ang mga hangganan ng session ay vine-verify mula sa mga na-obserbahang bar, hindi kailanman ina-assume (ang exchange-calendar dataset ay nagdadala lang ng mga upcoming holiday — tingnan ang data note).
- Ang mga timestamp ay naka-store na UTC at fi-filter gamit ang raw UTC bounds; ang regular hours sa (EDT) na linggong ito ay 13:30–20:00 UTC. Ang mga close ay ang huling regular-hours minute bar; ang dollar volume ay minute close times minute volume, na summa sa regular hours.
- Ang mga week-over-week na figure ay ikinumpara laban sa prior Friday's close, na kinakalkula fresh sa parehong query ng linggong ito — hindi kailanman binabasa mula sa stored value. Ang trailing-year rank ay nire-recompute bawat linggo nang magkapareho (Eastern-wall-clock regular hours, minimum-session guard, upper bound na naka-pin sa katapusan ng linggong ito).
- Ang generation ay tumatakbo sa gated read-only path; ang public page ay hindi kailanman nag-q-query ng live. Warehouse state mula Hulyo 5, 2026.
Ito ang unang edisyon ng standing weekly recap — ang edisyon ng susunod na linggo ay sasaklawin ang Hulyo 6–10 at magla-link pabalik dito. Ang June 29 daily recap ay sumasaklaw sa Lunes sa day-level na detalye.