2026년 7월 7일 시장 요약
반도체 급락 속 NVDA는 상승했습니다. 하락 종목이 상승 종목보다 두 배 많았으며 SPY의 스프레드는 한 달 만에 가장 좁았습니다.
2026년 7월 7일 화요일은 월요일의 재개장 상승분을 모두 반납하고 추가 하락을 기록했습니다. QQQ는 -1.82%로 마감하며 DIA의 -0.29% 대비 월요일의 상승분을 모두 상쇄했습니다. 시장 내부를 살펴보면 하락 종목이 4034개, 상승 종목이 2091개로 이 대 일의 하락 우위 장세를 보였습니다. 이날의 핵심은 지수 규모의 수 배에 달하는 반도체 섹터의 급락이었으며, 해당 섹터의 대형주 중 하나가 하락에서 제외되었습니다. 아래의 모든 수치는 저장된 쿼리에서 추출되었습니다. 정확한 SQL을 확인하려면 각 패널을 확장하십시오.
전광판
모든 변동률은 7월 7일 정규장 마지막 분 단위 바를 7월 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-06 13:30:00' AND window_start < '2026-07-06 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-07 13:30:00' AND window_start < '2026-07-07 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_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
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.tickerQQQ의 -1.82%가 4대 index ETF(지수 상장지수펀드) 중 가장 큰 하락을 기록했습니다. SPY는 -0.48%, IWM은 -0.9%로 마감했으며, DIA의 -0.29%이 가장 완만한 변동을 보였습니다. Gap-versus-grind(갭과 변동폭의 차이) 지표는 개장 시 시장의 양극화를 보여줍니다. QQQ의 overnight gap(밤사이 가격 차이)은 -1.17%이었고, 개장 후 종가까지의 grind(지속적 변동)는 -0.65%였습니다. 즉, 갭에 의한 하락이 대부분을 차지했습니다. 반면 DIA는 0.47%만큼 상승 갭을 형성했음에도 불구하고, 개장 후 종가까지의 움직임이 -0.76%을 기록하며 결국 하락 마감했습니다. 주도주 양상은 목요일 이후 매 세션마다 바뀌었습니다. 목요일은 DIA가, 월요일은 QQQ가, 화요일은 다시 DIA가 시장을 주도했습니다.
시장의 변동성이 이례적이었는가?
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-07'))) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ') AS qqq_sessions_compared,
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-07'))) + 1 AS spy_abs_move_rank,
countIf(ticker = 'SPY') AS spy_sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT ticker, d,
(close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct,
oc_pct
FROM (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close_px,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2026-06-04 00:00:00')
AND window_start < toDateTime('2026-07-08 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)
WHERE isFinite(cc_pct)지수 수준에서는 특별히 그렇지 않았다. QQQ의 -1.82% 전일 대비 종가 변동폭은 절대값 기준으로 지난 21 거래일 중 9 순위에 해당한다. SPY의 시가 대비 종가 변동폭인 -0.34%는 지난 21 중 15 순위이다. 6월 말의 복합적인 변동성을 포함한 지난 한 달간의 흐름이 기준치가 매우 높았다. 7월 7일의 특징은 내부 종목 간의 변동성 확산(dispersion)에 있었다.
시장 폭: 상승 종목보다 하락 종목이 두 배 더 많음
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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
FROM per_ticker
WHERE prior_close > 0 AND day_close > 02091 상승, 4034 하락, 59 보합 — 유동성 테이프(liquid tape)의 33.8%가 상승했으나, 월요일의 상승세는 반전되었습니다. 필터링 결과, 거래 대금이 100만 달러 미만인 11460 종목 중 5276의 11460 이중 세션 티커(dual-session tickers)가 집계되었습니다.
반도체 섹터 약세 — 주요 대형주 제외
매도세가 반도체 분야에 집중되었습니다. 반도체 제조사, 장비 공급사, 관련 저장 장치 기업, 그리고 이를 기초 자산으로 하는 레버리지 ETF가 모두 포함되었습니다. 아래에 상관관계와 변동 폭을 기록하였으나, 데이터만으로는 하락 원인을 알 수 없습니다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-07 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-07 00:00:00') AS day_low,
argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS low_bar,
argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York')) AS high_minute_et,
toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerTeradyne (-9.63%)과 Intel (-9.59%)은 가치의 약 10%를 상실했으며, Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%), AMD (-6.41%)가 그 뒤를 이었습니다. 월요일에 반등했던 메모리 및 저장 장치 종목들은 다시 하락했습니다. SanDisk -7.1%은 10.36% 범위 내에서 변동하였고, Western Digital -7.81%, Seagate -4.84%, MU -4.61%도 하락했습니다. 특히 MU는 다른 세 저장 장치 기업의 합계보다 많은 $41.6 billion 규모의 주식 거래를 기록했습니다 ([[mu-june-2026-deep-dive|MU 심층 분석]에서 관련 배경 확인 가능]).
섹터 내 두 거대 기업은 영향을 받지 않았습니다. NVDA는 0.67%에서 상승 마감했으며, Broadcom은 -0.83% 부근에서 보합세로 마감했습니다. 이는 대형주를 제외한 섹터 전반의 하락장이었습니다 (NVDA 6월 심층 분석).
하락 시점은 동시다발적이었습니다. TER, LRCX, MU가 동부 표준시 기준 10:41, 10:41, 10:41에 장중 저점을 기록했습니다. SanDisk, Marvell, KLA, AVGO, SOXL도 같은 시간대에 저점을 형성했습니다(패널에 각 시간 기록 포함). 반면 3배 인버스 반도체 ETF인 SOXS는 10:42에 장중 고점을 기록하며 반대로 움직였습니다. Intel은 다른 종목들이 안정화된 후에도 계속 하락하여 15:18에 저점을 찍었습니다. 레버리지 상품은 이러한 변동 폭을 반영했습니다. SOXL은 -15.15%을 기록한 반면, SOXS는 +15.87%를 기록했습니다.
시장의 다른 측면
이-대-일의 하락세 속에서도 세 번째 지표는 상승했습니다. 반도체주가 하락하는 동안 상승한 종목은 다음과 같습니다:
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close_raw,
toFloat64(argMinIf(open, window_start, window_start >= '2026-07-07 00:00:00')) AS day_open_raw,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close_raw,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('CRNX', 'CVX', 'JNJ', 'LLY', 'META', 'TSLA', 'UNH', 'XOM')
AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close_raw, 2) AS prior_close,
round(day_open_raw, 2) AS day_open,
round(day_close_raw, 2) AS day_close,
round((day_open_raw / prior_close_raw - 1) * 100, 2) AS gap_pct,
round((day_close_raw / day_open_raw - 1) * 100, 2) AS intraday_pct,
round((day_close_raw / prior_close_raw - 1) * 100, 2) AS pct_chg,
day_dollar_bn
FROM per_name
ORDER BY ticker에너지와 헬스케어 섹터가 상승을 주도했습니다: Exxon +3.78%, Chevron +3.47%, Johnson & Johnson +3.07%, Eli Lilly +2.75%, UnitedHealth +2.41%. 이 패널에 포함된 두 개의 대형주(megacaps)는 희비가 엇갈렸습니다: META는 +2.52% 상승했으나, TSLA는 월요일의 일방적인 상승분 대부분을 반납하며 -4.02%에 마감했습니다. 그리고 이번 시장에서 가장 눈에 띄는 개별 종목은 Crinetics Pharmaceuticals (CRNX)였습니다. 이 종목은 $4.19 billion의 거래량을 기록하며 +98.79%로 마감하여 거의 두 배 가까이 상승했습니다. 이러한 변동은 대부분 장 시작 전 갭(98.91%)으로 발생했으며, 정규장에서의 변동폭은 -0.06%에 불과했습니다. 이는 장전 거래(pre-market trades)에서 발생하는 전형적인 가격 재산정 사례입니다. 데이터상으로는 구체적인 원인이 나타나지 않았습니다.
거래 집중 종목
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT leaderboard, ticker, dollar_volume_bn, 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(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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이 $41.6 billion을 기록하며 달러 거래량을 주도했습니다. 1위 자리를 내준 지 단 한 세션 만에 다시 탈환했습니다. SPY ($28.68 billion)과 QQQ ($26.54 billion)이 그 뒤를 이었으며, 세 개의 반도체 종목인 NVDA ($19.95 billion), SNDK ($19.73 billion), INTC ($13.82 billion)이 상위 6개 종목의 나머지를 채웠습니다. 개별 종목의 거래 집중도는 상대 거래량(relative volume) 지표로 확인할 수 있습니다.
주식 거래 현황을 살펴보면, SOXS은 566.3 million 주가 거래되었습니다. 3배 인버스 반도체 ETF가 3거래일 연속 거래량 1위를 기록했습니다 (월요일과 목요일 기록 포함). 이번에는 해당 섹터가 하락한 날에 기록되었습니다. CPOP은 반대의 사례를 보여줍니다. 161.3 million 주의 거래 대금은 단 $0.02 billion에 그쳤습니다. 거래량이 적은 저가주는 거래 대금이 낮게 나타납니다. 기준: 7월 7일 정규 거래 시간; 기업 확인 중인 중복 심볼 상장 종목 1개 제외 — 해당 내역.
세션의 흐름
모든 수치 뒤에 숨겨진 정확한 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time장 초반 30분 동안 2 billion 주가 거래되었으며, 13:30에서 0.64 billion 주로 저점을 기록했습니다. 이후 15:30 종가까지 2.14 billion 주가 거래되며, 종가에 거래량이 가장 많은 전형적인 스마일 패턴을 보였습니다.
The options tape
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
(
SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))
FROM (
SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,
sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,
if(substring(ticker, length(ticker) - 14, 6) = '260707', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
GROUP BY ticker
ORDER BY vol DESC
LIMIT 2
)
) AS top2,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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) = '260707') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707')) / 1e6, 2) AS same_day_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,
round(toFloat64(sumIf(size, underlying_symbol = 'INTC')) / 1e6, 2) AS intc_contracts_m,
top2.1[1] AS top_contract_underlying,
top2.2[1] AS top_contract_strike,
top2.3[1] AS top_contract_type,
if(top2.3[1] = 'C', 1, 0) AS top_contract_is_call,
top2.4[1] AS top_contract_volume,
top2.5[1] AS top_contract_avg_price,
round(top2.2[1] - spy_regular_close, 2) AS top_strike_minus_spy_close,
top2.1[2] AS second_contract_underlying,
top2.2[2] AS second_contract_strike,
top2.3[2] AS second_contract_type,
if(top2.3[2] = 'P', 1, 0) AS second_contract_is_put,
top2.4[2] AS second_contract_volume,
top2.5[2] AS second_contract_avg_price,
round(spy_regular_close - top2.2[2], 2) AS spy_close_minus_second_strike,
top2.6[1] + top2.6[2] AS both_top_contracts_same_day,
spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'Options traded 61.13 million contracts across 10.6 million prints — a tape the size of Monday's — and calls still took 55.6% of the volume on a red day. Same-day expiries were 31.2% of the tape (19.08 million contracts) — the 0DTE share of an ordinary Tuesday. The day's two busiest contracts bracketed the close, both same-day SPY strikes: the $749 call (873438 contracts at an average $0.647) finished $1.34 out of the money, and the $747 put (785834 contracts at $0.88) finished $0.66 out the other side. SPY's 747.66 close landed between the day's two biggest bets, and both expired worthless.
호가 테이프
이 페이지의 모든 가격 아래에는 호가 스트림이 존재한다. 이는 모든 상장 종목에 대해 지속적으로 재호가되는 NBBO(National Best Bid and Offer, 최우선 매수 및 매도 호가)이며, 이 데이터 창고에서 가장 확보하기 어려운 데이터셋이다. 이곳에서는 일반적인 거래일이든 아니든 매 세션마다 이를 측정한다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / countIf(toDate(sip_timestamp) = toDate('2026-07-06')) - 1) * 100, 1) AS day_over_day_pct,
toHour(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) * 60
+ toMinute(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) AS jul7_last_quote_et_minute,
round(countIf(sip_timestamp >= '2026-07-07 19:00:00' AND sip_timestamp < '2026-07-07 20:00:00') / 1e6, 2) AS jul7_close_hour_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'7월 7일 주식 테이프는 492.76 million 건의 NBBO 업데이트를 기록했다. 이는 월요일의 391.96 million 건보다 25.7% 많은 수치이다. 호가 폭이 넓어진 것이 아니라, 재호가 횟수가 증가한 것이다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
ticker,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 2) AS pocket_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS midday_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00')
- quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS spread_delta_bps,
round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_updates_k,
round(countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_updates_k,
round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 1) AS quote_rate_ratio,
round(count() / 1e6, 2) AS session_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AMD', 'INTC', 'MU', 'NVDA', 'QQQ', 'SNDK', 'SOXL', 'SOXS', 'SPY', 'WDC')
AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
GROUP BY ticker
ORDER BY ticker장 초반 저점 구간에서 확인된 종목들의 재호가 빈도는 정오 시점의 수배에 달했다. MU는 3.4배, SanDisk는 4.1배, AMD는 4.6배였다. 하지만 bid-ask spread(매수-매도 스프레드)는 거의 변하지 않았다. MU의 중앙값 폭은 저점 구간에서 5.02 bps였으며, 정오에는 4.81였다. NVDA는 1.04 대 1.01였으며, SPY는 전혀 움직이지 않았다(0.27 bps의 접점 대비 0 bps 변화). 실질적인 스프레드 비용을 발생시킨 두 종목은 AMD(+2.6 bps)와 Intel(+0.95)였다. Intel은 저점 구간 이후에도 계속 하락한 유일한 종목이었다. 반면 레버리지 쌍은 저점에서 오히려 축소되었다(SOXL -2.59 bps, SOXS -1.49). 유동성 공백은 넓은 호가와 거래 침체로 나타나지만, 이번 상황은 그 반대였다. 즉, 호가 폭은 유지된 채 재호가가 폭주하는 상황이었다. 그럼에도 불구하고 체결 비용은 종목마다 달랐다. SOXS는 저점에서 19.59 bps의 폭을 보였으나, NVDA는 1.04였다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
round(anyIf(avg_spread_cents, d = toDate('2026-07-07')), 3) AS jul7_avg_spread_cents,
arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-07')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-07'))) + 1 AS tightness_rank,
count() AS sessions_compared,
round(min(avg_spread_cents), 3) AS tightest_session_cents,
round(max(avg_spread_cents), 3) AS widest_session_cents,
toString(min(d)) AS first_session,
sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime('2026-06-05 00:00:00')
AND sip_timestamp < toDateTime('2026-07-08 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
)이 섹션은 매 세션마다 일반적인 확인 절차를 거친다. 업데이트 가중 평균 호가 스프레드를 기준으로, 7월 7일은 SPY의 지난 한 달 중 가장 좁은 세션이었다. 정오의 가장 넓은 폭인 2.865 cents와 비교했을 때, 1.809 cents로 전체 21개 중 1위를 기록했다. 두 대 일의 하락장(red tape)이 한 달 중 가장 좁은 지수 접점에서 발생했다는 사실은 오직 호가 스트림을 통해서만 확인할 수 있다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
(
SELECT count()
FROM global_markets.cache_options_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_option_rows,
(
SELECT count()
FROM global_markets.cache_options_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260706
) AS jul6_option_rows,
(
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_stock_quote_rows
SELECT
jul7_option_rows AS jul7_option_quote_rows,
round(jul7_option_rows / 1e9, 2) AS jul7_option_quote_updates_bn,
round(jul6_option_rows / 1e9, 2) AS jul6_option_quote_updates_bn,
round((jul7_option_rows / jul6_option_rows - 1) * 100, 1) AS day_over_day_pct,
round(jul7_stock_quote_rows / 1e6, 2) AS jul7_stock_quote_updates_m,
round(jul7_option_rows / jul7_stock_quote_rows, 1) AS jul7_option_to_stock_ratio옵션 호가 스트림은 규모가 훨씬 더 크며, 이 데이터 창고에서 가장 큰 데이터셋이다. 7월 7일에는 8.69 billion 건의 옵션 NBBO 업데이트가 발생했으며, 이는 같은 날 전체 주식 호가 테이프 규모(492.76 million 업데이트)의 17.6배에 달한다. 월요일 옵션 테이프는 6.49 billion 건을 기록했으므로, 주식 스트림의 25.7% 증가와 함께 옵션 스트림은 세션 대비 34% 증가했다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
(
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_stock_quote_rows,
(
SELECT round(toFloat64(avg(close)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-07 14:36:00' AND window_start < '2026-07-07 14:48:00'
) AS spy_pocket_price,
(
SELECT round(toFloat64(avg(close)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-07 17:30:00' AND window_start < '2026-07-07 17:42:00'
) AS spy_midday_price
SELECT
round(count() / 1e6, 2) AS spy_option_updates_m,
round(100.0 * count() / jul7_stock_quote_rows, 1) AS pct_of_whole_equity_quote_tape,
uniqExact(ticker) AS spy_contracts_quoted,
round(countIf(substring(ticker, -15, 6) = '260707') / 1e6, 2) AS same_day_updates_m,
spy_pocket_price AS spy_price_in_pocket,
spy_midday_price AS spy_price_midday,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
bid_price > 0 AND ask_price >= bid_price
AND substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 3) AS pocket_atm_spread_dollars,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
bid_price > 0 AND ask_price >= bid_price
AND substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 3) AS midday_atm_spread_dollars,
round(pocket_atm_spread_dollars - midday_atm_spread_dollars, 3) AS atm_spread_delta_dollars,
round(countIf(substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_atm_updates_k,
round(countIf(substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_atm_updates_k,
round(pocket_atm_updates_k / midday_atm_updates_k, 1) AS atm_quote_rate_ratio,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)
AND substring(ticker, -15, 6) = '260707') AS dropped_invalid_same_day_quotes
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
HAVING pocket_atm_updates_k > 0 AND midday_atm_updates_k > 02026년 만기 계약만으로도 정규장에서 327.55 million 건의 업데이트가 발생했으며, 이는 9116개의 상장 계약에 분산되어 있었다. 이는 단일 기초 자산으로부터 발생한 수치로, 같은 날 전체 주식 시장이 호가를 제시한 양의 66.5%에 해당한다. 0DTE 테이프를 형성하는 당일 만기 계약은 그중 13.61 million 건을 차지한다.
장 초반 12분간의 유동성 공백 구간 동안, ATM(at-the-money, 등가격) 근처의 당일 만기 계약은 중앙값 $0.01의 폭을 보였으며, 이는 정오의 통제된 폭($0.01, 델타 0)과 정확히 일치했다. 해당 구간의 호가 속도는 3배였다. 저점에서의 업데이트는 191.1 thousand 건이었고, 점심 시간대에는 64 thousand 건이었다. 옵션 접점은 주식 접점과 동일한 양상을 보였다. 재호가 엔진이 과열되는 상황에서도 호가 폭을 유지했다. ATM은 해당 시간대 SPY 평균 가격의 $2 이내에 있는 행사가를 의미하며, 패널에는 두 가격이 모두 표시된다(저점 구간 746, 정오 749.08).
금리: 성장주 매도세와 함께 국채 금리 상승
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul7_yield_pct,
round((t.2 - t.3) * 100) AS session_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-07') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS p
)성장주 매도세와 함께 국채 금리가 상승했습니다. 1년 만기 금리는 11 basis point(bp, 0.01%p) 상승하여 4.06%가 되었고, 10년 만기 금리는 7에서 4.55%로, 30년 만기 금리는 6에서 5.05%로 상승하며 5% 선을 넘어섰습니다. 2s10s spread(2년물과 10년물 금리 차이)는 0.36 percentage point(퍼센트포인트)를 유지했습니다(1 bp 변동). 이는 수익률 곡선의 형태가 변하는 것이 아니라 대부분 평행하게 이동한 결과입니다.
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-07'
) AS news,
(
SELECT (argMax(t, n), max(n), max(n) - arraySort(x -> -x, groupArray(n))[2])
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-07'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-07') AS ex_dividend_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS splits_executed,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-07') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS filings_8k,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
if(top_news.1 = 'NVDA', 1, 0) AS most_covered_is_nvda,
top_news.2 AS most_covered_articles,
top_news.3 AS most_covered_lead_over_next,
(SELECT countIf(has(tickers, 'CRNX')) FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07') AS crnx_articles79 dividend records went ex-dividend, 7 splits executed — 5 of them reverse splits, the sub-dollar consolidations that fake triple-digit "gains" on an unadjusted tape, against 2 forward — and 1 new listing arrived. The SEC index logged 2433 filings: 463 Form 4s, 173 8-Ks. Our news feed carried 215 articles from 3 publishers; the most-covered name was NVDA at 17 articles, 4 clear of the next name — the same NVDA that closed green through its sector's red day. The feed carried 0 articles on CRNX, the tape's loudest gainer — one feed's attention, not the world's media.
세션 확인 완료
모든 수치 뒤에 숨겨진 정확한 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-07') AS jul7_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 00:00:00' AND window_start < '2026-07-08 00:00:00'7월 7일은 조기 종료가 아닌 전체 세션이었습니다. SPY의 바(bar)는 뉴욕 시간 기준 04:00부터 19:59까지 이어지며, 정확히 390개의 정규 거래 시간 바가 생성되었습니다. 해당 날짜의 휴장표에는 0개의 행이 포함되어 있습니다. 다음 예정된 시장 종료 시간은 Labor Day, 2026-09-07입니다.
데이터 참고 사항
- Dollar volume(달러 거래대금)은 분당 대리 지표임 — 정규 거래 시간 동안 분 단위 봉의 종가와 거래량을 곱한 값을 합산함.
- Gap-versus-grind(갭 대 지속성) 분리는 각 종목의 정규 세션 첫 번째 봉(시가)과 전 거래일의 마지막 정규 종가를 기준으로 측정함; 나머지는 7월 7일 내의 시가 대비 종가임.
- 동기화된 오전 저점은 작성 시점의 인접한 봉들과 교차 검증됨 — 각 저점은 단일 체결가가 아닌 인접한 분 단위 데이터로 추적됨; 이상치로 분류된 항목은 없음. 여러 분 단위 봉에서 극단값이 나타나는 경우, 패널에는 가장 먼저 나타난 봉을 표시함(결정론적 동점 처리).
- 중복 사용된 심볼 목록 하나는 실체 확인이 완료될 때까지 거래대금 순위와 뉴스 호출에서 제외됨; 해당 게시물에 증빙 자료가 포함되어 있음.
- Quoted-spread(호가 스프레드) 통계는 유효하지 않은 호가를 제외함 (한쪽 방향 또는 교차된 NBBO 기록); 각 스프레드 패널은 제외된 항목을 별도의 열에 표시함. "Update-weighted average spread(업데이트 가중 평균 스프레드)"는 모든 유효한 NBBO 업데이트의 호가 폭을 평균한 값임; 거래당 비용이 아닌 호가 통계임.
- 7월 7일 옵션 호가는 이 게시물이 처음 발행된 이후에 수집됨.
cache_options_quotes은 데이터 저장소의 수집 지연이 가장 길기 때문에, 초판 발행 당시 옵션 호가 패널 위치에는 데이터가 없는 zero-row 상태였음. 데이터가 수집되었으나 재생성 과정에서 zero-row 경계 오류가 발생하였으며, 본 수정본은 해당 세션의 8.69 billion 건의 업데이트를 반영함. 주식 호가 테이프는 처음부터 완전했음: 7월 7일 마지막 업데이트는 동부 표준시 기준 1199 분에 기록되었으며, 마지막 정규 시간 동안 77.13 million 건의 업데이트가 발생함(quote-tape 패널의 수집 열 참조). - 옵션 호가 폭은 At-the-money(ATM, 등가격) 근처에서 측정됨. 당일 상장된 모든 계약에 대한 업데이트별 중앙값은 복합 통계임: Deep in-the-money(ITM, 깊은 내가격) 계약은 달러 단위의 폭을 나타내고, Far out-of-the-money(OTM, 깊은 외가격) 계약은 센트 단위의 폭을 나타내며, 어떤 계약이 세션 동안 재호가되는지를 포함함. Pocket-versus-midday(장 초반 대비 정오 비교)는 각 구간에서 SPY의 평균 가격과 $2 이내인 행사가로 제한되며, 두 가격 모두 패널의 열로 표시됨. 유효하지 않은 옵션 호가(한쪽 방향 또는 교차)는 조용히 제외되지 않고 해당 패널에 집계됨.
- 7월 7일 국채 데이터는 세션 종료 후 수집됨 — 초판에는 지연 공시된 데이터가 포함되었음; 데이터가 도착한 7월 8일에 트리거가 작동되었으며, 본 수정본은 실제 곡선을 반영함.
방법론
- 분석 기간은 단일 거래 세션(관측된 봉과 공휴일 달력을 통해 검증된 1 세션이며, 임의로 가정하지 않음)입니다. 타임스탬프는 UTC(협정 세계시)로 저장되며, 쿼리 내부에서 뉴욕 시간으로 변환됩니다. "종가"는 정규 세션의 마지막 분 단위 봉을 의미합니다. 일별 변동은 7월 7일과 7월 6일이라는 연속된 거래 세션을 비교하여 산출합니다.
- 소수점 열은 비율 연산을 수행하기 전 64비트 부동 소수점으로 변환됩니다. 옵션 만기일은 OCC(옵션 거래소) 티커를 통해 다시 파싱합니다(테이블 자체의 만기 열은 오류가 있음). 모든 패널은 작성 시점에 제한된 읽기 전용 경로를 통해 한 번만 읽어옵니다. 데이터 웨어하우스 상태는 2026년 7월 8일 기준입니다.
- Quote-tape(호가-체결) 섹션은 7월 8일 수정본에서 추가되었습니다(국채 지연 수령을 landed print로 교체한 것과 동일한 수정본임). 옵션 호가 패널은 7월 7일의 옵션 NBBO(국가 최선 호가) 행이 생성된 후 한 번 다시 작성되었습니다. 생성 방식은 설계상 배치 작업입니다. SPY 옵션 호가 패널은 수억 개의 NBBO 레코드를 스캔하며, tape-size(체결 규모) 카운트는 일별 파티션의 행 총계를 읽습니다. 이를 통해 세션당 수십억 개의 행을 보유한 테이블이 1초 미만으로 카운트 결과에 응답할 수 있습니다.
모든 패널은 저장된 쿼리 결과이며 차트, 테이블, SQL은 하나의 객체입니다. 이를 Strasmore 터미널에 붙여넣어 자유롭게 활용하십시오. 이전 세션: 7월 6일.