market recap july 2 2026 numbers
Holiday-eve rotation: green breadth sa ilalim ng bumabagsak na Nasdaq, tech huli sa labing-isang sector funds, memory-rout day two, at ang split na nag-fake ng crash.
Thursday, July 2, 2026 — ang huling sesyon bago ang pagsasara para sa Araw ng Kalayaan — ay isang araw ng rotation na may headline ng selloff. Ang QQQ ay nag-print ng -1.71% habang ang DIA ay tumaas ng 1.04%, at POSITIBO ang breadth: 3398 na liquid names ay tumaas laban sa 2758, 54.6% ng tape ay berde habang ang growth index ay bumagsak. Walo sa labing-isang sector funds ang nagsara nang mas mataas; ang pagbebenta ay nasa tech at memory complex na bumagsak noong nakaraang araw.
Ang scoreboard
Ang eksaktong SQL sa likod ng bawat numero
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-01 13:30:00' AND window_start < '2026-07-01 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-02 13:30:00' AND window_start < '2026-07-02 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_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.tickerAng DIA sa 1.04% laban sa QQQ sa -1.71% ang buod ng araw — halos tatlong puntos ang agwat ng daily return ng industrials at growth. Naghati ang SPY sa pagitan sa -0.12%; nagsara ang IWM sa -0.59%.
Hindi ba pangkaraniwan ang araw?
Dalawang lente sa iisang panel: ang galaw ng SPY mula bukas hanggang sara at ang galaw ng QQQ mula sara hanggang sara, bawat isa ay niraranggo laban sa trailing month ayon sa absolute size (rank 1 = pinakamalaki).
Ang eksaktong SQL sa likod ng bawat numero
WITH per_day AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct,
argMax(toFloat64(close), window_start) AS rth_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2026-06-02 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
GROUP BY ticker, d
),
with_prev AS (
SELECT ticker, d, oc_pct,
lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY d) AS prev_close,
(rth_close / lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct
FROM per_day
)
SELECT
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-02')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-02'))),
groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-02'))) + 1 AS spy_abs_move_rank,
countIf(ticker = 'SPY') AS spy_sessions_compared,
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-02')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-02'))),
groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-02') AND isFinite(cc_pct) AND prev_close > 0)) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ' AND isFinite(cc_pct) AND prev_close > 0) AS qqq_sessions_compared,
toString(minIf(d, ticker = 'SPY')) AS first_session
FROM with_prevSa antas ng index, hindi. Ang -0.35% open-to-close ng SPY ay nasa 15 sa 22 na nakaraang sesyon — nasa ilalim na kalahati. Mas maingay ang QQQ ngunit hindi pa rin sukdulan: ang -1.71% close-over-close nito ay nasa 9 sa 21 na sesyon na may tiyak na naunang sara, pabalik sa 2026-06-02 — isang mid-pack na masamang araw para sa growth index. Ang single-name tape ang dahilan kung bakit maingay ang July 2.
Lawak: berdeng tape, pulang growth index
Ang eksaktong SQL sa likod ng bawat numero
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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,
reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close > prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS advancers_fmt,
reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close < prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS decliners_fmt,
reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_fmt,
reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_fmt
FROM per_ticker
WHERE prior_close > 0 AND day_close > 03,398 umakyat, 2,758 bumagsak, 63 hindi nagbago — 54.6% ng liquid tape ang tumaas habang bumagsak ang QQQ. Magkaiba ang sagot ng cap-weighted indexes at equal-count breadth; sa mga araw na ganito kaya pareho silang may panel. Ang filter ay nagtatanggal ng 5,317 sa 11,536 dual-session tickers na nasa ilalim ng $1 milyon ang trade.
Sektor por sektor: kung saan huminto ang berdeng tape
Ang breadth ay nagbibilang ng mga pangalan; hindi nito sinasabi kung anong uri. Ang labing-isang SPDR sector fund ay hinati ang sesyon ayon sa industriya, at ang agwat sa pagitan ng pinakamataas at pinakamababa ay ang dispersion ng araw sa iisang numero.
Ang eksaktong SQL sa likod ng bawat numero
WITH per_etf AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
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-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
round((day_close / prior_close - 1) * 100 - min((day_close / prior_close - 1) * 100) OVER (), 2) AS pts_above_worst_sector,
day_dollar_bn
FROM per_etf
ORDER BY tickerAng Health care (XLV) ang nanguna sa board sa 2.63%, sinundan ng utilities 2.23%, staples 2%, materials 1.94%. Ang Technology (XLK) ang huling pumwesto sa -2.71%, ang tanging sektor na bumaba nang mahigit isang punto; ang consumer discretionary (-0.81%) at communication services (-0.13%) ang iba pang pulang pondo, ang natitirang walo ay berde. Dispersion mula pinakamataas hanggang pinakamababa: 5.34 percentage points. Ang hati ng DIA-up/QQQ-down ay tumakbo sa buong merkado, hindi lang sa apat na megacap — kaya naman ang berdeng advance-decline line sa ilalim ng bumabagsak na Nasdaq ay walang kontradiksyon.
Highlight ng araw: ikalawang araw ng pagbagsak ng memory sector
Ang complex na bumagsak noong Miyerkules ay mas matinding bumagsak noong Huwebes — magnitude at sabay-sabay na paggalaw, hindi ang dahilan.
Ang eksaktong SQL sa likod ng bawat numero
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-02 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-02 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-07-02 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-02 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
round(day_high, 2) AS day_high,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
round(day_low, 2) AS day_low,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerNag-print ang SanDisk ng -14.32%, Seagate -10.38%, Western Digital -9.92%, MU -5.57% — sa $51.4 bilyon na turnover ng MU, halos isa't kalahating beses ng SPY. Na-print ng MU at SanDisk ang kanilang mga pinakamababa nang huli (15:26, 15:26 ET), mas maaga naman ang Seagate at Western Digital (14:23, 13:59). Konteksto: Miyerkules at ang malalimang pagsusuri sa MU.
Ang kabilang bahagi ng rotation, sa mga megacap:
Ang eksaktong SQL sa likod ng bawat numero
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-02 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-02 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-07-02 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-02 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA')
AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
round(day_high, 2) AS day_high,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
round(day_low, 2) AS day_low,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerTumaas ang AAPL ng 4.75% sa isang direksyong galaw — pinakamababa noong 09:30 ET, pinakamataas noong 15:57, tatlong minuto bago magsara — habang ang TSLA ay nagpakita ng salamin na imahe sa -7.65%. Nagdagdag ang MSFT ng 1.41%; nagsara ang NVDA sa -1.55%. Parehong index, magkasalungat na araw.
Kung saan nag-trade ang pera
Ang eksaktong SQL sa likod ng bawat numero
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, 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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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) DESCAng $51.4 bilyon ng MU ang nanguna sa tape para sa ika-apat na sunod na sesyon (Lunes, Martes, Miyerkules) laban sa $32.7 bilyon ng SPY, at ang $26.57 bilyon ng SanDisk ay naglagay ng pangalawang pangalan ng memory sa top four. Ang SOXS — ang 3x-inverse semiconductor ETF — ang nanguna sa share board sa 748.2 milyon: ang murang shares ang nangingibabaw sa share count, ang mahal naman sa dollar count, at ang relative volume ay nagkukumpara sa alinman laban sa sariling norm ng isang pangalan. Basis: July 2 regular hours, isang reused-symbol listing ang hindi kasama (receipts).
Ang eksaktong SQL sa likod ng bawat numero
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-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY et_time
ORDER BY et_time2.13 bilyong shares sa opening half hour, isang 0.81 bilyong trough sa 14:30, 2.3 bilyon papasok sa holiday-eve close — ang huling bucket ang pinakamalaki sa araw, dahil hinihila ng closing auction ang mga resting orders sa iisang print.
Ang options tape: ang na-shift na weekly ay lumapag
Ang eksaktong SQL sa likod ng bawat numero
WITH
(
SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
sum(size), count(), round(avg(toFloat64(price)), 3))
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY ticker
ORDER BY sum(size) DESC
LIMIT 1
) AS top_contract,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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) = '260702') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710')) / 1e6, 2) AS jul10_weekly_contracts_m,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260717')) / 1e6, 2) AS jul17_monthly_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,
top_contract.1 AS top_contract_underlying,
top_contract.2 AS top_contract_strike,
top_contract.3 AS top_contract_type,
top_contract.4 AS top_contract_expiry,
top_contract.5 AS top_contract_volume,
reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.5))), '[0-9]{1,3}'), ',')) AS top_contract_volume_fmt,
round(top_contract.7, 3) AS top_contract_avg_price,
round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,
round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'80.96 milyong kontrata ng options ang na-trade sa 13.15 milyong prints, at 47.4% ng volume na iyon ay nag-expire nang parehong Huwebes. Walang kontratang may July 3 expiration code na na-trade buong araw (0 prints), kaya sabay na dala ni Huwebes ang daily expiry at ang na-shift na weekly ng linggong ito. Ang pinakabusy na kontrata ay ang same-day SPY $740 put — 540,403 kontrata sa average na $0.499 premium, kung saan nagsara ang SPY 4.8 dolyar sa itaas ng strike: out of the money, at isang put sa ibabaw ng board kung saan ang Martes at Miyerkules ay may calls. Ang calls ay kumuha pa rin ng 58.4% ng volume; ang susunod na weekly ay nakakuha ng 9.64 milyong kontrata, ang July monthly ay 8.82 milyon (mekanismo ng expiry).
Ang quote tape: magkano ang gastos para mag-trade
Sinasabi ng presyo kung ano ang nangyari; sinasabi ng quote kung magkano ang gastos. Ang bid-ask spread ay ang toll sa bawat round trip, sa basis points ng mid-price (ang basis point ay isang daan ng isang porsyento). Sinusukat namin ito bawat session, ordinary man o hindi — iyon ang dahilan kung bakit ang "pumutok ang spreads" ay isang claim na mapapatunayan.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-01')) / 1e6, 2) AS jul1_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / countIf(toDate(sip_timestamp) = toDate('2026-07-01')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'SPY') / 1e6, 2) AS jul2_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'QQQ') / 1e6, 2) AS jul2_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'MU') / 1e6, 2) AS jul2_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'Ang national best bid and offer — ang tuktok ng consolidated book — ay na-rewrite ng 597.22 milyong beses noong July 2 laban sa 449.15 milyon noong July 1: isang 33% na pagtalon patungo sa closure. Kumuha ang QQQ ng 7.56 milyon, higit sa 5.42 milyon ng SPY; MU 1.01 milyon.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
ticker,
round(med_bps, 2) AS median_spread_bps,
round(med_dollars * 100, 1) AS median_spread_cents,
round(med_bps / min(med_bps) OVER (), 1) AS times_the_spy_spread,
round(quote_updates / 1e6, 2) AS rth_updates_m,
invalid_quotes_dropped
FROM (
SELECT
ticker,
quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000,
toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)) AS med_bps,
quantileExactIf(0.5)(toFloat64(ask_price) - toFloat64(bid_price),
toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)) AS med_dollars,
count() AS quote_updates,
countIf(NOT (toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price))) AS invalid_quotes_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'TSLA', 'NVDA', 'MU', 'SNDK', 'WDC')
AND sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
GROUP BY ticker
)
ORDER BY median_spread_bps ASCAng SPY ay nag-quote ng median na 0.27 basis points ang lapad: mga 2 sentimo sa isang $744.8 ETF. Pumasok ang QQQ sa 0.83 bps, NVDA 1.03. Ang mga pangalang bumabagsak ay ang mga mahal i-trade: MU 5.52 bps, SanDisk 10.4, Western Digital 10.79 — 40x ang spread ng SPY. Ang pag-cross ng basket ng memory names ay nagkakahalaga ng multiple ng pag-cross ng index, bago pa ang anumang price impact. Ang mga invalid quotes (one-sided, crossed) ay binibilang bawat pangalan, hindi itinatago.
Ang eksaktong SQL sa likod ng bawat numero
WITH per_day AS (
SELECT toDate(sip_timestamp) AS d,
quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000) AS med_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= '2026-06-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
AND toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)
GROUP BY d
)
SELECT
round(anyIf(med_bps, d = toDate('2026-07-02')), 3) AS jul2_median_spread_bps,
round(quantileExact(0.5)(med_bps), 3) AS trailing_median_bps,
round(anyIf(med_bps, d = toDate('2026-07-02')) - quantileExact(0.5)(med_bps), 3) AS jul2_minus_trailing_bps,
arrayCount(x -> x > anyIf(med_bps, d = toDate('2026-07-02')), groupArrayIf(med_bps, d != toDate('2026-07-02'))) + 1 AS wider_rank,
count() AS sessions_compared,
round(max(med_bps), 3) AS widest_session_bps
FROM per_dayIsang ordinaryong araw para sa liquidity, at iyon ang natuklasan: ang median spread ng SPY na 0.27 bps ay nasa 0 bps mula sa trailing month's median (0.27 bps), na nagra-rank ng 11 sa 22 sessions ayon sa lapad — malayo sa pinakamalawak ng buwan sa 0.409 bps. Ang isang concentrated rout sa ilalim ng green tape ay hindi nag-stress sa plumbing.
Rates: ang July 2 print, dumating na
Ang eksaktong SQL sa likod ng bawat numero
SELECT
(SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS jul2_rows,
(SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS jul1_rowsAng treasury feed ay nauuna o nahuhuli ng isa o dalawang araw kumpara sa tape: noong unang publikasyon, ang July 2 close ay walang kahit isang row na naka-file, at ang pahinang ito ay nagsabi na lang nito sa halip na manghula. Dumating na ang print — 1 row para sa July 2, 1 para sa July 1 — kaya ang panel sa ibaba ay nagtataglay ng sariling curve ng session na iyon.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul2_yield_pct,
round((t.2 - t.3) * 100) AS one_day_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-02') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS p
)Sa close, ang 10-year ay nasa 4.49%, ang 2s10s spread ay nasa 0.35 points.
Ang kalendaryo sa likod ng araw
Ang eksaktong SQL sa likod ng bawat numero
WITH
(
SELECT (count(), uniqExact(publisher))
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-02'
) AS news,
(
SELECT (argMax(t, n), max(n))
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-02'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news,
(
SELECT (count(), countIf(split_to > split_from), countIf(split_to < split_from),
arrayStringConcat(groupArray(concat(ticker, ' ', toString(split_to), '-for-', toString(split_from))), '; '))
FROM global_markets.stocks_splits
WHERE execution_date = '2026-07-02' AND ticker NOT IN ('SPCX')
) AS splits
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-02') AS ex_dividend_records,
splits.1 AS splits_executed,
splits.2 AS forward_splits,
splits.3 AS reverse_splits,
splits.4 AS split_records,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-02') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS filings_8k,
(SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-02' ORDER BY ticker
)) AS ipo_names,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
top_news.2 AS most_covered_articles,
(SELECT any(split_from) FROM global_markets.stocks_splits WHERE ticker = 'CRWD' AND execution_date = '2026-07-02') AS crwd_split_from,
(SELECT any(split_to) FROM global_markets.stocks_splits WHERE ticker = 'CRWD' AND execution_date = '2026-07-02') AS crwd_split_to,
(SELECT round(toFloat64(argMax(close, window_start)), 2) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'CRWD' AND window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS crwd_prev_close,
(SELECT round(toFloat64(argMax(close, window_start)), 2) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'CRWD' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS crwd_day_close,
(SELECT round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 2) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'CRWD' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS crwd_dollar_m,
(SELECT count() FROM (
SELECT ticker FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-02')
AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY ticker
)) AS split_names_with_bars319 dividend records ang nag-ex-dividend, 2 bagong listing ang dumating (MIACU — Meridian3 Industrials Acquisition Corp.; VIIU — Viking Acquisition Corp. II), at ang SEC index ay nagtala ng 5200 filings sa holiday — 2109 Form 4s, 258 8-Ks. Ang news feed ay nagdala ng 201 artikulo mula sa 3 publishers (NVDA pinaka-cover, 18 sa kanila).
Ang mga splits ay nakakalito sa sinumang nagbabasa ng raw closes. Ang CRWD ay nagpatakbo ng 4-para-sa-1 forward split, kaya ang unadjusted tape ay nagpapakita ng $772.45 noong Miyerkules at $193.67 noong Huwebes — isang pekeng pagbaba na talagang apat na bagong shares para sa bawat lumang share. Hindi ito nag-iisa: 8 split records ang na-execute, 5 forward at 3 reverse (ang split_records column ang naglilista sa kanila), at ang reverse split ay nagpe-peke ng kabaligtarang artifact — isang raw price na tumatalon magdamag. 2 lamang sa mga pangalang iyon ang nag-trade sa ating tape; ang $1473.51 milyon na turnover ng CRWD ang tanging sapat na malaki upang makontamina ang isang screen, at bawat mover screen dito ay hindi ito kasama.
Naka-iskedyul
Hindi ito hula, kundi nakatalang datos — kung ano ang nasa talahanayan para sa mga susunod na sesyon.
Ang eksaktong SQL sa likod ng bawat numero
SELECT
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS jul6_spy_regular_bars,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS exdiv_records_jul6,
(SELECT arrayStringConcat(groupArray(ticker), ', ') FROM global_markets.stocks_dividends
WHERE ex_dividend_date = '2026-07-06'
AND ticker IN ('AAPL', 'MSFT', 'JPM', 'JNJ', 'XOM', 'KO', 'PG', 'WMT', 'CVX', 'HD')) AS household_exdivs_jul6,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_jul6,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02') AS next_scheduled_closure,
(SELECT any(name) FROM global_markets.stocks_market_holidays
WHERE date = (SELECT min(date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02')) AS next_closure_name,
(SELECT any(status) FROM global_markets.stocks_market_holidays
WHERE date = (SELECT min(date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02')) AS next_closure_status,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest
WHERE settlement_date <= '2026-07-02') AS latest_si_settlement,
(SELECT dateDiff('day', max(settlement_date), toDate('2026-07-02')) FROM global_markets.stocks_short_interest
WHERE settlement_date <= '2026-07-02') AS si_settlement_age_daysLunes, Hulyo 6, nagbukas muli na may buong 390-bar na sesyon, na-verify mula sa sarili nitong mga bar. Nagdala ito ng 118 na tala ng ex-dividend — isang kilalang pangalan sa sampung sinusuri namin (JPM) — at 15 na pagpapatupad ng split. Susunod na nakatakdang pagsasara: Labor Day, 2026-09-07 (closed). Ang short interest ay lumang balita, gaya ng dati — pinakabagong settlement na nasa file 2026-06-30, 2 araw ang nakalipas, ang publikasyon ay sumusunod sa settlement nang humigit-kumulang dalawang linggo (bakit).
Ang sesyon, beripikado — at ang Biyernes na hindi nangyari
Ang eksaktong SQL sa likod ng bawat numero
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-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-02 00:00:00' AND window_start < '2026-07-03 00:00:00'Ang July 2 ay isang buong sesyon, hindi maagang pagsasara: ang mga bar ng SPY ay tumatakbo mula 04:00 hanggang 19:59 oras sa New York (kasama ang mga bar bago ang merkado at pagkatapos ng oras), na may eksaktong 390 na bar sa regular na window. Ang Biyernes July 3 ay nag-print ng 0 SPY bar — isang buong pagsasara para sa Araw ng Kalayaan, July 4 na bumagsak sa Sabado. Ang apat-na-sesyon na linggo: ang recap ng linggo.
FAQ
Bakit tumaas ang Dow habang bumagsak ang Nasdaq noong Hulyo 2, 2026?
Magkaiba ang mga kompanyang hawak ng dalawang index: nagsara ang DIA sa 1.04%, ang QQQ sa -1.71%. Ganito rin ang hatian sa sector board — nangunguna ang health care, utilities at staples, at huli ang technology sa -2.71%, may 5.34-point na agwat mula pinakamaganda hanggang pinakamasama.
Bukas ba ang stock market noong Biyernes ng linggo ng Araw ng Kalayaan?
Hindi. Bumagsak ang Araw ng Kalayaan sa isang Sabado, at ipinagdiwang ito ng mga palitan sa pamamagitan ng buong pagsasara ng Biyernes pagkatapos ng sesyong ito: ipinapakita ng aming tape ang 0 SPY minute bars para rito.
Ano ang epekto ng forward stock split sa presyo ng bahagi?
Pinarami nito ang bilang ng bahagi ng apat at hinahati ang presyo sa apat; hindi nagbabago ang halaga ng posisyon. CRWD, Hulyo 2: isang hindi na-adjust na pagsasara na $772.45 noong Miyerkules, $193.67 noong Huwebes — isang pekeng pagbaba sa anumang screener na lumalaktaw sa split.
Gaano kalawak ang bid-ask spreads noong Hulyo 2, 2026?
Ang median quoted spread ng SPY ay 0.27 basis points ng mid-price sa regular na oras — 11 sa 22 na nakaraang sesyon ayon sa lawak, isang ordinaryong araw. Mas malawak ang mga single names: MU 5.52 bps, WDC 10.79.
Mga tala sa datos
- Ang dollar volume ay isang per-minutong proxy — close × volume, na pinagsama-sama kada bar.
- Ang treasury print noong July 2 ay nailathala pagkatapos ng unang publikasyon — ang orihinal na tala ay nagpahayag ng kawalan nito gamit ang isang row-count receipt; ang rebisyong ito ay nagtataglay ng print, na ipinapakita ang receipt.
- Ang raw close change ng CRWD ay isang split artifact — hindi kasama sa mover screens.
Buong tala sa datos
- Ang sector board ay ang labing-isang SPDR Select Sector funds (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY) — isang fixed, disclosed basket, hindi isang vendor sector field.
- Ang quote-tape counts ay naka-bucket ayon sa UTC date ng SIP timestamp; ang isang summer session ay nasa loob ng isang UTC day.
- Isang reused-symbol June listing ang hindi kasama sa leaderboards (mga receipt); ang forensic tick work ay nasa deep-dives.
Pamamaraan
- Ang panahon ay isang trading session (1 session, na-verify mula sa naobserbahang bars). Ang mga timestamp ay naka-store sa UTC at kino-convert sa New York time sa loob ng queries; ang "close" ay nangangahulugang huling minute bar ng regular session, at ang pagbabago ng araw ay nagkukumpara ng July 2 sa July 1. Ang pagsasara ng July 3 ay na-verify mula sa bars, hindi ipinapalagay.
- Ang mga spread ay naka-quote (ask minus bid) sa basis points ng mid-price, median sa buong regular-hours NBBO updates, sa isang deterministic quantile. Ang mga decimals ay naka-cast sa floats bago ang ratio arithmetic; ang mga option expiry ay nire-reparse mula sa OCC ticker. Ang bawat panel ay binabasa nang isang beses, sa oras ng paggawa, sa pamamagitan ng gated read-only path.
Ang chart, table, at SQL ay iisang bagay. I-paste ang anumang panel sa Strasmore terminal at gawin itong sarili mo. Nakaraang session: July 1. Ang linggo: ang apat na session na holiday week.