मार्केट रिकैप 2 जुलाई 2026
Nasdaq में गिरावट और sector rotation का विश्लेषण। जानें क्यों tech और memory stocks में बिकवाली हुई और DIA ने कैसा प्रदर्शन किया। विस्तृत रिपोर्ट यहाँ पढ़ें।
गुरुवार, 2 जुलाई, 2026 — स्वतंत्रता दिवस की छुट्टी से पहले का अंतिम सत्र — रोटेशन का दिन था, जिसमें बिकवाली की खबरें प्रमुख रहीं। QQQ में -1.71% की गिरावट आई जबकि DIA 1.04% बढ़ा। मार्केट की चौड़ाई (breadth) POSITIVE थी: 3398 लिक्विड स्टॉक्स में बढ़त देखी गई, जबकि 2758 के मुकाबले 54.6% स्टॉक्स हरे निशान में रहे और ग्रोथ इंडेक्स गिर गया। ग्यारह में से आठ सेक्टर फंड्स बढ़त के साथ बंद हुए; बिकवाली मुख्य रूप से टेक और मेमोरी कॉम्प्लेक्स में रही, जो पिछले दिन भी गिर गया था।
स्कोरबोर्ड
हर आंकड़े के पीछे का पूरा SQL
WITH prior AS (
SELECT ticker, argMax(close, window_start) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-07-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.tickerएक पंक्ति में आज का सारांश इस प्रकार है: DIA 1.04% पर है और QQQ -1.71% पर है — इंडस्ट्रियल्स और ग्रोथ के बीच दैनिक रिटर्न का अंतर लगभग तीन अंक का है। SPY -0.12% पर बंद हुआ; IWM -0.59% पर बंद हुआ।
क्या यह दिन असामान्य था?
एक ही पैनल में दो दृष्टिकोण: SPY का ओपन-टू-क्लोज मूवमेंट और QQQ का क्लोज-ओवर-क्लोज मूवमेंट, जिनमें से प्रत्येक को पिछले महीने के सापेक्ष पूर्ण आकार (absolute size) के आधार पर रैंक किया गया है (रैंक 1 = सबसे बड़ा)।
हर आंकड़े के पीछे का पूरा SQL
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_prevइंडेक्स स्तर पर, नहीं। SPY का -0.35% ओपन-टू-क्लोज पिछले 22 सत्रों में 15 रैंक पर है — यानी निचले आधे हिस्से में। QQQ में अधिक हलचल थी लेकिन फिर भी यह चरम पर नहीं था: इसका -1.71% क्लोज-ओवर-क्लोज, एक निश्चित पिछले क्लोज वाले 21 सत्रों में 9 रैंक पर है, जो 2026-06-02 तक जाता है — ग्रोथ इंडेक्स के लिए यह औसत दर्जे का खराब दिन था। 2 जुलाई को व्यक्तिगत शेयरों (single-name tape) में भारी हलचल देखी गई।
Breadth: green tape, red growth index
हर आंकड़े के पीछे का पूरा SQL
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 advancers, 2,758 decliners, 63 unchanged — QQQ के गिरने के दौरान 54.6% liquid tape में बढ़त देखी गई। Cap-weighted indexes और equal-count breadth के परिणाम अलग थे; इस तरह के दिन दोनों के लिए अलग-अलग विश्लेषण की आवश्यकता बताते हैं। यह filter 11,536 dual-session tickers में से 5,317 tickers को हटा देता है जिनका trading volume $1 million से कम है।
सेक्टर वार: बढ़त कहाँ रही
मार्केट की व्यापकता (breadth) शेयरों की संख्या बताती है, लेकिन उनके प्रकार नहीं। ग्यारह SPDR सेक्टर फंड्स का उद्योगवार विश्लेषण नीचे दिया गया है। सबसे अच्छा और सबसे खराब प्रदर्शन करने वाले फंड्स के बीच का अंतर ही दिन का 'डिस्पर्शन' (dispersion) है।
हर आंकड़े के पीछे का पूरा SQL
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 tickerHealth care (XLV) 2.63% के साथ सबसे ऊपर रहा, उसके बाद utilities 2.23%, staples 2%, और materials 1.94% रहे। Technology (XLK) -2.71% के साथ सबसे नीचे रहा; यह एकमात्र सेक्टर था जो एक अंक से अधिक गिरा। consumer discretionary (-0.81%) और communication services (-0.13%) अन्य लाल (negative) फंड्स थे, जबकि शेष आठ फंड्स हरे (positive) रहे। सबसे अच्छे से सबसे खराब प्रदर्शन का अंतर: 5.34 percentage points। DIA का बढ़ना और QQQ का गिरना केवल चार megacaps तक सीमित नहीं था, बल्कि पूरे बाजार में देखा गया — यही कारण है कि Nasdaq के गिरने के बावजूद एक हरा advance-decline line विरोधाभास नहीं है।
दिन का मुख्य आकर्षण: मेमोरी शेयरों में गिरावट, दूसरा दिन
बुधवार को गिरावट शुरू हुई थी, लेकिन गुरुवार को यह और भी गहरी हो गई — यह गिरावट तीव्रता और सह-संबंध (co-movement) के कारण थी, न कि किसी विशेष कारण से।
हर आंकड़े के पीछे का पूरा SQL
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 tickerSanDisk में -14.32%, Seagate में -10.38%, Western Digital में -9.92%, और MU में -5.57% की गिरावट दर्ज की गई — यह MU के $51.4 billion के टर्नओवर पर आधारित है, जो SPY के टर्नओवर का लगभग डेढ़ गुना है। MU और SanDisk अपने निचले स्तर (15:26, 15:26 ET) पर देर से पहुँचे, जबकि Seagate और Western Digital 14:23, 13:59 पर ही अपने निचले स्तर पर आ गए थे। संदर्भ: बुधवार और MU का विस्तृत विश्लेषण।
मेगा-कैप शेयरों में रोटेशन का दूसरा हिस्सा:
हर आंकड़े के पीछे का पूरा SQL
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 tickerAAPL में 4.75% की बढ़त देखी गई — इसका निचला स्तर 09:30 ET पर था और उच्चतम स्तर 15:57 पर, जो बाजार बंद होने से तीन मिनट पहले था — जबकि TSLA में इसके विपरीत -7.65% की गिरावट आई। MSFT में 1.41% की वृद्धि हुई; NVDA -1.55% पर बंद हुआ। एक ही इंडेक्स, लेकिन विपरीत दिशा में।
कहाँ व्यापार हुआ
हर आंकड़े के पीछे का पूरा SQL
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) DESCSPY के $32.7 billion के मुकाबले MU का $51.4 billion लगातार चौथे सत्र (Monday, Tuesday, Wednesday) में सबसे आगे रहा। SanDisk का $26.57 billion भी शीर्ष चार में शामिल हुआ, जिससे मेमोरी क्षेत्र का दूसरा नाम सूची में आया। SOXS — 3x-inverse semiconductor ETF — 748.2 million के साथ शेयर बोर्ड में सबसे ऊपर रहा: कम कीमत वाले शेयर शेयर संख्या (share count) में हावी होते हैं, जबकि अधिक कीमत वाले शेयर डॉलर मूल्य (dollar count) में। relative volume किसी स्टॉक के अपने सामान्य स्तर की तुलना में वॉल्यूम को दर्शाता है। आधार: 2 जुलाई के नियमित कारोबारी घंटे, एक पुन: उपयोग किए गए प्रतीक वाली लिस्टिंग (receipts) को छोड़कर।
हर आंकड़े के पीछे का पूरा SQL
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY et_time
ORDER BY et_timeशुरुआती आधे घंटे में 2.13 billion शेयर, 14:30 पर 0.81 billion का निचला स्तर, और अवकाश की पूर्व संध्या पर क्लोजिंग के समय 2.3 billion — अंतिम सत्र का वॉल्यूम सबसे अधिक था, क्योंकि the closing auction लंबित ऑर्डर्स को एक प्रिंट में मिला देता है।
ऑप्शंस टेप: शिफ्टेड वीकली का प्रभाव
हर आंकड़े के पीछे का पूरा SQL
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'13.15 मिलियन प्रिंट्स में कुल 80.96 मिलियन कॉन्ट्रैक्ट्स का व्यापार हुआ, और उस वॉल्यूम का 47.4% हिस्सा उसी गुरुवार को एक्सपायर हो गया। पूरे दिन 3 जुलाई एक्सपायरी कोड वाला कोई भी कॉन्ट्रैक्ट ट्रेड नहीं हुआ (0 प्रिंट्स), इसलिए गुरुवार को दैनिक एक्सपायरी और सप्ताह की शिफ्टेड वीकली दोनों एक साथ आईं। सबसे अधिक ट्रेड होने वाला कॉन्ट्रैक्ट उसी दिन का SPY $740 पुट था — औसत $0.499 प्रीमियम पर 540,403 कॉन्ट्रैक्ट्स, जबकि SPY स्ट्राइक से 4.8 डॉलर ऊपर बंद हुआ: यानी यह आउट ऑफ द मनी था। यह पुट एक ऐसे बोर्ड पर था जहाँ Tuesday और Wednesday को कॉल्स मिले थे। कॉल्स का वॉल्यूम अभी भी 58.4% था; अगली वीकली में 9.64 मिलियन कॉन्ट्रैक्ट्स ट्रेड हुए, और जुलाई मंथली में 8.82 मिलियन (expiry mechanics)।
The quote tape: what it cost to trade
Prices say what happened; quotes say what it cost. The bid-ask spread is the toll on every round trip, in basis points of the mid-price (a basis point is a hundredth of a percent). We measure it every session, ordinary or not — which is what makes "spreads blew out" a falsifiable claim.
हर आंकड़े के पीछे का पूरा SQL
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'The national best bid and offer — the top of the consolidated book — was rewritten 597.22 million times on July 2 against 449.15 million on July 1: a 33% jump into the closure. QQQ took 7.56 million, above SPY's 5.42 million; MU 1.01 million.
हर आंकड़े के पीछे का पूरा SQL
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 ASCSPY quoted a median 0.27 basis points wide: about 2 cents on a $744.8 ETF. QQQ came in at 0.83 bps, NVDA 1.03. The names doing the falling were the expensive ones to trade: MU 5.52 bps, SanDisk 10.4, Western Digital 10.79 — 40x SPY's spread. Crossing a basket of memory names cost multiples of crossing the index, before any price impact. Invalid quotes (one-sided, crossed) are counted per name, not hidden.
हर आंकड़े के पीछे का पूरा SQL
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_dayAn ordinary day for liquidity, and that is the finding: SPY's median spread of 0.27 bps sits 0 bps from the trailing month's median (0.27 bps), ranking 11 of 22 sessions by wideness — nowhere near the month's widest at 0.409 bps. A concentrated rout under a green tape did not stress the plumbing.
Rates: July 2 का डेटा उपलब्ध है
हर आंकड़े के पीछे का पूरा SQL
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_rowsTreasury feed वास्तविक डेटा से एक या दो दिन पीछे रहता है: प्रकाशन के समय, July 2 के क्लोजिंग का कोई डेटा उपलब्ध नहीं था, और इस पेज ने अनुमान लगाने के बजाय यही जानकारी दी थी। अब डेटा उपलब्ध है — July 2 के लिए 1 रो (row), और July 1 के लिए 1 — इसलिए नीचे दिया गया पैनल सत्र का अपना कर्व (curve) दिखाता है।
हर आंकड़े के पीछे का पूरा SQL
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
)क्लोजिंग के समय, 10-year की दर 4.49% थी, और 2s10s spread 0.35 पॉइंट्स पर था।
दिन के पीछे का कैलेंडर
हर आंकड़े के पीछे का पूरा SQL
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 डिविडेंड रिकॉर्ड्स ex-dividend हो गए, 2 नई लिस्टिंग आईं (MIACU — Meridian3 Industrials Acquisition Corp.; VIIU — Viking Acquisition Corp. II), और SEC इंडेक्स ने छुट्टियों के दौरान 5200 फाइलिंग दर्ज की — 2109 Form 4s, 258 8-Ks। न्यूज़ फ़ीड में 3 पब्लिशर्स के 201 लेख थे (NVDA सबसे अधिक कवर किए गए, 18 उनमें से)।
जो लोग केवल क्लोजिंग प्राइस देखते हैं, वे स्टॉक स्प्लिट्स के कारण भ्रमित हो सकते हैं। CRWD ने 4-for-1 फॉरवर्ड स्प्लिट किया, इसलिए अनएडजस्टेड डेटा बुधवार को $772.45 और गुरुवार को $193.67 दिखाता है — यह एक दिखावटी गिरावट है, जबकि वास्तव में प्रत्येक पुराने शेयर के बदले चार नए शेयर मिले हैं। अन्य स्टॉक भी इसमें शामिल थे: 8 स्प्लिट रिकॉर्ड्स निष्पादित हुए, 5 फॉरवर्ड और 3 रिवर्स (split_records कॉलम में इनकी सूची है), और एक रिवर्स स्प्लिट इसके विपरीत प्रभाव दिखाता है — एक कच्चा मूल्य जो रातों-रात बढ़ जाता है। हमारे डेटा में केवल 2 नाम ट्रेड हुए; CRWD का $1473.51 मिलियन का टर्नओवर इतना बड़ा है कि वह स्क्रीन को प्रभावित कर सकता है, और यहाँ का हर मूवर स्क्रीन इसे शामिल नहीं करता है।
आगामी घटनाक्रम
पूर्वानुमान नहीं, बल्कि कैलेंडर तथ्य — अगले सत्रों के लिए डेटा क्या दर्शाता है।
हर आंकड़े के पीछे का पूरा SQL
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_daysसोमवार, 6 जुलाई का सत्र 390-बार के साथ खुला, जिसकी पुष्टि स्वयं इसके बार्स से हुई। इसमें 118 डिविडेंड-एक्स रिकॉर्ड्स शामिल थे — हमारे द्वारा जांचे जा रहे दस नामों में से एक प्रसिद्ध नाम (JPM) — और 15 स्प्लिट निष्पादित हुए। अगला निर्धारित क्लोजर: Labor Day, 2026-09-07 (closed) है। शॉर्ट इंटरेस्ट हमेशा की तरह पुराना डेटा है — नवीनतम सेटलमेंट 2026-06-30, 2 दिन पहले का है, और प्रकाशन सेटलमेंट के लगभग दो सप्ताह बाद होता है (कारण).
सत्र, सत्यापित — और वह शुक्रवार जो नहीं था
हर आंकड़े के पीछे का पूरा SQL
SELECT
formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
count() AS spy_minute_bars,
countIf(window_start >= '2026-07-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'2 जुलाई को पूर्ण सत्र हुआ, जल्दी बंद नहीं: SPY के बार्स न्यूयॉर्क समय के अनुसार 04:00 से 19:59 तक रहे (pre-market और after-hours बार्स सहित), जिसमें नियमित विंडो के ठीक 390 बार्स थे। शुक्रवार 3 जुलाई को SPY के 0 बार्स दर्ज किए गए — 4 जुलाई को शनिवार होने के कारण स्वतंत्रता दिवस के लिए पूर्ण अवकाश था। चार-सत्र वाला सप्ताह: सप्ताह का सारांश।
FAQ
2 जुलाई, 2026 को Dow में वृद्धि हुई जबकि Nasdaq में गिरावट आई, ऐसा क्यों हुआ?
दोनों इंडेक्स में अलग-अलग कंपनियां शामिल हैं: DIA 1.04% पर बंद हुआ, QQQ -1.71% पर। सेक्टर बोर्ड में भी यही अंतर है — हेल्थ केयर, यूटिलिटीज और स्टैपल्स सबसे ऊपर हैं, जबकि टेक्नोलॉजी -2.71% पर सबसे नीचे है, जो सबसे अच्छे से सबसे खराब के बीच 5.34 अंकों का अंतर है।
क्या स्वतंत्रता दिवस सप्ताह के शुक्रवार को शेयर बाजार खुला था?
नहीं। स्वतंत्रता दिवस शनिवार को था, और एक्सचेंजों ने इस सत्र के अगले दिन शुक्रवार को पूर्ण अवकाश रखा था: हमारा डेटा इसके लिए 0 SPY मिनट बार दिखाता है।
स्टॉक स्प्लिट (stock split) से शेयर की कीमत पर क्या प्रभाव पड़ता है?
यह शेयरों की संख्या को चार गुना कर देता है और कीमत को चार से विभाजित कर देता है; पोजीशन का कुल मूल्य अपरिवर्तित रहता है। CRWD, 2 जुलाई: बुधवार को बिना एडजस्ट किया गया $772.45 क्लोजिंग, गुरुवार को $193.67 — किसी भी ऐसे स्क्रीनर पर जो स्प्लिट को छोड़ देता है, यह एक दिखावटी गिरावट है।
2 जुलाई, 2026 को बिड-आस्क स्प्रेड (bid-ask spreads) कितना अधिक था?
रेगुलर आवर्स के दौरान SPY का मीडियन कोटेड स्प्रेड मिड-प्राइस का 0.27 बेसिस पॉइंट्स था — चौड़ाई के मामले में यह पिछले 22 सत्रों का 11 है, जो एक सामान्य दिन है। व्यक्तिगत शेयरों का स्प्रेड अधिक था: MU 5.52 bps, WDC 10.79।
डेटा नोट्स
- Dollar volume एक प्रति-मिनट प्रॉक्सी है — close × volume, जिसे प्रति बार (bar) जोड़ा जाता है।
- July 2 का treasury print पहली बार प्रकाशन के बाद आया — मूल नोट में row-count receipt के माध्यम से इसकी अनुपस्थिति बताई गई थी; इस संशोधन में print शामिल है, receipt यहाँ दिखाया गया है।
- CRWD का raw close change एक split artifact है — इसे mover screens से बाहर रखा गया है।
Full data notes
- सेक्टर बोर्ड में eleven SPDR Select Sector funds (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY) शामिल हैं — यह एक निश्चित, घोषित बास्केट है, न कि vendor sector field।
- Quote-tape counts को SIP timestamp की UTC तिथि के आधार पर वर्गीकृत किया जाता है; एक summer session एक UTC दिन के भीतर आता है।
- एक reused-symbol June listing को leaderboards से बाहर रखा गया है (receipts); विस्तृत विश्लेषण (forensic tick work) deep-dives में उपलब्ध है।
कार्यप्रणाली
- यह अवधि एक ट्रेडिंग सत्र (अवलोकित बार्स से सत्यापित 1 सत्र) है। टाइमस्टैम्प UTC में संग्रहीत हैं और क्वेरी के भीतर न्यूयॉर्क समय में परिवर्तित किए जाते हैं; "close" का अर्थ नियमित सत्र का अंतिम मिनट बार है, और दिन का परिवर्तन 2 जुलाई की तुलना 1 जुलाई से करता है। 3 जुलाई के क्लोजर को बार्स से सत्यापित किया गया है, इसे कभी भी अनुमानित नहीं माना गया है।
- स्प्रेड्स (ask माइनस bid) को मिड-प्राइस के बेसिस पॉइंट्स में उद्धृत किया जाता है, जो नियमित घंटों के NBBO अपडेट के माध्यम से एक नियतात्मक क्वांटाइल पर मीडियन है। अनुपात अंकगणित से पहले डेसिमल्स को फ्लोट्स में बदल दिया जाता है; ऑप्शन एक्सपायरी को OCC टिकर से पुन: पार्स किया जाता है। प्रत्येक पैनल को लेखक के समय में, गेटेड रीड-ओनली पाथ के माध्यम से एक बार पढ़ा जाता है।
चार्ट, टेबल और SQL एक ही ऑब्जेक्ट हैं। किसी भी पैनल को Strasmore टर्मिनल में पेस्ट करें और उसे अपनी इच्छानुसार उपयोग करें। पिछला सत्र: 1 जुलाई। सप्ताह: चार-सत्र वाला हॉलिडे सप्ताह।