주식 거래 비용 및 spread 측정
수수료가 없어도 bid-ask spread(매수-매도 호가 차이) 비용은 발생합니다. 12개 종목의 비용을 bp(basis points)로 분석합니다.
수수료가 인하되었음에도 주식 거래 비용이 0으로 떨어지지는 않았습니다. 모든 시장 주문은 여전히 bid-ask spread(매수-매도 호가 스프레드, 즉 구매자가 지불할 의사가 있는 최고 가격과 판매자가 수용할 최저 가격 사이의 차이)를 지불해야 하며, 그 절반은 매수 시, 나머지 절반은 매도 시 발생합니다. 이 페이지는 12개의 가계용 주식 및 ETF에 대해 틱 단위(tick-level) 호가 데이터를 사용하여 해당 비용을 basis points(bp, 0.01% 단위)로 측정하며, 모든 수치에는 정확한 SQL 쿼리가 포함되어 있습니다.
수수료는 0원이 되었지만, spread(매수-매도 호가 차이)는 사라지지 않았다
주식의 가격은 하나가 아니라 항상 두 개입니다. bid(매수 호가)는 매수 가능한 최선의 가격이며, ask(매수 호가)는 매도 가능한 최선의 가격입니다. 현재의 거래는 이 간격을 가로지르는 것을 의미합니다. 시장가 매수는 ask 가격으로 체결되고, 시장가 매도는 bid 가격으로 체결됩니다. 그 차액은 호가를 제시한 측이 가져가며, 대부분의 경우 세션 내내 양방향 호가를 제시하는 전문 market maker(시장 조성자)의 몫입니다. bid-ask spread(매수-매도 호가 차이)란 무엇인가에서 그 메커니즘을 자세히 다루고 있으며, 본 페이지에서는 해당 가격을 산정합니다.
가상의 사례를 통해 산술적 원리를 설명하겠습니다. 어떤 주식의 호가가 bid $20.00 / ask $20.05라면, midpoint(중간가)는 $20.025입니다. 이는 해당 시점의 공정 가치를 나타내는 일반적인 기준입니다. 시장가 매수 시 $20.05를 지불하며, 이는 midpoint보다 2.5센트 높은 가격입니다. 즉, quoted width(호가 폭)의 절반입니다. 시장가 매도 시에는 $20.00를 받게 되며, 나머지 절반을 포기하게 됩니다. 이 두 거래를 모두 수행하는 round trip(왕복 거래)을 하면, 수수료 항목이 전혀 없더라도 주당 총 5센트의 차액이 남게 됩니다.
이 비용을 나타내는 전문 단위는 basis point(bp)로, 1퍼센트의 백분의 일입니다. spread를 midpoint 대비 비율로 표시하면, 주당 가격이 1달러 미만인 ETF와 수백 달러인 ETF를 동일한 척도로 비교할 수 있습니다. 이를 통해 드러나는 차이는 대부분의 수수료 무료 거래자가 예상하는 것보다 훨씬 큽니다.
거래 비용 계층: 12개 종목 측정 결과
아래는 중간 호가 스프레드(spread)를 중간가 대비 백분율로 환산하여 순위를 매긴 12개의 주요 주식 및 ETF 목록입니다. 데이터는 모든 미국 거래소의 통합 최우선 매도·매수 호가인 NBBO(National Best Bid and Offer)를 기준으로 합니다. 이는 증권사 앱에 표시되는 호가를 의미하며, 일광 절약 시간제 적용 시 동부 표준시 기준 오전 9시 30분부터 오후 4시까지의 정규 거래 세션과 일치하는 고정된 시간대(13:30–19:59 UTC) 동안 측정되었습니다. 이 페이지가 지금까지 측정한 모든 시간대 데이터가 이에 해당합니다. 데이터는 가장 최근에 완료된 세션을 포함하며, 중간값 계산 시 불완전한 데이터를 제외하기 위해 의도적으로 오늘로부터 며칠 전 데이터까지만 포함합니다. 매수 또는 매도 호가 중 하나가 누락되었거나, 매도 호가가 매수 호가와 같거나 낮은 경우는 중간값 계산에서 제외되며, 누락 처리하는 대신 마지막 열에 별도로 집계됩니다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS typical_spread_bps,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price > bid_price) * 100, 1) AS typical_spread_cents,
round(count() / 1e6, 1) AS quote_updates_m,
round(100 * countIf(bid_price <= 0 OR ask_price <= 0 OR ask_price <= bid_price) / count(), 2) AS pct_updates_excluded
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'AMD', 'TSLA', 'KO', 'DIS', 'F', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
ORDER BY typical_spread_bps최상단에는 14.9백만 건의 호가 업데이트를 바탕으로 한 SPY이(가) 0.27 bps(basis point, 0.01% 단위)를 기록했습니다. 네 번째 단계인 NVDA의 호가 스프레드는 0.99 bps입니다. 최하단인 SOXS은(는) 23.17 bps를 기록했습니다. 이 표가 주는 시사점은 센트(cents) 열에 나타납니다. 호가 간격은 1¢이며, 이는 백분율상 가장 높은 비용을 가진 종목임에도 불구하고 실제 가격 차이는 1센트 단위에 불과하다는 것을 보여줍니다. 센트 단위는 저가주를 설명하기에 적합하며, bps는 종목의 실제 비용을 정확하게 나타냅니다.
1 bps는 $10,000당 1달러를 의미합니다
bps(basis point, 베이시스 포인트) 열은 고정된 산식에 따라 금액으로 변환됩니다. $10,000 주문 시 1 bps는 1달러(10,000 × 0.0001 = 1)와 같습니다. 호가창을 $10,000 거래당 발생하는 왕복 가격표로 이해하십시오. 가장 높은 단계의 0.27 bps는 약 $0.27이며, 가장 낮은 단계의 23.17 bps는 약 $23.17입니다. 매수 또는 매도 중 한 번만 체결되는 단방향 거래 시 각 수치의 절반이 적용됩니다.
거래 빈도에 따라 비용이 달라집니다. 동일한 $10,000 규모로 20 bp spread(스프레드)를 주당 한 번씩 왕복 거래한다고 가정하면, 52주 동안 총 약 $1,040(20 × $1 × 52)가 소요됩니다. 이는 수수료가 없을 때 계좌 잔고의 약 1퍼센트에 해당합니다. 반면 1 bp spread로 동일한 거래를 반복하면 연간 총액은 약 $52가 됩니다. 어떤 호가 단계에 머무느냐가 그 어떤 수수료 항목보다 더 중요합니다.
대형주와 레버리지 인버스 ETF 비교
사다리의 가장 낮은 단계에는 이름이 필요하며, 상위 3분의 1에 위치한 대형주 역시 이름이 필요합니다. NVIDIA (NVDA)는 대형주 반도체 종목입니다. SOXS는 Direxion Daily Semiconductor Bear 3X shares로, 매일 반도체 지수와 반대로 세 배 움직이도록 설계된 레버리지 인버스 ETF(leveraged inverse ETF)이며 매일 리셋됩니다. 동일한 기간과 동일한 방식으로 두 종목을 측정했습니다:
모든 수치 뒤에 숨겨진 정확한 SQL
WITH per_day AS (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS et_date,
quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'NVDA' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS nvda_bps,
quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'SOXS' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS soxs_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('NVDA', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY et_date
),
whole AS (
SELECT quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'NVDA' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS nvda_bps,
quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'SOXS' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS soxs_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('NVDA', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
)
SELECT round((SELECT nvda_bps FROM whole), 2) AS nvda_spread_bps,
round((SELECT soxs_bps FROM whole), 2) AS soxs_spread_bps,
round((SELECT soxs_bps FROM whole) / (SELECT nvda_bps FROM whole), 1) AS times_wider,
(SELECT count() FROM per_day) AS sessions_measured,
round((SELECT min(soxs_bps / nvda_bps) FROM per_day), 1) AS smallest_daily_gap_xNVDA의 중앙값 호가 스프레드(spread)는 0.99 bps였습니다. SOXS는 23.17 bps를 기록하며 23.3 배 더 넓었습니다. 해당 기간 내 모든 5 세션 동안, 단일 세션 격차가 14.1 배 미만으로 축소된 적은 없었습니다. 동일한 두 종목은 7월 7일 반도체 급락 당시 극단적인 수치를 보였습니다. 해당 세션의 오전 저점 구간에서 이 정확한 대비가 틱 단위로 측정되었습니다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT et_date,
nvda_spread_bps,
soxs_spread_bps,
round(soxs_spread_bps / nvda_spread_bps, 1) AS times_wider
FROM (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS et_date,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'NVDA' AND bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS nvda_spread_bps,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'SOXS' AND bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS soxs_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('NVDA', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY et_date
)
ORDER BY et_date해당 기간의 첫 세션인 2026-07-08에 NVDA의 중앙값 호가는 21.48 bps인 SOXS 대비 1.52 bps의 폭을 기록했습니다. 이는 14.1 배의 비용입니다. 세션이 바뀌어도 순위는 변하지 않습니다. 저렴한 종목은 계속 저렴하고, 비싼 종목은 계속 비쌉니다. 비용 사다리에서의 종목 위치는 일시적인 상태가 아니라 고정된 특성입니다.
저가주가 고가주보다 거래 비용이 더 높은 이유
이러한 격차의 일부는 시장 구조(market plumbing)에서 기인합니다. US 주식과 ETF 중 1달러를 초과하는 종목은 1센트 단위로 호가를 형성하며, 1센트는 호가가 나타낼 수 있는 최소 간격입니다. 고정된 1센트의 가치는 주가에 따라 비율이 달라집니다. 700달러인 ETF에 비해 1센트는 미미한 수준이지만, 4달러인 주식에 비해서는 매우 큰 비중을 차지합니다. 아래 표는 호가 하한선이 얼마나 강력하게 작용하는지 측정합니다. 각 종목의 호가 업데이트 중 정확히 1센트인 비율, 해당 주가에서 1센트가 차지하는 bps(basis points, 0.01% 단위) 수치, 그리고 중앙값 spread(매수-매도 호가 차이)가 하한선보다 얼마나 높게 형성되어 있는지를 나타냅니다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT ticker,
typical_share_price,
pct_quotes_at_one_cent,
round(100 / typical_share_price, 2) AS one_cent_in_bps,
typical_spread_bps,
round(abs(typical_spread_bps - 100 / typical_share_price), 2) AS dist_from_floor_bps
FROM (
SELECT ticker,
round(quantileExactIf(0.5)((toFloat64(ask_price) + toFloat64(bid_price)) / 2, bid_price > 0 AND ask_price > bid_price), 2) AS typical_share_price,
round(100 * countIf(bid_price > 0 AND ask_price > bid_price AND abs(toFloat64(ask_price - bid_price) - 0.01) < 0.001) / countIf(bid_price > 0 AND ask_price > bid_price), 1) AS pct_quotes_at_one_cent,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS typical_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'KO', 'F', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
)
ORDER BY typical_share_price DESC주당 750.32달러 근처에서 거래되는 SPY은 업데이트의 23.4%이 정확히 1센트 간격입니다. 반면 목록에서 가장 비싼 주식의 경우, 1센트는 단 0.13 bps에 불과합니다. 중간 가격대인 83.82달러 근처의 KO은 업데이트의 65.4%이 하한선에 머물러 있습니다. 고가주 영역에서는 하한선이 완전히 지배적입니다. 13.86달러 근처의 F은 업데이트의 99%이 1센트 간격이며, 4.31달러 근처의 SOXS은 100%이 1센트 간격입니다. 이때 중앙값 spread는 1센트 하한선으로부터 0에서 0.03 bps 이내에 위치합니다. 가장 저렴한 주식의 경우, 거래에 드는 백분율 비용은 주가가 다른 단위를 입은 것과 같습니다. 즉, 호가는 1센트보다 좁아질 수 없습니다.
Keeping the toll down
- Limit orders name the price. A market order takes whatever the quote shows; a limit order fills at the stated price or better. A buy resting at the bid collects the spread instead of paying it when a seller comes to meet it — the trade-off is that it may never fill.
- The clock matters. Quoted spreads sit widest before the open, around the close, and in extended hours, and tightest through the liquid middle of the regular session — the intraday chart in our bid-ask spread guide shows the U-shape on real data.
- Read basis points, not cents. The same penny is 0.13 bps on SPY and 23.2 bps on SOXS. A "tight" one-cent quote can be the most expensive line on the board.
- Count the round trips. Each one pays the full quoted width once, and the toll scales with turnover, not with account size or intent. Activity gauges like relative volume measure when a name is trading far above its own normal — heavy-turnover habits are where spread costs quietly pile up.
FAQ
수수료가 없는 주식 거래 비용은 얼마입니까?
매수-매도 spread(호가 스프레드)의 절반이 진입 시 발생하며, 나머지 절반이 청산 시 발생합니다. 당사의 twelve-name ladder(12개 종목 계단식 분석)를 기준으로, 이러한 round trip(왕복) 비용은 거래 가치의 0.27 bps(SPY)에서 23.17 bps(SOXS) 사이였습니다. 이는 거래액 10,000달러당 약 0.27달러에서 23.17달러 수준입니다.
basis point(bp, 0.01%포인트)를 달러로 환산하면 얼마입니까?
1 bp는 1%의 100분의 1입니다. 즉, 10,000달러당 1달러, 100,000달러당 10달러입니다. bps로 표시된 spread는 10,000달러당 왕복 가격으로 계산됩니다. 가령 20 bp의 spread는 약 20달러의 비용이 발생합니다.
왜 leveraged ETF(레버리지 ETF)는 백분율 기준으로 spread가 그렇게 넓습니까?
낮은 주가가 1센트라는 최소 호가 단위와 맞물리기 때문입니다. 당사 보드에서 가장 저렴한 종목인 SOXS은 4.31달러 근처에서 거래되었으며, 호가 간격이 정확히 1페니인 경우가 100%이었습니다. 해당 주가에서 1페니는 거래당 23.2 bps에 해당합니다.
장기 투자자에게 bid-ask spread(매수-매도 스프레드)가 중요합니까?
액티브 트레이더에 비하면 훨씬 덜 중요합니다. ladder의 최상단 단계에서 단일 round trip 비용은 0.27 bps로 측정되었으며, 이는 10,000달러당 약 0.27달러 수준입니다. 10년에 한 번 이러한 비용을 지불하는 것은 미미한 수준입니다. 거래 비용은 보유 기간이 아니라 turnover(회전율)에 따라 증가합니다.
spread가 남은 유일한 거래 비용입니까?
spread는 모든 marketable order(시장가 주문)가 지불해야 하는 거래당 비용이며, 본 페이지에서 측정하는 비용입니다. 별도의 비용 항목들이 존재합니다. 대규모 주문은 체결 완료 전 가격을 변동시킬 수 있고, 펀드는 시간에 따라 expense ratio(운용 보수)를 부과하며, margin(증거금) 거래에는 이자가 발생합니다. 이러한 비용들이 spread를 대체하는 것이 아니라, spread 위에 추가로 발생합니다.
위의 모든 패널에는 해당 데이터를 생성한 SQL 쿼리가 포함되어 있습니다. 쿼리를 열어 실제 거래하는 ticker를 입력하면, Strasmore 터미널에서 본인만의 거래 비용 ladder를 산출할 수 있습니다. 거래 비용 ladder 확인하기