2026년 7월 2일 시장 요약
독립기념일 전 순환매 발생. Nasdaq 하락 속 시장 폭은 긍정적이며 기술주와 메모리 섹터가 약세를 보였습니다.
2026년 7월 2일 목요일 — 독립기념일 휴장을 앞둔 마지막 거래일 — 은 매도세가 나타난 듯 보였으나 실제로는 업종 간 순환매가 발생한 날이었다. QQQ는 -1.71%를 기록한 반면 DIA는 1.04% 상승했으며, 시장 폭(breadth)은 POSITIVE(긍정적)였다: 3398개의 유동성 종목이 상승했고, 성장 지수가 하락하는 동안 2758 대비 54.6%의 종목이 상승 마감했다. 11개 섹터 펀드 중 8개가 상승 마감했다. 매도세는 기술주와 전날 무너졌던 메모리 관련주에 집중되었다.
시장 지표
모든 수치 뒤에 숨겨진 정확한 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(Nasdaq 100 ETF)는 -1.71%를 기록했습니다. 산업재와 성장주 간의 일일 수익률 차이는 약 3포인트입니다. SPY(S&P 500 ETF)는 그 중간값인 -0.12%로 마감했습니다. IWM(Russell 2000 ETF)은 -0.59%로 마감했습니다.
이날은 이례적인 날이었습니까?
한 패널에 담긴 두 가지 관점: SPY의 시가 대비 종가 변동과 QQQ의 전일 종가 대비 종가 변동을 각각 절대적 크기에 따라 지난 한 달간의 데이터와 비교하여 순위를 매겼습니다 (순위 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는 변동성이 더 컸으나 여전히 극단적인 수준은 아니었습니다. QQQ의 -1.71% 전일 종가 대비 종가 변동은 이전 종가가 정의된 21 거래일 중 9위를 기록했으며, 이는 2026-06-02일 전까지의 데이터와 비교했을 때 성장주 지수로서 중간 수준의 부진한 날이었습니다. 개별 종목의 움직임은 7월 2일에 매우 두드러졌습니다.
시장 폭: 상승 종목 우세, 성장 지수는 하락
모든 수치 뒤에 숨겨진 정확한 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개 상승, 2,758개 하락, 63개 보합 — QQQ가 하락하는 동안 거래량이 많은 종목의 54.6%가 상승했습니다. 시가총액 가중 지수와 동일 가중 폭 지수는 서로 다른 결과를 보였습니다. 이러한 날 때문에 두 지수 모두 변동성 경고가 발생합니다. 필터링을 통해 거래 대금이 100만 달러 미만인 11,536개 종목 중 5,317개의 양방향 세션 티커를 제외했습니다.
섹터별 분석: 상승 종목의 분포
상승 종목의 수는 중요하지만, 어떤 종류인지는 나타내지 않습니다. 11개의 SPDR(Standard & Poor's Depositary Receipts) 섹터 ETF(Exchange Traded Fund)를 산업별로 분석한 결과, 최상위 섹터와 최하위 섹터 사이의 격차가 당일의 분산도를 나타냅니다.
모든 수치 뒤에 숨겨진 정확한 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 ticker헬스케어(XLV)가 2.63%로 가장 높은 상승률을 기록했습니다. 이어 유틸리티 2.23%, 필수 소비재 2%, 소재 1.94% 순이었습니다. 기술주(XLK)는 -2.71%로 가장 낮은 상승률을 보이며 유일하게 1포인트 이상 하락했습니다. 경기 소비재(-0.81%)와 통신 서비스(-0.13%)도 하락세를 보였으며, 나머지 8개 섹터는 상승했습니다. 최상위와 최하위 섹터 간의 분산도는 5.34 퍼센트 포인트였습니다. DIA(Dow Jones Industrial Average)는 상승하고 QQQ(Invesco QQQ Trust)는 하락하는 양상이 대형주 몇 개에 국한되지 않고 시장 전반에 나타났습니다. 따라서 Nasdaq이 하락하더라도 상승-하락선(advance-decline line)이 상승하는 것은 모순이 아닙니다.
The day's highlight: memory rout, day two
The complex that broke Wednesday fell harder Thursday — magnitude and co-movement, not cause.
모든 수치 뒤에 숨겨진 정확한 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 printed -14.32%, Seagate -10.38%, Western Digital -9.92%, MU -5.57% — on $51.4 billion of MU turnover, roughly one-and-a-half times SPY's. MU and SanDisk printed their lows late (15:26, 15:26 ET), Seagate and Western Digital earlier (14:23, 13:59). Context: Wednesday and the MU deep-dive.
The rotation's other half, in the megacaps:
모든 수치 뒤에 숨겨진 정확한 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 rose 4.75% in a one-way line — low at 09:30 ET, high at 15:57, three minutes before the close — while TSLA ran the mirror image at -7.65%. MSFT added 1.41%; NVDA closed -1.55%. Same index, opposite days.
거래 대금 현황
모든 수치 뒤에 숨겨진 정확한 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) DESCMU의 $51.4 billion이 SPY의 $32.7 billion을 앞서며 4거래일 연속 거래 대금 1위를 기록했습니다 (월요일, 화요일, 수요일). SanDisk의 $26.57 billion이 상위 4개 종목 중 두 번째 메모리 관련 종목으로 이름을 올렸습니다. 3배 인버스 semiconductor ETF인 SOXS는 748.2 million으로 주식 거래량 부문 1위를 차지했습니다. 저가주는 주식 수 기준, 고가주는 거래 대금 기준으로 순위를 매기며, relative volume|상대 거래량은 해당 종목의 평소 거래량과 비교한 수치입니다. 기준: 7월 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장 초반 30분 동안 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%는 같은 목요일에 만기가 도래했습니다. 7월 3일 만기 코드를 가진 계약은 하루 종일 단 한 건(0 체결)도 발생하지 않았습니다. 따라서 목요일은 일일 만기와 이동된 주간 만기가 동시에 발생하는 날이었습니다. 가장 거래가 활발했던 계약은 당일 만기인 SPY $740 풋옵션이었습니다. 평균 $0.499의 프리미엄으로 540,403 계약이 거래되었으며, SPY는 행사가보다 4.8달러 높은 가격에 마감하여 외가격(out of the money) 상태가 되었습니다. 이는 화요일과 수요일에 콜옵션이 우세했던 시장 상황에서 풋옵션이 상단에 위치했음을 의미합니다. 콜옵션은 여전히 전체 거래량의 58.4%를 차지했습니다. 다음 주간 만기물은 9.64백만 계약이 거래되었으며, 7월 월간 만기물은 8.82백만 계약(만기 메커니즘)이 거래되었습니다.
호가 테이프: 거래 비용의 실체
가격은 발생한 사건을 나타내며, 호가는 거래 비용을 나타냅니다. 매수-매도 스프레드(bid-ask spread)는 중간 가격 대비 베이시스 포인트(basis point, 1bp: 0.01%) 단위로 계산되는 모든 왕복 거래의 통행료입니다. 당사는 일반적인 거래일이든 그렇지 않든 매 세션마다 이를 측정하며, 이것이 "스프레드가 급등했다"는 주장이 검증 가능한 이유입니다.
모든 수치 뒤에 숨겨진 정확한 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'전국 최우선 매수-매도 호가(NBBO, National Best Bid and Offer) — 통합 호가창의 최상단 —는 7월 2일에 597.22 million 번 갱신되었습니다. 이는 7월 1일의 449.15 million 번보다 33% 증가한 수치로, 장 마감 시점에 급증했습니다. QQQ는 7.56 million 번으로 SPY의 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의 중앙값 스프레드는 0.27 basis points였습니다. 이는 $744.8 ETF 기준 약 2 센트 수준입니다. QQQ는 0.83 bps, NVDA는 1.03 bps를 기록했습니다. 거래 비용이 높은 종목들은 주로 하락세를 보였습니다. MU는 5.52 bps, SanDisk는 10.4 bps, Western Digital은 10.79 bps를 기록하며, SPY 스프레드의 40배에 달했습니다. 메모리 종목 바스켓을 거래하는 것은 가격 충격이 발생하기 전부터 인덱스를 거래하는 것보다 수배의 비용이 발생했습니다. 유효하지 않은 호가(단방향 또는 교차 호가)는 종목별로 집계되며 누락되지 않습니다.
모든 수치 뒤에 숨겨진 정확한 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_day유동성 측면에서 분석한 결과, 이날은 평이한 거래일이었습니다. SPY의 중앙값 스프레드인 0.27 bps는 지난 한 달간의 중앙값인 0.27 bps에서 0 bps 차이를 보였습니다. 이는 전체 세션 중 넓이 기준 11위(22)에 해당하며, 한 달 중 가장 넓었던 0.409 bps에는 미치지 못합니다. 상승장 속에서 발생한 집중적인 급락이 시장의 구조적 결함(plumbing)을 유발하지는 않았습니다.
금리: 7월 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_rows재무부 피드는 시장 가격보다 하루 이틀 늦게 업데이트됩니다. 처음 게시되었을 당시 7월 2일 종가 데이터는 기록된 행이 없었으며, 본 페이지는 추측하는 대신 해당 사실을 그대로 명시했습니다. 현재 데이터가 반영되었습니다. 7월 2일은 1행, 7월 1일은 1행이 기록되어 아래 표에 해당 세션의 수익률 곡선이 표시됩니다.
모든 수치 뒤에 숨겨진 정확한 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년물 금리는 4.49%였으며, 2s10s spread (2년물과 10년물 금리 차이)는 0.35포인트였습니다.
The calendar behind the day
모든 수치 뒤에 숨겨진 정확한 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 dividend records went ex-dividend, 2 new listings arrived (MIACU — Meridian3 Industrials Acquisition Corp.; VIIU — Viking Acquisition Corp. II), and the SEC index logged 5200 filings into the holiday — 2109 Form 4s, 258 8-Ks. The news feed carried 201 articles from 3 publishers (NVDA most-covered, 18 of them).
The splits trap anyone reading raw closes. CRWD ran a 4-for-1 forward split, so the unadjusted tape shows $772.45 on Wednesday and $193.67 on Thursday — a fake decline that is really four new shares for each old one. It was not alone: 8 split records executed, 5 forward and 3 reverse (the split_records column lists them), and a reverse split fakes the opposite artifact — a raw price that leaps overnight. Only 2 of those names traded on our tape; CRWD's $1473.51 million of turnover is the one big enough to contaminate a screen, and every mover screen here excludes it.
예정 사항
예측이 아닌 일정상의 사실 — 다음 세션에 대한 데이터 요약.
모든 수치 뒤에 숨겨진 정확한 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_days7월 6일 월요일 시장은 자체 캔들을 통해 확인된 전체 390-bar 세션으로 재개되었습니다. 해당 세션에는 118건의 배당락(ex-dividend) 기록이 포함되었으며, 조사 대상인 열 개 기업(JPM) 중 한 곳은 유명 기업입니다. 또한 15건의 주식 분할(split) 실행이 있었습니다. 다음 예정된 마감일은 Labor Day, 2026-09-07 (closed)입니다. 공매도 잔고(Short interest)는 여느 때와 같이 이미 알려진 정보입니다. 가장 최근 결제된 데이터는 2026-06-30, 2일 전의 것이며, 공시 시점은 결제일로부터 약 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'7월 2일은 조기 종료가 아닌 전체 세션이 진행되었습니다. SPY의 캔들은 뉴욕 시간 기준 04:00부터 19:59까지 이어졌으며 (장전 및 장후 캔들 포함), 정규 거래 시간 캔들은 정확히 390개였습니다. 7월 4일 독립기념일이 토요일이었기에, 7월 3일 금요일에는 SPY 캔들이 0개 기록되었습니다. 4개 세션으로 구성된 주간 요약: 주간 요약.
FAQ
2026년 7월 2일 Dow Jones Industrial Average(다우 존스 산업평균지수)는 상승한 반면 Nasdaq(나스닥)은 하락한 이유는 무엇입니까?
두 지수는 서로 다른 기업들을 포함하고 있습니다. DIA는 1.04%에 마감했고, QQQ는 -1.71%에 마감했습니다. 섹터 구성 또한 동일한 차이를 보입니다. 헬스케어, 유틸리티, 필수 소비재가 상위에 위치하며, 기술주는 -2.71%으로 가장 낮았습니다. 이는 최상위와 최하위 간에 5.34포인트의 격차가 발생한 것입니다.
독립기념일 주간의 금요일에 주식 시장이 개장했습니까?
아니요. 독립기념일이 토요일이었기 때문에, 거래소는 해당 세션 다음 날인 금요일에 전체 휴장을 실시했습니다. 데이터에 따르면 해당일의 SPY 분봉 데이터는 0입니다.
주식 액면 분할(stock split)은 주가에 어떤 영향을 미칩니까?
주식 수는 4배로 늘어나고 주가는 4분의 1로 줄어듭니다. 따라서 포지션의 가치는 변하지 않습니다. CRWD의 7월 2일 사례를 보면, 수요일 종가는 조정 전 기준 $772.45였으나 목요일에는 $193.67를 기록했습니다. 이는 액면 분할을 반영하지 않는 스크리너에서는 주가가 하락한 것처럼 보일 수 있습니다.
2026년 7월 2일 매수-매도 스프레드(bid-ask spread)는 얼마나 넓었습니까?
정규 거래 시간 동안 SPY의 중앙값 호가 스프레드는 중간 가격 대비 0.27 basis points(bp, 0.01% 단위)였습니다. 이는 지난 22개 세션의 스프레드 폭과 비교했을 때 11 수준으로 평범한 거래일이었습니다. 개별 종목의 스프레드는 더 넓었습니다. MU는 5.52 bps, WDC는 10.79를 기록했습니다.
데이터 참고 사항
- Dollar volume(달러 거래액)은 분당 대리 지표임 — 종가 × 거래량을 계산하여 각 봉(bar)별로 합산함.
- 7월 2일 국채 발행 데이터가 첫 게시 이후 추가됨 — 기존 노트는 행 수 영수증을 통해 해당 데이터의 부재를 명시했으나, 이번 수정본에는 해당 발행 데이터와 영수증이 포함됨.
- CRWD의 원시 종가 변동은 주식 분할에 따른 결과임 — 변동성 스크린에서 제외됨.
전체 데이터 참고 사항
- 섹터 보드는 11개의 SPDR Select Sector ETF(XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY)를 기준으로 함 — 이는 벤더의 섹터 필드가 아닌, 공개된 고정 바스켓임.
- Quote-tape(시세 테이프) 수량은 SIP 타임스탬프의 UTC 날짜를 기준으로 분류함; 여름 세션은 하나의 UTC 날짜 내에 포함됨.
- 재사용된 심볼인 6월 상장 건 하나는 리더보드에서 제외됨 (영수증); 상세 분석은 심층 분석 섹션에서 확인할 수 있음.
방법론
- 분석 기간은 한 거래 세션(관측된 바(bar)를 통해 확인된 1 세션)입니다. 타임스탬프는 UTC로 저장되며 쿼리 내부에서 뉴욕 시간으로 변환됩니다. "종가"는 정규 세션의 마지막 분 단위 바를 의미하며, 일자 변경은 7월 2일과 7월 1일을 비교합니다. 7월 3일 종가는 가정이 아닌 바를 통해 확인되었습니다.
- 스프레드(매도 호가와 매수 호가의 차이)는 중간 가격 대비 베이시스 포인트(basis points)로 표기되며, 정규 시간 NBBO(National Best Bid and Offer) 업데이트의 중앙값입니다. 소수점은 비율 산술을 위해 부동 소수점(float)으로 변환됩니다. 옵션 만기는 OCC 티커에서 다시 파싱됩니다. 모든 패널은 작성 시점에 제한된 읽기 전용 경로를 통해 한 번씩 읽힙니다.
차트, 표, SQL은 하나의 객체입니다. 어떤 패널이든 Strasmore 터미널에 붙여넣어 자유롭게 활용하십시오. 이전 세션: 7월 1일. 이번 주: 4거래일의 연휴 주간.