매수-매도 호가 스프레드란 무엇인가 실제 비용
매수-매도 호가 스프레드의 정의, 계산법, 거래당 비용을 틱 단위 미국 주식 호가 데이터로 측정한 실제 스프레드와 함께 설명합니다.
매수-매도 호가 스프레드는 특정 주식에 대해 현재 구매자가 지불할 의사가 있는 최고 가격(매수 호가)과 판매자가 수용할 의사가 있는 최저 가격(매도 호가) 사이의 차이입니다. 이는 거래에 내재된 비용으로, 매도 호가에 매수하고 매수 호가에 매도하면 그 차이는 호가를 제시한 자에게 귀속됩니다. 이 페이지의 모든 스프레드 수치는 틱 단위 호가 데이터로 측정되었으며, 각 수치 뒤에는 해당 쿼리가 첨부되어 있습니다.
매수-매도 호가 스프레드란? 평이한 정의
거래일 중 어느 순간이든 주식에는 하나가 아닌 두 개의 가격이 존재한다. 매수호가(bid)는 매수 의사를 표시한 최고 대기 주문이다. 매도호가(ask, 때로는 offer라고도 함)는 매도 의사를 표시한 최저 대기 주문이다. 매수-매도 호가 스프레드(bid-ask spread)는 이 둘 사이의 차이이다.
가상의 예를 들어보자: 주식이 $20.00 매수호가 / $20.05 매도호가로 호가될 경우 스프레드는 5센트이다. 즉시 매수하려는 사람은 $20.05를 지불하고, 즉시 매도하려는 사람은 $20.00를 받는다. 이 5센트는 증권사 수수료가 아니라 즉시성(immediacy)의 대가이며, 호가의 반대편에 있는 거래자, 대부분은 세션 내내 매수호가에 사고 매도호가에 팔 준비가 되어 있는 전문 시장 조성자(market maker)에게 돌아간다.
미국 주식의 경우, 모든 거래소의 최우선 매수호가와 최우선 매도호가는 하나의 전국 최우선 매수·매도호가, 즉 NBBO로 통합된다. 이것이 증권사 앱에 표시되는 호가이며, 이 글에서 측정하는 데이터이다. (금융에서는 "스프레드"라는 용어를 다른 차이를 나타낼 때도 사용한다: 2년물-10년물 스프레드(2s10s spread)는 주가가 아닌 국채 수익률 간의 차이이다.)
매수호가 vs. 매도호가: 주식 호가 읽는 법
다음은 애플(NVDA)의 실제 NBBO 기록으로, 당사 데이터 창 내 마지막 호가이며 통합 피드에서 가져온 것입니다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT stock,
toDecimalString(bid, 2) AS bid_price,
toDecimalString(ask, 2) AS ask_price,
toDecimalString(ask - bid, 2) AS spread,
toDecimalString((ask + bid) / 2, 2) AS midpoint_price,
round((ask - bid) / ((ask + bid) / 2) * 100, 3) AS spread_pct,
quote_time_et
FROM (
SELECT ticker AS stock,
argMax(toFloat64(bid_price), sip_timestamp) AS bid,
argMax(toFloat64(ask_price), sip_timestamp) AS ask,
formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%Y-%m-%d %H:%i') AS quote_time_et
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
)왼쪽에서 오른쪽으로 읽으면, 최우선 매수호가는 $333.72, 최우선 매도호가는 $333.86이며, 매도호가에서 매수호가를 뺀 스프레드는 $0.14이고, 타임스탬프는 2026-07-24 19:59 ET입니다. 중간가(midpoint)인 $333.79는 두 가격의 중간값으로, 해당 시점에서 주식의 공정가치에 대한 일반적인 기준점 역할을 합니다.
주목할 만한 세부 사항 하나: 이 호가는 장 마감 종료 후 수 시간이 지난 시간외 거래(extended session) 말미에 기록되었습니다. 시각은 스프레드에 영향을 미치며, 아래의 일중 차트(intraday chart)에서 그 차이가 얼마나 되는지 확인할 수 있습니다.
How to calculate the spread: cents, percent, and basis points
The same gap can be expressed three ways:
- Dollars and cents. Spread = ask minus bid. Simple, but hard to compare across stocks trading at different prices.
- Percent. Spread ÷ midpoint × 100. A five-cent spread on a $20 stock is 0.25% of the price; the same five cents on a $200 stock is 0.025%.
- Basis points (bps). Hundredths of a percent, the professional convention. Multiply the percentage by 100: 0.25% equals 25 bps.
Applied to the real Apple quote above: $0.14 ÷ $333.79 works out to 0.042% of the share price, an after-hours reading, and still well under 1% of the price.
좁은 스프레드와 넓은 스프레드: 유동성 주식과 비유동성 주식의 실제 수치
대부분의 설명은 "유동성 주식은 스프레드가 좁다"는 수준에서 멈춥니다. 여기에는 최근 며칠간의 기간 동안 모든 NBBO 업데이트를 측정하여 얻은 실제 차이의 크기가 제시됩니다. 아래 표는 거래량이 많은 6개 종목과 진정한 비유동성 소형주 두 종목, Nathan's Famous (NATH) 및 Seneca Foods (SENEA)를 짝지어 보여줍니다. "Typical"은 해당 기간의 중간 호가를 의미하며, 마지막 열은 해당 스프레드를 100주 기준 왕복 거래 시 달러로 환산한 값입니다(주당 센트와 100주당 달러는 동일한 수치입니다).
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT ticker,
round(median_spread_usd * 100, 1) AS typical_spread_cents,
round(median_spread_bps, 1) AS typical_spread_bps,
toDecimalString(median_spread_usd * 100, 2) AS spread_cost_100_shares
FROM (
SELECT ticker,
quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) AS median_spread_usd,
quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), toUInt64(sip_timestamp)) * 10000 AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'MSFT', 'KO', 'TSLA', 'NATH', 'SENEA')
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
)
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA', 'MSFT', 'KO', 'TSLA', 'NATH', 'SENEA'], ticker)유동성 종목 중에서 SPY의 일반적인 호가 스프레드는 2센트(0.3bp)였으며, Coca-Cola는 1센트(1.2bp), Tesla는 8센트(2.4bp)였습니다. 그 다음은 급격한 차이가 나타납니다. Nathan's Famous는 58센트(59.4bp), Seneca Foods는 193센트(116.6bp)로 측정되었습니다. 동일한 시장, 동일한 규칙이 적용되지만, 차이는 유동성, 즉 동시에 각 종목에서 경쟁하는 매수자, 매도자, 그리고 마켓 메이커의 수에서 비롯됩니다.
실제 거래에서 스프레드가 발생시키는 비용
스프레드의 영향을 체감하는 유용한 방법은 왕복 거래(round trip)의 가격을 산정하는 것이다: 매도호가에 매수한 직후 매수호가에 매도하면, 모든 주식에 대해 전체 스프레드를 포기하게 된다. 100주 기준으로 위 표에 이미 변환값이 제시되어 있으며, 주당 스프레드(센트 단위)는 동일한 숫자를 달러로 나타낸 것과 같다. 유명 종목의 경우 그 비용은 커피값 수준이다: Apple 100주에 $4.00, Coca-Cola에 $1.00. 거래량이 적은 종목은 다른 가격표를 적용한다: Nathan's Famous에 $58.00, Seneca Foods에 $193.00이며, 이는 수수료와 주문으로 인한 가격 변동을 제외한 금액이다. 이 수치는 주문이 표시된 호가에 체결된다고 가정하며, 표시된 수량보다 큰 주문은 더 많은 비용을 부담할 수 있다.
스프레드가 확대되는 시점: 장 개시, 장 마감, 그리고 시간 외 거래
스프레드는 하루 동안 일정하지 않다. 아래 차트는 동일한 기간 동안 애플의 30분 단위 시간대(동부 시간 기준)별 중간 호가 스프레드를 추적한 것으로, 시간 외 거래를 포함하며, 대부분의 설명가들이 주장만 하고 실제로 보여주지 않는 패턴을 나타낸다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
ORDER BY et_time그 형태는 양쪽 끝이 높은 U자형이다: 장 개시 전에는 넓고, 장중에는 페니 수준으로 좁아지며, 장 마감 후에는 다시 넓어진다. 해당 곡선에서 시간별로 고정된 네 개의 주요 지점은 다음과 같다:
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
HAVING et_time IN ('04:00', '09:30', '13:00', '16:00')
ORDER BY et_time하루 중 첫 번째 구간인 04:00 프리마켓 구간에서 애플의 중간 스프레드는 41센트였다. 정규 거래 첫 30분인 09:30 구간에서는 7센트로 급격히 좁아졌고, 오후 초반인 13:00 구간에서는 4센트를 기록했다. 마감 경매와 함께 장 마감 종이 울리는 시점부터 시작되는 16:00 구간에서는 스프레드가 17센트로 급등했으며, 이러한 격차는 저녁 시간대까지 높은 수준을 유지하여 세션의 마지막 구간에서는 23센트를 기록했다. 정규 거래 시간(동부 시간 오전 9시 30분~오후 4시) 동안에는 수십 개의 마켓 메이커가 동시에 해당 주식을 호가하지만, 시간 외 및 프리마켓 거래 시간대에는 경쟁하는 호가 수가 훨씬 적어 격차가 더 넓게 유지된다.
스프레드가 좁거나 넓어지는 요인
네 가지 요소가 좁은 스프레드와 함께 움직입니다.
- 경쟁. 특정 종목에 더 많은 마켓 메이커와 대기 주문이 있을수록 양쪽 호가가 더 좁아집니다. 거래량이 적은 종목은 단일 호가 제시자가 전체 시장을 설정하는 경우가 있습니다.
- 거래량. 거래량이 많고 스프레드가 좁은 현상은 위 표 전체에서 함께 나타납니다. 거래량이 많은 종목들은 거래량이 적은 종목들의 호가 차이에 비해 아주 작은 수준에 머뭅니다.
- 변동성. 빠른 시장에서는 호가가 지속적으로 재조정되며, 거래가 진정될 때까지 호가 차이는 더 넓게 유지되는 경향이 있습니다.
- 주가와 호가 단위. 1달러 이상의 미국 주식은 1센트 단위로 호가가 제시되며, 1센트가 최소 단위입니다. 가장 유동성이 높은 저가 종목들은 하루 중 대부분을 이 가격에 고정되어 있습니다. 저가 주식의 경우, 이 동일한 최소 1센트가 주당 더 큰 비율을 차지합니다.
스프레드 비용을 낮추는 방법
- 지정가 주문은 가격을 지정합니다. 시장가 주문은 호가가 제시하는 대로 체결되지만, 지정가 주문은 명시된 가격이나 그보다 나은 가격에서만 체결됩니다. 매수호가에 대기 중인 매수 주문은 매도자가 접근할 때 스프레드를 지불하는 대신 획득하지만, 체결되지 않을 수도 있다는 단점이 있습니다.
- 정규 시간대의 유동성 높은 종목이 저렴한 조합입니다. 위의 당일 차트는 그 규모를 보여줍니다: 정오 무렵 유동성 높은 주식의 스프레드는 거래 세션 중 가장 좁습니다.
- 베이시스 포인트는 센트가 숨기는 것을 드러냅니다. 동전 몇 푼처럼 들리는 차이는 위의 소형주 행에서 볼 수 있듯이 거래량이 적거나 가격이 낮은 주식에서는 의미 있는 퍼센트의 분수가 될 수 있습니다.
- 라운드 트립 횟수가 적을수록 통행료가 줄어듭니다. 모든 라운드 트립은 스프레드를 한 번 지불하며, 총 비용은 포지션이 회전하는 빈도에 따라 증가합니다.
호가-매도 스프레드 FAQ
좋은 호가-매도 스프레드란 무엇인가?
공식적인 기준은 없지만, 위 표는 그 척도를 제시한다. 측정 기간 동안 SPY의 일반적인 스프레드는 주가 대비 0.3 베이시스 포인트(bps)였고, 테슬라는 2.4 bps였다. 반면 거래량이 적은 소형주는 59.4 및 116.6 bps에 달했다. 한 자릿수 베이시스 포인트는 타이트한 수준이며, 스프레드가 주가의 약 1%를 넘어서면 지정가 주문이 그 가치를 발휘한다.
누가 호가-매도 스프레드를 가져가는가?
호가를 제시하는 주체, 일반적으로 마켓 메이커가 양쪽 호가가 모두 체결될 때 스프레드를 얻는다. 이는 항상 거래할 준비를 갖추는 데 대한 보상이며, 브로커나 거래소가 징수하는 수수료가 아니다.
넓은 호가-매도 스프레드는 좋은가, 나쁜가?
넓은 스프레드는 위 표의 100주 비용 열에서 볼 수 있듯이 왕복 거래 비용을 높인다. 넓은 스프레드는 또한 정보를 전달한다. 즉, 호가를 제시하는 참가자가 더 적고, 마지막 체결 가격은 주문이 실제로 받게 될 가격에 대한 덜 정확한 추정치라는 의미다.
매도호가가 매수호가보다 높은 이유는 무엇인가?
구조적으로 그렇다. 매수호가는 매수자가 지불할 의사가 있는 최고 가격이고, 매도호가는 매도자가 수용할 의사가 있는 최고 가격이다. 둘이 일치하면 거래소는 즉시 이들을 체결시키고 호가는 갱신된다. 대기 중인 호가는 항상 매도호가가 매수호가 이상으로 표시된다.
장기 투자자에게 호가-매도 스프레드가 중요한가?
활동적인 트레이더보다는 덜 중요하며, 데이터는 그 규모를 보여준다. SPY의 100주 왕복 거래에서 일반적인 스프레드 비용은 $2.00 로 측정되었다. 이를 10년에 한 번 부담하는 것은 잡음에 불과하지만, 거래량이 적은 주식의 스프레드를 매주 부담하면 실질적인 자금으로 누적된다.
위의 모든 수치는 저장되고 검증 가능한 쿼리에서 렌더링되며, 모든 패널 아래의 SQL을 확장하여 감사할 수 있다. 보유한 티커의 스프레드를 측정하려면 Strasmore 터미널에서 동일한 질문을 평이한 영어로 문의하라.