Strasmore Research
시장 요약 Matt Connor작성자 Matt Connor · 업데이트됨 2026-07-24

2026년 7월 8일 증시 요약

반도체주 반등에도 지수는 정체되었습니다. NVDA는 상승했으나 하락 종목이 상승 종목보다 두 배 이상 많았습니다.

2026년 7월 8일 수요일은 지수에 큰 영향을 주지 않은 단기적인 반도체 반등일이었다. SNDK는 +6.8%, AVGO는 +4.82%, NVDA는 +3.66%로 마감했다. 이는 화요일의 반도체 급락과는 대조적인 급격한 반전이었다. 그러나 지수 ETF(Exchange Traded Fund)는 변동이 없었다: SPY는 -0.31%, QQQ는 +0.25%를 기록했다. 전체 시장의 하락세는 전날보다 두 배가 넘는 수준이었다: 상승 종목은 1821개, 하락 종목은 4260개였으며, 전날 33.8% 이후 상승 종목 비중은 29.6%였다. 아래의 모든 수치는 저장된 쿼리에서 읽어온 것이다. 정확한 SQL을 확인하려면 각 패널을 확장하십시오.

스코어보드

모든 변동률은 7월 8일 정규장 마지막 분봉과 7월 7일 화요일의 연속된 거래 세션을 비교한 결과입니다. 행은 알파벳 순으로 나열되어 있어 각 ETF의 위치는 고정되어 있습니다.

조회SPY / QQQ / DIA / IWM — 7월 8일 vs 7월 7일 종가, 정규 거래 시간
모든 수치 뒤에 숨겨진 정확한 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-07 13:30:00' AND window_start < '2026-07-07 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-08 13:30:00' AND window_start < '2026-07-08 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
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker

네 개의 ETF는 개장 시 하락 갭(gap down)을 형성한 후 서로 다른 방향으로 움직였습니다. DIA는 전일 종가 대비 -0.97%로 거래를 시작했으나 추가 하락하며 -1.09%로 마감했습니다. IWM-0.73%로 시작하여 하락세를 유지하며 -0.92%로 마감했습니다. SPY-0.6%로 시작했으나 장중 회복세를 보이며 -0.31%로 마감했습니다. 개장 이후의 회복 폭이 하락 갭보다 작았습니다. QQQ-0.64%로 시작하여 종가 기준 +0.25%까지 반등하며, 네 개 중 유일하게 상승권에서 거래를 마쳤습니다.

이날은 이례적인 날이었습니까?

SPY(S&P 500 ETF)의 시가 대비 종가 변동폭은 0.29%로, 지난 22 거래일 중 16위를 기록했습니다. 이는 해당 지수에 있어 극단적인 수치가 아닌 중간 수준의 변동성을 보인 날이었습니다. QQQ(Nasdaq 100 ETF)의 전일 대비 종가 변동폭은 +0.25%로, 지난 22일 중 21위를 기록했습니다. 이는 QQQ의 저조한 실적과 일치하는, 지난 한 달간 가장 작은 변동폭 중 하나입니다.

조회SPY / QQQ 직전 추세 대비 일일 변동 (전일 대비 종가, 약 22거래일)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-08'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-08'))) + 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-05 13:30:00')
          AND window_start < toDateTime('2026-07-09 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)

시장 폭: 전일보다 더 심화된 two-to-one 하락세

조회유동성 테이프 폭: 7월 8일 상승 종목 비율 vs 7월 7일, $1M 거래 필터 적용
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS advancers,
    countIf(close_8 < close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS decliners,
    countIf(close_8 = close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS unchanged,
    countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS liquid_tickers,
    countIf(close_7 > 0 AND close_8 > 0) AS traded_both_sessions,
    countIf(close_7 > 0 AND close_8 > 0) - countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) / countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000), 1) AS advancer_pct,
    round(100.0 * countIf(close_7 > close_6 AND close_6 > 0 AND dv_7 >= 1000000) / countIf(close_7 > 0 AND close_6 > 0 AND dv_7 >= 1000000), 1) AS jul7_advancer_pct
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS dv_8,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS dv_7
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-08 20:00:00'
    GROUP BY ticker
)

상승 종목(1821)과 하락 종목(4260) 사이의 격차로 인해 상승 종목 비중은 29.6%를 기록했다. 이는 동일한 유동성 필터를 적용한 전 거래일의 33.8%보다 감소한 수치다. 양일 모두 종가가 존재하는 11439개 종목 중, 5284개 종목은 거래대금 100만 달러 미만 필터에 해당하여 집계에서 제외되었다. 반도체주 중심의 반등과 지수의 혼조세 마감에도 불구하고, 시장 전반의 흐름은 전일보다 더욱 균일하게 부정적인 모습을 보였다.

반도체 섹터, 대규모 거래량과 함께 강력한 반등 기록

행은 알파벳순으로 정렬되어 있어 각 종목의 위치가 고정되어 있습니다. 화요일과의 비교 수치는 아래 표 하단 영수증 블록에 있는 7월 7일 및 7월 6일 종가를 기준으로 새로 계산되었습니다.

조회14개 반도체 종목: 전일 종가, 당일 종가, 당일 변동폭, 달러 거래액, 분 단위 ET 저가/고가
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-08 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-08 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
        OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 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 - day_low) / prior_close) * 100, 2) AS range_pct,
    round(toFloat64(day_low), 2) AS day_low,
    round(toFloat64(day_high), 2) AS day_high,
    toUInt32(toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York'))) AS low_minute_et,
    toUInt32(toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York'))) AS high_minute_et,
    day_dollar_bn
FROM per_name
ORDER BY ticker

14개 반도체 종목 중 12가 상승 마감했습니다. 이는 14개 종목 중 12가 하락했던 화요일 세션과 반대되는 결과입니다. SNDK16.82B 달러의 거래량을 기록하며 +6.8%로 섹터 상승을 주도했으며, AVGO+4.82%로 그 뒤를 이었습니다. 나머지 스토리지 종목들도 STX +3.9%, WDC +3.45%로 상승세를 보였습니다. 3배 레버리지 ETF인 SOXL+5.79% 상승했고, 인버스 ETF인 SOXS-6.22% 하락했습니다. 이는 기초 자산인 반도체 섹터의 하루 만의 회복세와 일치하는 결과입니다. MU+1.11%로 완만한 상승을 보였으나, 거래 대금은 32.02B를 기록하며 해당 패널에서 가장 큰 거래량을 나타냈습니다. NVDA는 이틀 연속 상승하며 +3.66%로 마감했습니다. 이는 화요일의 급락장(+0.67%) 속에서도 상승 마감한 해당 패널 내 2개 종목 중 하나였습니다.

조회상승/하락 종목 수: 동일 14개 종목 기준 7월 8일 및 7월 7일
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    countIf(close_8 > close_7) AS jul8_green,
    countIf(close_8 < close_7) AS jul8_red,
    countIf(close_7 > close_6) AS jul7_green,
    countIf(close_7 < close_6) AS jul7_red,
    round(anyIf((close_7 / close_6 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul7_pct,
    count() AS names_counted
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8
    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-08 20:00:00'
    GROUP BY ticker
)

다른 측면: 방어주와 성장 대형주(mega-caps)의 부진

조회순환매 점검: 8개 종목 — 방어주, 메가캡(Mega-caps), 바이오테크(Biotech)
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close_raw,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-08 00:00:00')) AS day_open_raw,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close_raw,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
        OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 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

성장 대형주는 반도체 섹터와 반대로 움직였습니다: TSLA -2.22%, META -2.04%, LLY -1.6%. CVX는 장 초반 갭 상승 이후 +1.12% 상승하며 해당 패널에서 유일하게 상승 마감했습니다. 반면 XOM+1.26%로 상승 출발했으나 종가 기준 -0.49%까지 하락했습니다. 이에 따라 수요일 시장은 반도체 종목은 상승하고 성장주와 방어주는 하락하며 양분되었으며, 지수들은 그 사이에서 보합세를 유지했습니다. (행 순서는 알파벳순임: CRNX, CVX, JNJ, LLY, META, TSLA, UNH, XOM.)

거래 대금 현황

조회거래 대금 상위 6개, 거래량 상위 4개 — 7월 8일 정규 거래 시간
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(1000 * dollar_volume_bn / shares_m, 2) AS implied_avg_price,
    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-08 13:30:00' AND window_start < '2026-07-08 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, pct_of_board_leader DESC

MU32.02B 달러의 거래 대금을 기록했습니다. 이는 거래 종목 중 가장 큰 규모이며, 300억 달러를 상회하는 유일한 종목입니다. SPY (26.49B), NVDA (24.17B), QQQ (20.9B)가 그 뒤를 이었으며, SNDK16.82B, TSLA11.71B를 기록하며 거래 대금 상위 목록을 마무리했습니다. 주식 거래량 측면에서는 다른 양상이 나타났습니다. 3배 인버스 반도체 ETF인 SOXS636.5M 주가 거래되었으며, 추정 평균 가격은 $4.67였습니다. 이는 반도체주가 강세를 보인 날, 저가형 3배 레버리지 상품의 특성이 반영된 결과입니다.

세션의 흐름

조회30분 단위 ET 거래량, 정규 거래 시간, 일일 최대 거래량 대비 %
모든 수치 뒤에 숨겨진 정확한 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
GROUP BY et_time
ORDER BY et_time

거래량은 전형적인 U자형을 나타냈습니다. 장 초반 거래량은 일일 최대 거래량의 89.9% 수준이었으며, 오전 내내 감소하여 동부 표준시(ET) 기준 오후 1:00–1:30 사이인 34.1%에서 최저치를 기록했습니다. 장 마감 전 30분(ET 15:30) 거래량은 2.2B 주를 기록하며 일일 최대 거래량을 나타냈습니다. 이는 개장 시 거래량인 1.98B B보다 큰 수치이며, 일반적인 세션에서 나타나는 표준적인 패턴입니다.

옵션 거래 내역

조회옵션 테이프: 체결 내역, 계약 수, Call(콜) %, 화요일 대비 0DTE(Zero Days to Expiration) 비중, 상위 계약
모든 수치 뒤에 숨겨진 정확한 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) = '260708', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
    ) AS jul7_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
    ) AS jul7_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul7_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) = '260708') / sum(size), 1) AS pct_0dte,
    jul7_pct_0dte,
    spy_regular_close,
    top2.1[1] AS top1_und, top2.2[1] AS top1_strike, top2.3[1] AS top1_type, top2.4[1] AS top1_contracts, top2.5[1] AS top1_avg_px, top2.6[1] AS top1_is_0dte,
    round(toFloat64(top2.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'

통합 옵션 거래 내역(options tape)에 따르면 총 10.44M건의 체결과 63.26M계약이 기록되었습니다. 이는 화요일 동일 시간대 거래량을 기준으로 계산된 61.13M보다 높은 수치입니다. 콜(Call) 옵션은 전체 거래량의 55.4%를 차지하며 완만한 콜 편향을 보였습니다. 0DTE contracts(당일 만기 계약, 260708)는 전체 계약량의 38.7%를 차지했으며, 화요일의 31.2%보다 증가했습니다. 가장 거래가 활발했던 단일 계약은 SPY 745C였습니다. 해당 계약은 평균 가격 $0.875677981계약이 체결되었으며, SPY의 정규 종가인 $745.31 기준 거의 등가격(at the money) 상태의 당일 만기 계약이었습니다.

시세 테이프

조회주식 NBBO(National Best Bid and Offer) 업데이트 횟수: 7월 8일 vs 7월 7일, 종목별 업데이트(백만 단위)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / countIf(toDate(sip_timestamp) = toDate('2026-07-07')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'SPY') / 1e6, 2) AS jul8_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'QQQ') / 1e6, 2) AS jul8_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'NVDA') / 1e6, 2) AS jul8_nvda_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'TSLA') / 1e6, 2) AS jul8_tsla_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'MU') / 1e6, 2) AS jul8_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'

7월 8일 주식 시세 테이프에는 530.55M건의 NBBO(National Best Bid and Offer, 최우선 매수 및 매도 호가) 업데이트가 기록되었습니다. 이는 전 거래일 대비 +7.7% 증가한 수치입니다. QQQ의 6.53M건 업데이트가 SPY의 4.93M건을 앞서며 주요 종목 중 가장 많았습니다. NVDA (1.8M), TSLA (0.72M), MU (0.6M)가 그 뒤를 이었습니다.

조회SPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: RTH(Regular Trading Hours) 중앙값 호가 스프레드 (basis points)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    ticker,
    round(quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000), 2) AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA', 'MU', 'SNDK', 'AVGO')
  AND sip_timestamp >= '2026-07-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00'
  AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps ASC

7개 주요 종목의 SPY RTH(Regular Trading Hours, 정규 거래 시간) 중앙값 호가 스프레드는 0.27 bps였습니다. 이는 가장 유동성이 높은 미국 ETF로서 일반적인 수준의 하한선에 해당합니다. QQQ는 0.71 bps, NVDA는 1.52 bps를 기록했습니다. 표의 넓은 범위를 차지하는 종목은 호가 빈도가 낮은 종목들입니다. MU5.66 bps, SNDK12.21 bps를 기록했습니다.

조회직전 한 달 추세 대비 SPY의 RTH 평균 호가 스프레드
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-08')), 3) AS jul8_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-08')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-08'))) + 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-09 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

SPY의 RTH 평균 호가 스프레드는 2.202 cents였으며, 이는 직전 22거래일 중 11위에 해당합니다. 스프레드 수렴 정도를 기준으로 볼 때 중간 수준의 거래일이었습니다. 지난 한 달간의 범위는 1.809 cents(최소)에서 2.865 cents(최대) 사이였습니다. 유동성 공백이나 특이 이벤트가 없는 SPY 호가 스프레드의 일반적인 거래일이었습니다.

조회옵션 NBBO 테이프: 주식 테이프 대비 총 업데이트 횟수 및 SPY 기초 자산 비중
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_stock_quote_rows
SELECT
    round(jul8_options_rows / 1e9, 2) AS jul8_options_bn,
    round(jul8_options_rows / jul8_stock_quote_rows, 1) AS options_to_stock_ratio,
    round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00') / 1e6, 0) AS jul8_spy_options_m

옵션 테이프에는 9.62 billion건의 NBBO 업데이트가 기록되었습니다. 이는 주식 시세 테이프의 업데이트 건수보다 18.1× 많은 수치입니다. SPY 옵션 섹션에서만 정규 거래 시간 동안 422 million건의 업데이트가 발생했습니다.

금리: 수익률 곡선의 변화 미미

조회국채 수익률: 7월 8일 vs 7월 7일 — 만기별 현황 + 2s10s
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul8_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-08') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-07') AS p
)

5년물 금리가 +4 bp 상승하며 이번 세션에서 가장 큰 변동을 보였습니다. 2년물은 +2 bp 상승하며 마감되었으며, 그 외 다른 만기의 금리는 양방향 모두 2 bp 이내로 움직였습니다. 이에 따라 2s10s spread(2년물과 10년물 금리 차이)는 최근 변동 범위 내인 0.35% (세션 중 -1 bp 변동)를 기록했습니다. 금리의 정체된 움직임은 지수의 정체된 움직임과 나란히 나타났습니다.

오늘의 주요 일정

조회배당 제외, 주식 분할, SEC 공시, 뉴스 관심도
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-08'
    ) AS news,
    (
        SELECT (argMax(t, (n, t)), 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-08'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-08') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS forward_splits,
    (SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_424b2,
    (SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_form4,
    (SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_8k,
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_total,
    news.1 AS news_articles, news.2 AS news_publishers,
    top_news.1 AS top_news_ticker, top_news.2 AS top_news_n, top_news.3 AS top_news_lead_over_next

오늘의 주요 일정은 다음과 같습니다: 81건의 배당락(ex-dividend) 기준일, 1건의 주식 분할(forward split) 실행, 그리고 총 3722건의 SEC(미국 증권거래위원회) 공시(775건의 Form 4 내부자 거래, 527건의 424B2 투자설명서, 163건의 8-K 수시공시 포함)가 있었습니다. 뉴스 보도는 3개 매체를 통해 192건의 기사가 발행되었으며, MU이(가) 17건의 기사에서 가장 많이 언급된 티커(ticker) 중 하나였습니다. 오늘 시장 흐름에서 눈에 띄는 주요 기업의 주식 관련 이벤트는 없었으며, 시장의 핵심 화두는 반도체 섹터 자체였습니다.

거래 세션 확인

조회세션 검증: 첫/마지막 SPY 바 ET, 정규 거래 바 횟수, 공휴일 현황, 차기 마감일
모든 수치 뒤에 숨겨진 정확한 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-08') AS jul8_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-08 00:00:00' AND window_start < '2026-07-09 00:00:00'

거래 세션은 전체 연장 시간 거래를 포함했습니다. SPY(S&P 500 ETF Trust)의 첫 번째 바는 04:00 ET였으며, 마지막 바는 19:59 ET였습니다. 해당 시간 동안 390개의 정규 거래 시간 분 단위 바가 생성되었으며, 1개의 거래 세션이 포함되었습니다(단축 거래 없음; 공휴일 표에 해당 날짜가 없음). 다음 예정된 시장 종료 시간은 2026-09-07Labor Day입니다.

Data notes

All timestamps are stored in UTC; regular hours on July 8, 2026 are filtered as sip_timestamp / window_start between 2026-07-08 13:30:00 and 2026-07-08 20:00:00, which corresponds to 9:30 am–4:00 pm New York time. Decimal prices are cast to Float64 before any division. Named per-ticker panels (scoreboard, chip complex, rotation) are ordered alphabetically by ticker so each prose reference points at a fixed row; leaderboards (volume, quote snapshot) are value-ordered, and every positional claim they make is encoded as a sanity bound on that position. Every Tuesday comparison on this page — breadth share, chip green/red counts, options contracts and 0DTE share, quote-update counts — is computed fresh from July 7 (and July 6 where a prior close is needed) in the same query block, never quoted from an earlier post.

Full data notes

The breadth panel counts names with a regular-hours close on both sessions and at least $1M traded on the measured day; the dropped count (5284 of 11439) makes the excluded tail visible. The chip complex's day_low/day_high timing columns use the argMin/argMaxIf(..., (value, timestamp)) pattern so ties resolve deterministically. The volume-smile bucket labels are ET (%H:%i), computed with toTimeZone in the SELECT list only. The options-tape panel detects same-day expiry with the OCC-ticker substring match (substring(ticker, length(ticker) - 14, 6)) rather than options_trades.expiration_date (that column is broken, per the standing preflight note). Symbols in KNOWN_AMBIGUOUS_TICKERS are excluded in the volume-leaders and news-attention SQL so "most X" callouts fall through to verifiable names. The top-news ticker uses a deterministic tie-break (argMax(t, (n, t))); top_news_lead_over_next = 0 marks a tie, which is why the prose says "among the most-mentioned". The treasury panel joins two daily snapshot rows; a missing snapshot for either date yields zero rows and the row_count bound holds the post. The stocks-quote and options-quote counts are whole-tape scans over day partitions; named-ticker counts are reported in millions to match their column units. Spread medians use quantileExact (deterministic); the trailing spread panel is an average (avgIf), labeled as such.

방법론

  • 시장 데이터 소스: 통합 테이프(consolidated tape)를 사용함 — 지수 및 개별 종목의 가격과 거래량은 delayed_stocks_minute_aggs, NBBO(National Best Bid and Offer) 수량 및 호가 스프레드(quoted spreads)는 cache_stocks_quotes, 옵션 테이프는 cache_options_quotesoptions_trades를 사용함.
  • 시간대 처리: 모든 저장된 타임스탬프는 UTC(협정 세계시)임; ET(동부 표준시) 시계 레이블은 SELECT 목록에서만 toTimeZone(..., 'America/New_York')를 사용하여 계산함; WHERE 절에는 원본 UTC 리터럴을 사용함.
  • 정규 거래 시간 범위: 13:30–20:00 UTC이며, 달력 계산이 아닌 관측된 SPY 분봉(세션 검증 패널)을 통해 검증함.
  • 스프레드 정의: 스냅샷의 경우 유효한 양방향 호가에 대해 (ask - bid) / midpoint × 10,000를 basis points(bp) 단위로 산출함; 직전 한 달 패널은 평균값으로 표시된 센트(cents) 단위의 평균 폭임.
  • 이전 세션 비교: 7월 7일부터 쿼리 내에서 계산함 (화요일의 전일 대비 비교를 위해서는 7월 6일 데이터 사용) — 이전 게시물에서 가져오지 않음.
  • 결정론적 집계: quantileExact, 튜플 키를 사용한 argMin/argMax, 그리고 안정적인 재생성을 위한 결정론적 뉴스 타이브레이크(tie-break)를 사용함.
  • 데이터 웨어하우스 기준일: 2026년 7월 10일 (해당 기간에 대해 T+2 적용); 두 세션의 테이프가 이 시점까지 모두 수집됨.

교차 링크: 2026년 7월 7일 요약, 옵션 거래 비용, 매수-매도 스프레드 기초, 0DTE 옵션, 상대적 거래량.