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

2026년 6월 29일 시장 요약

성장주 중심의 지수 상승과 좁은 섹터 확산세를 분석합니다. 0DTE 및 금리 변동 등 주요 수치를 확인하십시오.

2026년 6월 29일 월요일은 성장이 시장을 주도하며 상승한 날이었으나, 상승 종목의 범위는 좁았습니다. QQQ는 2.57%, SPY는 1.62% 상승했습니다. 3968개의 유동성 종목이 상승한 반면, 2327개의 하락 종목이 나타났습니다. 그러나 섹터 바스켓(basket)의 거의 절반이 하락 마감했습니다. 모든 수치는 저장된 쿼리에서 읽어온 것입니다. SQL을 확인하려면 각 패널을 확장하십시오. 해당 세션의 틱 단위(tick-by-tick) 데이터는 다음과 같습니다: 6월 29일 미세구조 심층 분석.

전광판

모든 변동 사항은 6월 29일 정규 거래 세션의 마지막 분봉을 6월 26일 금요일과 비교한 결과입니다.

조회SPY / QQQ / DIA / IWM — 6월 29일 vs 6월 26일 종가, 정규 거래 시간
모든 수치 뒤에 숨겨진 정확한 SQL
WITH friday AS (
    SELECT ticker, argMax(close, window_start) AS friday_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00'
    GROUP BY ticker
),
monday AS (
    SELECT ticker,
           argMin(open, window_start) AS monday_open,
           argMax(close, window_start) AS monday_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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    GROUP BY ticker
)
SELECT
    m.ticker AS ticker,
    toFloat64(f.friday_close) AS jun26_close,
    toFloat64(m.monday_open) AS jun29_open,
    toFloat64(m.monday_close) AS jun29_close,
    round((toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) * 100, 2) AS pct_change,
    round(100 * (toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) / max(toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) OVER (), 1) AS pct_of_best_change,
    toFloat64(m.day_high) AS day_high,
    toFloat64(m.day_low) AS day_low,
    m.shares_traded_m AS shares_traded_m
FROM monday m
JOIN friday f ON m.ticker = f.ticker
ORDER BY m.ticker

SPY는 금요일 종가인 $729.09 대비 $736.525로 개장하여 $740.88로 마감했으며, 이는 고점인 $741.56보다 낮은 수준입니다. DIA의 +0.81% 대비 QQQ의 +2.57%는 성장주와 기술주 중심의 상승장을 나타냅니다. 소형주인 IWM은 0.45% 상승했습니다.

이날의 변동성이 이례적이었습니까?

변동률은 비교 대상이 없으면 큰 의미가 없습니다. 이 패널은 종가 기준 절대 변동 폭을 바탕으로 6월 29일을 지난 한 달간의 데이터와 비교하여 순위를 매깁니다.

조회QQQ 및 SPY: 6월 29일 기준 직전 한 달간의 세션 대비 순위 (순위 1 = 최대 절대 변동폭)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-06-29')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-06-29'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-06-29'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(max(if(ticker = 'QQQ', abs(cc_pct), 0)), 2) AS qqq_biggest_move_of_month_pct,
    countIf(ticker = 'QQQ' AND cc_pct > 0) AS qqq_up_sessions,
    round(anyIf(cc_pct, ticker = 'SPY' AND d = toDate('2026-06-29')), 2) AS spy_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'SPY' AND d = toDate('2026-06-29'))), groupArrayIf(abs(cc_pct), ticker = 'SPY' AND d != toDate('2026-06-29'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-06-29')), 2) AS spy_open_to_close_pct,
    concat(monthName(min(d)), ' ', toString(toDayOfMonth(min(d))), ', ', toString(toYear(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-05-28 00:00:00')
          AND window_start < toDateTime('2026-06-30 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)
WHERE isFinite(cc_pct)

기록적인 수준은 아니지만 큰 변동이었습니다: QQQ의 2.57% 변동은 May 29, 2026 이후 21 세션 중 5 순위에 해당하며, 해당 월의 최대 단일 변동 폭은 4.76%였습니다. SPY의 1.62%은 214 순위입니다. 변동의 원인도 중요합니다: SPY의 장중 종가 변동은 0.59%에 불과했으므로, 대부분의 상승분은 정규 거래 시간의 첫 봉이 형성되기 전 야간 갭(overnight gap)에서 발생했습니다. QQQ는 해당 기간 중 10의 세션에서 상승 마감했습니다. 한 달간 상승과 하락이 거의 반반이었던 셈입니다.

시장 폭: 상승세의 범위는 어느 정도였는가?

상승 종목(advancer)은 거래 대금이 최소 100만 달러 이상인 종목 중 월요일 종가가 금요일 종가보다 높은 티커(ticker)를 의미한다. 이 필터를 적용하면 11,475의 이틀 연속 거래 종목 중 5,108이 제외된다.

조회6월 29일 거래대금 $1M 이상 종목의 상승 종목 대비 하락 종목 수
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-29 00:00:00') AS monday_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
       OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
    GROUP BY ticker
)
SELECT
    countIf(monday_close > friday_close AND monday_dollar_volume >= 1000000) AS advancers,
    countIf(monday_close < friday_close AND monday_dollar_volume >= 1000000) AS decliners,
    countIf(monday_close = friday_close AND monday_dollar_volume >= 1000000) AS unchanged,
    countIf(monday_dollar_volume >= 1000000) AS liquid_tickers,
    count() AS tickers_traded_both_sessions,
    reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_label,
    count() - countIf(monday_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
    reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(monday_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_label,
    round(100.0 * countIf(monday_close > friday_close AND monday_dollar_volume >= 1000000)
        / countIf(monday_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE friday_close > 0 AND monday_close > 0

3968 상승, 2327 하락, 72 보합: 유동성 있는 거래 종목의 62.3%이 상승했다. 개별 종목을 하나씩 집계한 결과, 시장 전반에 걸친 광범위한 상승일이었다.

섹터별 분석: 상승세는 겉보기보다 제한적이었다

종목 수를 동일하게 산정하는 방식이 있는 반면, 기업 규모에 따라 가중치를 두는 방식도 있습니다. 11개의 SPDR(Standard & Poor's Depository Receipt) 섹터 ETF는 후자의 방식을 나타내며, S&P 500의 각 섹터별로 시가총액 가중치를 적용한 바스켓입니다. 이 지표들은 종목 수 기반의 상승 폭과 크게 상반된 결과를 보였습니다.

조회11개 섹터 바스켓: 6월 29일 vs 6월 26일 종가, 정규 거래 시간
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_etf AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
        maxIf(toFloat64(high), window_start >= '2026-06-29 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-06-29 00:00:00') AS day_low,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-29 00:00:00') / 1e6, 0) AS dollar_volume_m
    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-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
        OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
    GROUP BY ticker
)
SELECT
    sector,
    ticker,
    round((monday_close / friday_close - 1) * 100, 2) AS pct_change,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    dollar_volume_m,
    round((monday_close / friday_close - 1) * 100 - min((monday_close / friday_close - 1) * 100) OVER (), 2) AS pct_above_worst_sector
FROM (
    SELECT *,
        multiIf(ticker = 'XLB', 'Materials',
                ticker = 'XLC', 'Communication services',
                ticker = 'XLE', 'Energy',
                ticker = 'XLF', 'Financials',
                ticker = 'XLI', 'Industrials',
                ticker = 'XLK', 'Technology',
                ticker = 'XLP', 'Consumer staples',
                ticker = 'XLRE', 'Real estate',
                ticker = 'XLU', 'Utilities',
                ticker = 'XLV', 'Health care',
                'Consumer discretionary') AS sector
    FROM per_etf
)
ORDER BY pct_change DESC

기술 섹터가 2.52%로 상승을 주도했으며, 경기 소비재 섹터가 2.37%로 그 뒤를 이었습니다. 원자재 섹터는 -1.82%, 부동산 섹터는 -0.64%로 하락하며 마감했습니다. 당일 섹터 간 변동성을 나타내는 최상위와 최하위 섹터 간의 차이는 4.34 퍼센트 포인트(percentage points)를 기록했습니다. 지수가 상승한 날임에도 불구하고 유틸리티, 필수 소비재, 에너지, 부동산, 원자재 섹터는 모두 하락했습니다. 종목 수 기준으로는 폭넓은 상승이었으나, 가중치 기준으로는 좁은 상승이었습니다. 이것이 인덱스 펀드(index fund)의 수익률이 은폐할 수 있는 실상입니다.

오늘의 주요 특징: 메모리 및 스토리지

네 개의 종목이 동일한 테마로 거래되었으나 결과는 매우 달랐습니다. 동조화 현상과 변동 폭만 나타났을 뿐, 데이터상으로는 그 원인을 알 수 없습니다.

조회메모리/스토리지 종목: 금요일 종가 대비 변동 및 장중 변동폭
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
        maxIf(toFloat64(high), window_start >= '2026-06-29 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-06-29 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-06-29 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-29 00:00:00') AS high_bar
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
        OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(friday_close, 2) AS jun26_close,
    round(monday_close, 2) AS jun29_close,
    round((monday_close / friday_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
FROM per_name
ORDER BY ticker

MU는 변동 폭과 순 변화율의 차이를 보여주는 전형적인 사례입니다. 12.22%의 일중 변동 폭을 기록했습니다. 10:18 ET(Eastern Time, 동부 표준시) 기준 $1023.65 저가와 15:59 기준 $1148.79 고가를 기록했으나, 종가는 금요일보다 1.97% 높은 수준에서 마감했습니다. Western Digital은 11.15% 상승했고 Seagate는 8.17% 상승했습니다. SanDisk는 10.33% 범위 내에서 -1.9% 하락하며 해당 섹터에서 유일하게 하락 마감했습니다. 종가는 투자자들이 겪은 변동성을 모두 보여주지 않습니다.

거래 자금 흐름

거래 대금 측면에서 Micron (MU)은 SPY의 $33.97 billion을 압도하며 모든 종목과 인덱스 펀드(index funds)를 제치고 독보적인 위치를 차지했습니다: $58.47 billion 대 $33.97 billion. 주식 수 기준으로는 양상이 달랐습니다.

조회거래량 상위 종목: 거래대금 기준 상위 6개, 거래주식수 기준 상위 4개
모든 수치 뒤에 숨겨진 정확한 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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESC

주식 수 지표는 오해의 소지가 있습니다. 거래량 상위 종목은 3배 레버리지 인버스 반도체 ETF(695.3 million shares)인 SOXS와, 하루 종일 약 $23 million의 가치를 지닌 353.8 million 주식의 페니 스탁(penny stock)인 INLF였습니다. 거래 대금은 자금의 이동 경로를 보여주며, 상대적 거래량은 특정 종목의 활동이 해당 종목 자체의 평소 수준에 비해 이례적인지를 나타냅니다.

뉴욕 시장의 30분 단위 구간을 살펴보면, 6월 29일은 전형적인 거래량 "스마일" 곡선을 나타냅니다:

조회30분 단위 거래주식수, 정규 거래 시간 (단위: billions)
모든 수치 뒤에 숨겨진 정확한 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,
    round(100 * (sum(toFloat64(volume)) / min(sum(toFloat64(volume))) OVER () - 1), 1) AS pct_above_trough
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY et_time
ORDER BY et_time

장 초반 30분 동안 2.3 billion 주가 거래되었고, 13:30 시점에 0.77 billion으로 저점을 기록했습니다. 가장 큰 거래 구간은 마지막 30분인 2.39 billion이었으며, 이 시기에 종가 경매와 인덱스 추종 자금(index-tracking flows)이 집중됩니다.

옵션 거래 현황

11.04백만 건의 체결을 통해 총 66.33백만 계약의 옵션이 거래되었습니다.

조회옵션 시장 전체 일일 데이터: 거래량, 0DTE, 공휴일 반영 주간 데이터
모든 수치 뒤에 숨겨진 정확한 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-06-29 00:00:00' AND sip_timestamp < '2026-06-30 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-06-29 13:30:00' AND window_start < '2026-06-29 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) = '260629') / 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,
    countIf(sip_timestamp < '2026-06-29 13:30:00') AS premarket_prints,
    reverse(arrayStringConcat(extractAll(reverse(toString(countIf(sip_timestamp < '2026-06-29 13:30:00'))), '[0-9]{1,3}'), ',')) AS premarket_prints_label,
    countIf(sip_timestamp < '2026-06-29 13:30:00'
        AND underlying_symbol NOT IN ('SPX', 'SPXW', 'XSP', 'RUTW', 'VIX', 'VIXW')) AS premarket_non_index_prints,
    arrayStringConcat(arraySort(groupUniqArrayIf(underlying_symbol, sip_timestamp < '2026-06-29 13:30:00')), ', ') AS premarket_underlyings,
    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_label,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'

콜(Call) 옵션이 계약 거래량의 55.7%를 차지했으며, 거래된 전체 물량 중 35.8%가 같은 월요일에 만기되었습니다 — 0DTE(zero-days-to-expiry, 만기 당일 만기) 주식 관련 정보. 가장 거래가 활발했던 단일 계약은 당일 만기되는 SPY $741 콜 옵션이었습니다. 평균 프리미엄(premium)은 $0.474였으며, 788,133 계약이 거래되었습니다. SPY의 종가는 행사가보다 0.12달러 낮게 마감되었습니다. 즉, 당일 가장 많이 거래된 옵션이 외가격(out of the money) 상태로 종료되었습니다. 기초 자산으로서 SPY는 12.01백만 계약이 거래되었고, QQQ는 7.32백만 계약이 거래되었습니다.

또한 오전 9시 30분 주식 시장 개장 전까지 40,621건의 옵션 체결이 기록되었습니다. 이 중 모든 계약은 현금 결제 지수(cash-settled index) 기반(RUTW, SPX, SPXW, VIX, VIXW, XSP)이었으며, 같은 시간대에 0건의 주식 또는 ETF 옵션 체결이 있었습니다. 이는 우연이 아닌 규칙에 따른 결과입니다. 지수 옵션은 글로벌 거래 시간 세션이 연장되어 운영되지만, 주식 및 ETF 옵션은 주식 시장과 함께 개장합니다. 주식은 장전 및 장후 거래와 같이 조기에 거래되지만, 해당 옵션은 그렇지 않습니다.

7월 3일 금요일 만기 코드를 가진 계약은 하루 동안 단 한 건(0건)도 체결되지 않았습니다. 해당 금요일은 시장 휴장일이기 때문입니다. 반면 7월 2일 목요일 만기 계약은 10.73백만 계약이 거래되었습니다.

호가 테이프: 거래 비용 분석

이 페이지의 모든 가격은 호가 스트림, 즉 상장된 모든 종목에 대해 지속적으로 재공시되는 NBBO(National Best Bid and Offer, 최우선 매수-매도 호가)를 기반으로 합니다. 최우선 매수 호가와 최우선 매도 호가 사이의 간격인 bid-ask spread(매수-매도 스프레드)는 주문을 체결하기 위해 지불해야 하는 비용입니다.

조회스프레드(spread) 체결 비용: NBBO 업데이트 및 중앙값 호가 폭, 정규 거래 시간
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    ticker,
    round(count() / 1e6, 2) AS nbbo_updates_m,
    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), 2) AS median_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-06-29 13:30:00' AND sip_timestamp < '2026-06-29 14:00:00'), 2) AS open_30min_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-06-29 17:00:00' AND sip_timestamp < '2026-06-29 17:30: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-06-29 13:30:00' AND sip_timestamp < '2026-06-29 14:00: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-06-29 17:00:00' AND sip_timestamp < '2026-06-29 17:30:00'), 2) AS open_minus_midday_bps,
    countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'MU', 'WDC')
  AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 20:00:00'
GROUP BY ticker
ORDER BY ticker

SPY의 중앙값 호가 폭은 중간 가격 대비 0.41 bps(basis points, 베이시스 포인트)였습니다. QQQ는 0.84, Micron은 4.6였으며, Western Digital은 8.2로 네 종목 중 가장 넓었습니다. 10,000달러 주문에서 1 bps는 1달러이므로, SPY 10,000달러어치를 매수 후 즉시 매도할 때 발생하는 비용은 약 $0.41입니다. Western Digital에서 동일한 왕복 거래를 할 경우 비용은 $8.2입니다. 거래 규모는 동일하지만 종목이 달라졌기 때문입니다.

네 종목 모두 정규 거래 시간 중 첫 30분 동안 정오의 통제 구간보다 더 넓은 호가 폭을 기록했습니다. SPY는 0.41 bps 대 0.27, Western Digital은 14.337.55를 기록하며, 가장 넓은 호가 폭을 가진 종목에서 6.78 bp의 개장 프리미엄이 발생했습니다. 거래 회전율 측면에서는 SPY가 정규 시간 동안 3.98 million(백만) 건의 NBBO 업데이트를 기록했고, QQQ는 4.42 million 건을 기록했습니다.

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

미 국채 시장은 조용한 월요일을 보냈습니다. 수익률은 6월 26일 대비 종가 기준 변동분입니다.

조회국채 수익률 곡선(Treasury curve), 6월 29일 종가 vs 6월 26일 (데이터가 있는 만기 기준)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jun29_yield_pct,
    round((t.2 - t.3) * 100) AS one_day_change_bp
FROM (
    SELECT arrayJoin([
        ('1 month',  toFloat64(mon.yield_1_month),  toFloat64(fri.yield_1_month)),
        ('3 month',  toFloat64(mon.yield_3_month),  toFloat64(fri.yield_3_month)),
        ('1 year',   toFloat64(mon.yield_1_year),   toFloat64(fri.yield_1_year)),
        ('2 year',   toFloat64(mon.yield_2_year),   toFloat64(fri.yield_2_year)),
        ('5 year',   toFloat64(mon.yield_5_year),   toFloat64(fri.yield_5_year)),
        ('10 year',  toFloat64(mon.yield_10_year),  toFloat64(fri.yield_10_year)),
        ('30 year',  toFloat64(mon.yield_30_year),  toFloat64(fri.yield_30_year)),
        ('2s10s spread', toFloat64(mon.yield_10_year - mon.yield_2_year), toFloat64(fri.yield_10_year - fri.yield_2_year))
    ]) AS t
    FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-29') AS mon,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-26') AS fri
)

10년물 수익률은 당일 변동 없이 4.38%로 마감(0 bp)했으며, 3개월물 수익률은 3.87%에서 4 bp 상승했습니다. 10년물에서 2년물 수익률을 뺀 2s10s spread(2년-10년 금리차)0.28 퍼센트 포인트(-3 bp)로 마감했습니다. 여전히 양(+)의 값을 유지하고 있으나, 곡선은 약간 평탄해졌습니다.

오늘의 일정 배경

조회6월 29일 기업 일정 및 정보 흐름
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
    (
        SELECT (argMax(d, n), max(n))
        FROM (
            SELECT ex_dividend_date AS d, count() AS n
            FROM global_markets.stocks_dividends
            WHERE ex_dividend_date BETWEEN '2026-06-22' AND '2026-07-02'
            GROUP BY d
        )
    ) AS peak_ex_div,
    (
        SELECT (countIf(form_type = '424B2'), countIf(form_type = '4'), countIf(form_type = '8-K'), count())
        FROM global_markets.stocks_sec_edgar_index
        WHERE filing_date = '2026-06-29'
    ) AS filings,
    (
        SELECT (count(), uniqExact(publisher), countIf(has(tickers, 'NVDA')))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-29'
    ) AS news,
    (
        SELECT 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-06-29'
            )
            WHERE t NOT IN ('NVDA', 'SPCX')
            GROUP BY t
        )
    ) AS runner_up_articles,
    (
        SELECT (any(split_from), any(split_to), count())
        FROM global_markets.stocks_splits
        WHERE ticker = 'HON' AND execution_date = '2026-06-29'
    ) AS hon_split,
    (
        SELECT (
            round(toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')), 2),
            round(toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')), 2)
        )
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'HON'
          AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
            OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
    ) AS hon_close
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-29') AS ex_dividend_records_jun29,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-29'
        AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'GOOG', 'META', 'TSLA', 'JPM', 'JNJ',
                       'XOM', 'KO', 'PG', 'V', 'MA', 'HD', 'WMT', 'CVX', 'MRK', 'PEP',
                       'SPY', 'QQQ', 'DIA', 'IWM', 'VTI')) AS household_name_ex_dividends,
    length(['AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'GOOG', 'META', 'TSLA', 'JPM', 'JNJ',
            'XOM', 'KO', 'PG', 'V', 'MA', 'HD', 'WMT', 'CVX', 'MRK', 'PEP',
            'SPY', 'QQQ', 'DIA', 'IWM', 'VTI']) AS household_names_checked,
    concat(monthName(peak_ex_div.1), ' ', toString(toDayOfMonth(peak_ex_div.1))) AS busiest_ex_div_day_of_window,
    peak_ex_div.2 AS busiest_ex_div_day_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-06-29') AS splits_executed,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-29') AS ipos_listed_jun29,
    (SELECT arrayStringConcat(groupArray(ticker), ', ') FROM (
        SELECT ticker FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01' ORDER BY ticker
    )) AS jul1_ipo_debuts,
    filings.4 AS sec_filings,
    filings.1 AS prospectus_424b2_filings,
    filings.2 AS insider_form4_filings,
    filings.3 AS filings_8k,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    news.3 AS nvda_articles,
    runner_up_articles AS next_most_covered_articles,
    news.3 - runner_up_articles AS nvda_minus_next_most_covered,
    hon_split.3 AS hon_split_records,
    hon_split.1 AS hon_split_from,
    hon_split.2 AS hon_split_to,
    hon_close.1 AS hon_close_jun26,
    hon_close.2 AS hon_close_jun29

449 배당 기록이 6월 29일에 배당락(ex-dividend)되었습니다. 배당락일 이전에 주식을 보유해야 배당금을 받을 수 있습니다. 그러나 당사가 확인한 25개의 유명 기업 중 0개만이 해당되었습니다. 분기 말 물결은 July 1일에 745개의 기록으로 정점에 달했습니다. 23건의 주식 분할이 실행되었고 0건의 IPO(기업공개)가 상장되었습니다. 수요일 데뷔 예정인 종목은 BSP, ITG, LIME건입니다.

SEC(미국 증권거래위원회)는 6월 29일 자로 6173건의 신고서를 기록했습니다. 1473건의 구조화 상품 가격 보충서(form 424B2)와 1277건의 내부자 거래 보고서(Form 4)는 헤드라인을 장식하는 231건의 8-K 보고서보다 훨씬 많습니다. 당사의 뉴스 피드에는 3개 발행사의 170개 기사가 포함되었습니다. 태그가 모호하게 재사용된 종목 하나(쿼리에서 제외됨)를 제외하면, 가장 많이 다뤄진 종목은 NVDA로 14개의 기사가 보도되었으며, 그다음 순위는 12건이었습니다.

데이터 참고 사항

특이 데이터는 주석을 표기하며, 임의로 제외하지 않습니다. 다음 네 가지 사항은 주요 지표에 영향을 미칩니다.

  • 섹터 바스켓은 공표된 방식을 따릅니다. "섹터"는 시가총액 가중치가 적용된 11개의 SPDR 섹터 ETF를 의미합니다. 이는 매 세션 동일하게 적용되며, 공급업체의 개별 티커 분류와는 다릅니다.
  • 달러 거래량은 분당 대리 지표입니다. 이는 종가에 거래량을 곱한 값을 분 단위로 합산한 것이며, 실제 체결가 합계와 유사하지만 완전히 일치하지는 않습니다.
  • 호가 스프레드(Quoted spreads)는 유효하지 않은 호가(단방향 또는 NBBO 교차 기록)를 제외합니다. 패널은 제외된 항목의 수를 집계합니다(SPY의 경우 1544). 중앙값 호가 폭은 호가 통계일 뿐, 개별 거래 비용이 아닙니다. 주문은 종종 호가 범위 내에서 체결됩니다.
  • 단일 체결 데이터가 분 단위 봉의 고가 또는 저가를 왜곡할 수 있습니다. QQQ의 동부 표준시 11:07 봉은 $709.58의 저가를 기록했으나, 주변의 어떤 봉도 $715.09 미만으로 하락하지 않았습니다. 이는 동시 시장 가격보다 $5.51 낮은 단일 체결 건 때문입니다. 모든 고가와 저가는 인접한 봉과 대조하여 검증되었습니다. QQQ의 세션 저가인 $705.172는 검증을 통과했습니다.
전체 데이터 참고 사항
  • 국채 커버리지는 스키마보다 적습니다. 광고된 네 가지 만기(6개월, 3년, 7년, 20년) 데이터는 생성된 적이 없습니다. 수익률 곡선은 실제 존재하는 7개의 만기와 2s10s(2년물과 10년물 금리 차이) 행을 보여줍니다.
  • Honeywell의 "역분할" 기록이 데이터와 충돌합니다. 피드에는 6월 29일자 1 HON 기록이 포함되어 있습니다. 이는 2의 구주를 1의 신주로 전환하는 역분할 건입니다. HON은 금요일에 $231.3, 월요일에 $227.71로 마감했습니다. 가격이 두 배로 증가하지 않았습니다. 당사는 이를 적용하지 않았습니다.
  • 뉴스 카운트는 특정 공급업체의 피드인 3 발행사 데이터이며, "모든 시장 뉴스"를 의미하지 않습니다.
  • 틱(Tick) 수준의 수신 데이터 — 교차 호가, 유령 거래량 보정, 절단된 FINRA short-volume(공매도 거래량) 파일(및 공매도 거래량이 공매도 잔고가 아닌 이유) —는 심층 분석에서 확인할 수 있습니다.

세션 확인 완료

조회세션 점검: SPY의 분봉 관측 범위 및 금요일 종가 기록
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
    (
        SELECT (
            round(toFloat64(minIf(low, formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') = '11:07')), 2),
            round(toFloat64(minIf(low, formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') IN ('11:04', '11:05', '11:06', '11:08', '11:09', '11:10'))), 2)
        )
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'QQQ' AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    ) AS qqq_lone
SELECT
    (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,
    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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00') AS regular_session_bars,
    qqq_lone.1 AS qqq_1107_lone_low,
    qqq_lone.2 AS qqq_1107_adjacent_bars_low,
    round(qqq_lone.2 - qqq_lone.1, 2) AS qqq_lone_print_below_adjacent
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-29 00:00:00' AND window_start < '2026-06-30 00:00:00'

SPY의 캔들은 뉴욕 시간 기준 04:00부터 19:59까지 정확히 390개의 정규 거래 시간 캔들로 구성됩니다. 이는 거래 기록을 통해 확인된 완전한 세션입니다(거래소 캘린더 데이터셋에는 예정된 휴장일 정보만 포함됩니다). 해당 금요일인 7월 3일은 전체 거래가 이루어진 날이었습니다. 0 SPY 캔들은 하루 종일 생성되었으며, 7월 4일은 토요일이었습니다. 4거래일로 구성된 이번 주에 대한 요약 내용은 다음과 같습니다.

FAQ

2026년 6월 29일 주식 시장은 어떠했습니까?

성장주가 주도한 상승장이었습니다. QQQ는 금요일 대비 2.57% 상승하며 마감했고, SPY는 1.62%, DIA는 0.81%, IWM은 0.45% 상승했습니다. 거래 대금이 100만 달러 이상인 종목 중 62.3%가 상승 마감했습니다.

2026년 6월 29일은 Nasdaq에 중요한 날이었습니까?

중요했으나 이례적인 수준은 아니었습니다. QQQ의 전일 대비 2.57% 변동폭은 지난 한 달간의 21 거래일 중 절대값 기준 5위를 기록했으며, 월간 최고 변동폭은 4.76%였습니다.

2026년 6월 29일에 어떤 섹터가 상승을 주도했습니까?

11개 SPDR 섹터 바스켓 중 기술주(2.52%)와 경기 소비재(2.37%)가 상승을 주도했습니다. 소재 섹터는 4.34 퍼센트 포인트 차이로 가장 낮은 -1.82%를 기록했습니다. 유틸리티, 필수 소비재, 에너지 및 부동산 섹터도 하락 마감했습니다.

2026년 6월 29일 옵션 거래량 중 0DTE(당일 만기) 비중은 얼마였습니까?

당일 만기 계약은 총 66.33백만 계약 중 35.8%를 차지했습니다. 가장 거래가 활발했던 단일 계약은 당일 만기인 SPY $741 콜 옵션(788,133 계약)이었으며, 외가격(out of the money)으로 마감했습니다.

왜 주식 시장 개장 전에 옵션 거래가 이루어집니까?

지수 옵션만 해당됩니다. 6월 29일 동부 표준시 오전 9시 30분 이전에 발생한 모든 40,621 옵션 체결은 현금 결제 지수 기초 자산(RUTW, SPX, SPXW, VIX, VIXW, XSP)을 기반으로 했으며, 이는 연장된 글로벌 거래 시간 세션을 나타냅니다. 해당 시간대의 주식 및 ETF 옵션 체결 건수는 0건이었습니다.

방법론

  • 타임스탬프는 UTC(협정 세계시)로 저장되며, 쿼리 내부에서 뉴욕 시간으로 변환됩니다. "Close"(종가)는 경매 체결가가 아닌 정규 세션의 마지막 분 단위 바(bar)를 의미합니다. 일일 변동은 6월 29일과 6월 26일을 비교하며, 세션은 관찰된 바 범위(bar span)를 통해 검증되었습니다.
  • 직전 월간 순위는 정규 시간대 종가 대비 종가 변동을 사용하며, 첫 세션은 제외됩니다(해당 기간 내 이전 종가가 없음). 옵션 만기일은 OCC(Option Clearing Corporation) 티커를 통해 다시 파싱됩니다(표 자체의 만기 열에 오류가 있음).
  • 모든 패널은 작성 시점에 제한된 읽기 전용 경로를 통해 한 번씩 읽힙니다. 데이터 웨어하우스 상태는 2026년 7월 13일 기준입니다.

모든 패널은 저장된 쿼리 결과물이며 차트, 표, SQL이 하나의 객체로 구성됩니다. 어떤 것이든 Strasmore 터미널에 붙여넣으십시오. 다음 세션: 6월 30일.