Strasmore Research
학습 Matt Connor작성자 Matt Connor · 업데이트됨 2026-10-18 · data as of October 18, 2026 · refreshed weekly

NBBO란 무엇인가? 전국 최우선 매수 매도 호가 정의

NBBO(National Best Bid and Offer, 전국 최우선 매수·매도 호가)는 미국 주식 시장의 통합 호가 기준입니다. 증권사가 주문 처리 시 반드시 준수하거나 상회해야 하는 최적 가격을 의미하며 실제 호가 기록을 바탕으로 실시간 업데이트됩니다.

NBBO의 정의와 시장 내 역할

NBBO(National Best Bid and Offer, 전국 최우선 매수·매도 호가)는 미국 주식 시장의 통합 호가입니다. 이는 모든 거래소에서 제시된 매수 호가 중 가장 높은 가격과 매도 호가 중 가장 낮은 가격을 의미합니다. 귀하의 투자 앱에 표시되는 호가가 바로 이것이며, 증권사가 주문을 처리할 때 반드시 준수하거나 상회해야 하는 기준점입니다. 아래의 모든 수치는 실제 호가 기록에서 추출되었으며, 관련 쿼리가 첨부되어 있습니다.

NBBO란 무엇인가? 쉬운 용어로 정의하기

미국 주식은 한 곳에서만 거래되지 않는다. NYSE, Nasdaq을 비롯한 십여 개의 거래소는 동일한 티커(ticker)에 대해 각각 주문장을 운영하며, 각 거래소마다 최우선 매수호가(best bid)와 매도호가(best ask)가 존재한다. NBBO(National Best Bid and Offer, 전국 최우선 매수·매도호가)는 이러한 각 거래소의 최우선 호가를 하나로 통합한 것으로, 어디서든 가능한 가장 높은 매수호가와 가장 낮은 매도호가를 각 호가별 가용 수량과 함께 나란히 보여준다. 이 통합 작업은 거래소들이 공동으로 운영하는 시장 유틸리티인 증권정보처리장치(SIPs, Securities Information Processors)가 수행한다.

초기에 두 가지 세부 사항을 이해하는 것이 중요하다. 매수호가와 매도호가는 서로 다른 거래소에 동시에 존재할 수 있다. 또한 가격 변화가 없더라도 업데이트가 발생할 수 있는데, 동일한 최우선 가격에서 수량만 변동되어도 새로운 기록이 생성(print)되기 때문이다. 트레이더들은 이 두 가지 최우선 가격을 '더 터치(the touch)'라고 부르며, 그 사이의 간격을 매수-매도 스프레드(bid-ask spread)라고 한다.

NBBO 호가 읽는 법: 가격, 수량, 그리고 속도

최근 정규장 오후 한 시 삼십 분(동부 표준시 기준)에 기록된 코카콜라(KO)의 연속적인 NBBO(National Best Bid and Offer, 최우선 매수·매도 호가) 기록 열 건을 소개합니다. 이는 실제 시장에 도달하는 국가 통합 호가입니다.

조회NBBO(최우선 매수·매도 호가) 업데이트 10회 연속: 최근 세션 오후 1시 30분 기준
ET(미 동부 표준시) 시간경과 시간(ms)매수 호가 수량최우선 매수 호가최우선 매도 호가매도 호가 수량스프레드(센트)
13:30:00.148070090.1290.132001
13:30:00.254105.5860090.1290.132001
13:30:00.254106.1960090.1290.133001
13:30:00.255106.7160090.1290.139001
13:30:00.255107.0360090.1290.1311001
13:30:00.255107.2880090.1290.1311001
13:30:00.257108.7580090.1290.139001
13:30:00.273124.5680090.1290.133001
13:30:00.700552.4690090.1290.133001
13:30:00.711562.7480090.1290.133001
모든 수치 뒤에 숨겨진 정확한 SQL
WITH (
    SELECT max(session_date)
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
               countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS regular_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime(today() - 10)
          AND window_start < toDateTime(today() - 3)
        GROUP BY session_date
        HAVING regular_bars = 390
    )
) AS last_session
SELECT substring(toString(toTimeZone(sip_timestamp, 'America/New_York')), 12, 12) AS et_time,
       round((toUnixTimestamp64Nano(sip_timestamp) - min(toUnixTimestamp64Nano(sip_timestamp)) OVER ()) / 1e6, 2) AS elapsed_ms,
       bid_size AS bid_shares,
       toFloat64(bid_price) AS best_bid,
       toFloat64(ask_price) AS best_ask,
       ask_size AS ask_shares,
       round((toFloat64(ask_price) - toFloat64(bid_price)) * 100, 1) AS spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'KO'
  AND sip_timestamp >= toDateTime(last_session, 'America/New_York') + INTERVAL 13 HOUR + INTERVAL 30 MINUTE
  AND sip_timestamp < toDateTime(last_session, 'America/New_York') + INTERVAL 14 HOUR
  AND bid_price > 0
  AND ask_price > bid_price
ORDER BY sip_timestamp, sequence_number
LIMIT 10
직접 실행해 보기

첫 번째 행은 두 개의 유효 호가로 읽습니다. 시간은 13:30:00.148(동부 표준시)입니다. 매수 최우선 호가는 $90.12에 700주입니다. 매도 최우선 호가는 $90.13에 200주입니다. 양측의 차이인 스프레드(spread)는 1센트입니다.

주식 수는 터치 시점의 수량(size at the touch)으로, 최우선 두 가격에서 노출된 유동성을 의미합니다. 이 수량보다 큰 주문이 들어오면 해당 물량은 소진되고 나머지는 호가창의 다음 가격대에서 체결됩니다. 노출된 수량은 전체 재고가 아닌 최소 단위일 뿐입니다. 실제로는 다크풀(dark pools)을 포함하여 두 가격대 안팎에 더 많은 주문이 숨겨져 있는 경우가 많습니다.

이제 아래로 행을 읽어 내려갑니다. 모든 10개의 기록은 첫 번째 기록으로부터 562.74밀리초 이내에 발생했습니다. 정해진 일정은 없으며, SIP(Securities Information Processor, 증권정보처리장치)는 최우선 호가가 변경될 때마다 정보를 게시합니다. 더 나은 매수 호가, 더 나은 매도 호가, 최우선 가격의 수량 변화, 또는 최우선 거래소의 교체 중 하나라도 발생하면 새로운 행이 출력됩니다. 전체 세션에 대한 상세 분석은 시장 미세구조 심층 분석을 참조하십시오.

NBBO에 홀수 단위(odd lot) 주문이 포함됩니까?

대체로 그렇지 않습니다. 전국 최우선 호가(national quote)는 오직 정수 단위(round-lot) 주문만을 기준으로 산출됩니다. 정수 단위보다 적은 수량의 주문을 홀수 단위라고 하며, 이는 전국 최우선 매수 호가(national best bid)보다 유리한 가격으로 거래소 장부에 머물거나 체결될 수 있지만, NBBO에는 전혀 나타나지 않습니다.

정수 단위는 더 이상 일률적으로 100주가 아닙니다. 미국 증권거래위원회(SEC)의 개정된 Reg NMS 호가 규정에 따라 주가별로 차등 적용됩니다. 주가가 250달러 이하일 때는 100주, 250.01달러에서 1,000달러 사이는 40주, 1,000.01달러에서 10,000달러 사이는 10주, 그 이상은 1주입니다. 이러한 구간은 시세 정보(tape)에서 확인할 수 있으며, 해당 패널은 각 구간별로 6개 종목에 대해 통합 호가에 나타나는 최소 매수 호가 수량을 반영합니다.

조회NBBO 최소 표시 단위: 가격대별 6개 종목
ticker주가최소 호가 단위중앙값 매수 수량
F121008000
KO89.93100400
NVDA225.82100200
AAPL345.924040
SPY777.4640160
AZO2895.021010
모든 수치 뒤에 숨겨진 정확한 SQL
WITH (
    SELECT max(session_date)
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
               countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS regular_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime(today() - 10)
          AND window_start < toDateTime(today() - 3)
        GROUP BY session_date
        HAVING regular_bars = 390
    )
) AS last_session
SELECT ticker,
       round(quantileDeterministic(0.5)(toFloat64(bid_price), toUInt64(sequence_number)), 2) AS share_price,
       min(bid_size) AS smallest_quoted_size,
       round(quantileDeterministic(0.5)(toFloat64(bid_size), toUInt64(sequence_number)), 0) AS median_bid_size
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('F', 'KO', 'NVDA', 'AAPL', 'SPY', 'AZO')
  AND sip_timestamp >= toDateTime(last_session, 'America/New_York') + INTERVAL 10 HOUR
  AND sip_timestamp < toDateTime(last_session, 'America/New_York') + INTERVAL 11 HOUR
  AND bid_price > 0
  AND bid_size > 0
GROUP BY ticker
ORDER BY share_price
직접 실행해 보기

주가가 약 12달러인 포드(Ford)는 해당 시간 동안 100주 미만의 매수 호가를 보인 적이 없습니다. 89.93달러인 코카콜라(Coca-Cola)도 마찬가지입니다. 345.92달러인 애플(Apple)은 40주까지 감소하며, 주당 2895.02달러인 오토존(AutoZone)은 10주까지 내려가고 중앙값으로 표시되는 매수 호가는 10주입니다. 시장은 가격 구간을 추종합니다. 더 유리한 가격의 홀수 단위 주문은 공시된 스프레드(spread) 내부에 비공개로 존재할 수 있으므로, 실제 최선의 가용 가격은 때때로 NBBO가 시사하는 것보다 더 좋을 수 있습니다.

앱의 호가가 실시간 NBBO와 정확히 일치하지 않는 이유

스마트폰에서 확인하는 호가는 거래소 매칭 엔진(matching engine)에서 시작하여 SIP(Securities Information Processor, 증권정보처리장치), 데이터 공급자, 브로커를 거쳐 화면에 도달하기까지의 경로를 이동합니다. 모든 기록에는 거래소 자체 타임스탬프와 SIP가 공표한 타임스탬프라는 두 개의 시계가 찍히며, 이 둘 사이의 간극이 바로 통합 과정에서 발생하는 지연 시간입니다.

조회거래소 타임스탬프 대비 SIP(증권정보처리기) 타임스탬프: 통합 단계(마이크로초 단위)
ticker중앙값(μs)P99(99백분위수, μs)
SPY228492.4
NVDA190.51722.8
AAPL27.5539.8
KO433.2636
모든 수치 뒤에 숨겨진 정확한 SQL
WITH (
    SELECT max(session_date)
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
               countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS regular_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime(today() - 10)
          AND window_start < toDateTime(today() - 3)
        GROUP BY session_date
        HAVING regular_bars = 390
    )
) AS last_session
SELECT ticker,
       round(quantileDeterministic(0.5)((toUnixTimestamp64Nano(sip_timestamp) - toUnixTimestamp64Nano(participant_timestamp)) / 1000.0, toUInt64(sequence_number)), 1) AS median_micros,
       round(quantileDeterministic(0.99)((toUnixTimestamp64Nano(sip_timestamp) - toUnixTimestamp64Nano(participant_timestamp)) / 1000.0, toUInt64(sequence_number)), 1) AS p99_micros
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'NVDA', 'AAPL', 'KO')
  AND sip_timestamp >= toDateTime(last_session, 'America/New_York')
  AND sip_timestamp < toDateTime(last_session + 1, 'America/New_York')
  AND participant_timestamp > toDateTime64('2020-01-01 00:00:00', 9)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'NVDA', 'AAPL', 'KO'], ticker)
직접 실행해 보기

SPY의 중앙값 지연 시간은 228 마이크로초(100만 분의 1초)였으며, Apple은 27.5 마이크로초였습니다. 분포의 꼬리 부분은 중앙값보다 두껍게 나타나, NVDA(Nvidia)의 99퍼센타일 지연 시간은 1722.8 마이크로초를 기록했습니다. 인간의 관점에서 SIP가 느린 것은 아닙니다. 하지만 두 가지 다른 요인이 존재합니다.

첫째, 데이터가 의도적으로 지연될 수 있습니다. 개인 투자자용 앱이나 차트 사이트에서 제공하는 무료 호가 피드는 거래소 라이선스 규정에 따라 통상 15분 지연되며, 실시간 스트리밍은 별도의 유료 구독이 필요합니다.

둘째, 전문 투자 기관은 SIP를 기다리지 않습니다. 각 거래소는 자체 매칭 엔진에서 나오는 직접 피드(direct feed)를 판매합니다. 거래소와 같은 공간에 서버를 둔(colocated) 기관은 SIP 버전의 정보가 도착하기 전에 이를 읽고 자체적인 최우선 매수·매도 호가를 산출합니다. 이 마이크로초 단위의 우위는 하루 종일 양방향 호가를 제시하는 market maker(시장조성자)에게 결정적인 차이를 만듭니다.

NBBO는 얼마나 자주 업데이트되는가? 유동성이 높은 종목과 낮은 종목의 비교

모든 상장 주식은 NBBO(National Best Bid and Offer, 최우선 매수·매도 호가)를 가지며, 그 업데이트 속도는 유동성을 측정하는 지표가 됩니다. 아래 표는 거래량이 많은 네 종목과 유동성이 낮은 소형주 두 종목인 네이선스 페이머스(NATH) 및 세네카 푸즈(SENEA)의 최근 전체 거래 세션 평균치를 나타냅니다.

조회세션별 NBBO 업데이트: 거래 활발한 4개 종목 vs 거래 부진한 소형주 2개 종목
ticker세션세션당 평균 업데이트세션당 평균 업데이트(백만)최저 변동 대비 배수
SPY522650352.2653045
NVDA513582901.3581826
AAPL55613720.561755
KO53065670.307412
SENEA540320.0045
NATH57440.0011
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT ticker,
       uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) AS sessions,
       round(count() / uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York')))) AS avg_updates_per_session,
       round(count() / uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) / 1e6, 3) AS avg_updates_per_session_m,
       round((count() / uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York')))) / min(count() / uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York')))) OVER (), 0) AS multiple_of_quietest
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'NVDA', 'AAPL', 'KO', 'SENEA', 'NATH')
  AND sip_timestamp >= toDateTime(today() - 10)
  AND sip_timestamp < toDateTime(today() - 3)
  AND toDate(toTimeZone(sip_timestamp, 'America/New_York')) IN (
      SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
      FROM global_markets.delayed_stocks_minute_aggs
      WHERE ticker = 'SPY'
        AND window_start >= toDateTime(today() - 10)
        AND window_start < toDateTime(today() - 3)
      GROUP BY session_date
      HAVING countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) = 390
  )
GROUP BY ticker
ORDER BY indexOf(['SPY', 'NVDA', 'AAPL', 'KO', 'SENEA', 'NATH'], ticker)
직접 실행해 보기

S&P 500 ETF인 SPY는 세션당 평균 2.265백만 건의 NBBO 업데이트를 기록했으며, 이는 표에서 가장 거래가 한산한 종목 대비 3045배에 달하는 수치입니다. NVDA(엔비디아)는 평균 1.358백만 건, 애플(AAPL)은 0.561백만 건을 기록했습니다. 반면 급격한 차이를 보이며 세네카 푸즈는 평균 세션당 4032건, 네이선스 페이머스는 744건의 업데이트를 기록했습니다. SPY와 같은 속도로 화면을 읽을 수 있는 사람은 없으며, NBBO는 소프트웨어를 위해 구축된 데이터 피드입니다.

NBBO 업데이트가 가장 빠른 시점: 장 개시 직후와 장중

업데이트 속도 또한 일일 주기를 따릅니다. 아래 차트는 Apple의 NBBO(National Best Bid and Offer, 최우선 매수·매도 호가) 업데이트 횟수를 30분 단위로 평균 낸 것입니다(미 동부 표준시 기준). 마지막 열은 각 시간대의 업데이트 횟수를 9시 30분 시간대 대비 백분율로 나타냅니다.

조회AAPL: 30분 단위 평균 분당 NBBO 업데이트(ET 기준, 오전 4시~오후 8시)
32 rows (showing 20)
ET(미 동부 표준시) 시간분당 평균 업데이트개장 구간 비중(%)
04:00361
04:30130.4
05:00160.5
05:30130.4
06:0090.3
06:30160.5
07:00371.1
07:30320.9
08:00441.3
08:30391.1
09:00581.7
09:303512100
10:00165147
10:30123435.1
11:00120934.4
11:30104329.7
12:0099328.3
12:30106030.2
13:00108731
13:3090125.7
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT et_time,
       avg_updates_per_minute,
       round(100 * avg_updates_per_minute / maxIf(avg_updates_per_minute, et_time = '09:30') OVER (), 1) AS pct_of_opening_bucket
FROM (
    SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
           round(count() / (uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) * 30)) AS avg_updates_per_minute
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= toDateTime(today() - 10)
      AND sip_timestamp < toDateTime(today() - 3)
      AND toDate(toTimeZone(sip_timestamp, 'America/New_York')) IN (
      SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
      FROM global_markets.delayed_stocks_minute_aggs
      WHERE ticker = 'SPY'
        AND window_start >= toDateTime(today() - 10)
        AND window_start < toDateTime(today() - 3)
      GROUP BY session_date
      HAVING countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) = 390
  )
    GROUP BY et_time
    HAVING et_time >= '04:00' AND et_time < '20:00'
)
ORDER BY et_time
직접 실행해 보기

개장 경매(opening auction) 직후 30분 동안 Apple의 전국 호가는 분당 평균 3512회 업데이트되었으며, 10시 시간대의 업데이트 속도는 그 수준의 47%를 기록했습니다. 이후 장중에는 테이프(거래 기록)가 얇아지는데, 14시 30분 시간대의 업데이트는 분당 1022회로 개장 직후 속도의 29.1% 수준까지 떨어집니다. 15시 30분부터 장 마감까지는 다시 반등하여 분당 2536회, 개장 직후 속도의 72.2%를 기록합니다. 즉, 호가 업데이트는 장 시작과 마감 시점에 가장 활발하고 장중에는 가장 저조합니다. 정규장 외 시간에는 테이프가 거의 정적 상태에 가까워지며, 오후 4시 장 마감 이후에는 분당 15회까지 감소합니다.

거래 정지 중 NBBO는 어떻게 됩니까?

주가가 너무 급격하게 변동하면 상·하한가 제한(limit-up/limit-down) 규정에 따라 5분간 거래가 일시 중단됩니다. 이때 호가는 사라지지도, 실시간으로 유지되지도 않습니다. 호가 갱신이 멈추며, 거래 중단 직전의 마지막 기록이 화면에 그대로 남게 됩니다. GameStop(GME)은 2024년 5월 14일 오전 11시(미 동부 표준시) 직후 이러한 거래 정지 조치를 겪었습니다. 아래 패널은 해당 시점 전후의 분 단위 호가 갱신 및 체결 내역을 추적합니다.

조회GME, 2024-05-14: 5분간의 LULD(가격제한폭 변동성 완화장치) 정적 변동성 완화 기간 중 분당 NBBO 업데이트 및 거래량
ET(미 동부 표준시) 시간NBBO(최우선 매수·매도 호가) 업데이트거래량
10:5718125690
10:5812754420
10:5914914068
11:00451112419
11:013461331
11:0200
11:0300
11:0410
11:0500
11:06415514007
11:07462713199
11:0829418985
11:0916136487
11:1017416222
11:1114475691
모든 수치 뒤에 숨겨진 정확한 SQL
WITH spine AS (
    SELECT toStartOfMinute(toTimeZone(window_start, 'America/New_York')) AS et_min
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2024-05-14 10:57:00', 'America/New_York')
      AND window_start < toDateTime('2024-05-14 11:12:00', 'America/New_York')
),
gme_trades AS (
    SELECT toStartOfMinute(toTimeZone(window_start, 'America/New_York')) AS et_min,
           sum(transactions) AS trades
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'GME'
      AND window_start >= toDateTime('2024-05-14 10:57:00', 'America/New_York')
      AND window_start < toDateTime('2024-05-14 11:12:00', 'America/New_York')
    GROUP BY et_min
),
gme_quotes AS (
    SELECT toStartOfMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min,
           count() AS nbbo_updates
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'GME'
      AND sip_timestamp >= toDateTime('2024-05-14 10:57:00', 'America/New_York')
      AND sip_timestamp < toDateTime('2024-05-14 11:12:00', 'America/New_York')
    GROUP BY et_min
)
SELECT formatDateTime(spine.et_min, '%H:%i') AS et_time,
       ifNull(gme_quotes.nbbo_updates, 0) AS nbbo_updates,
       toUInt64(ifNull(gme_trades.trades, 0)) AS trades
FROM spine
LEFT JOIN gme_quotes ON gme_quotes.et_min = spine.et_min
LEFT JOIN gme_trades ON gme_trades.et_min = spine.et_min
ORDER BY spine.et_min
직접 실행해 보기

거래 정지 직전 1분 동안, 11:00, GameStop의 통합 호가는 4511회 갱신되었고 12419건의 체결이 발생했습니다. 이후 두 지표 모두 급락합니다. 11:02에 0건의 호가 기록, 11:03에 0건의 호가 기록이 남았으며, 이에 대응하는 체결은 0건이었습니다. 이는 거래가 멈춘 종목에서 호가 움직임 또한 멈췄음을 의미합니다. 거래가 재개되는 11:06 분에 호가 갱신은 4155회, 체결은 14007건으로 다시 늘어났으며, 이는 표에서 가장 거래가 활발했던 분입니다. 거래가 정지된 종목의 마지막 NBBO(National Best Bid and Offer, 최우선 매수·매도 호가)는 거래 가능한 가격이 아니라 화석과 같습니다. 2021년 1월 GameStop 장세는 이러한 거래 정지가 반복될 때 시세 기록(tape)에 어떤 영향을 미치는지 보여줍니다.

브로커가 NBBO 또는 그보다 유리한 가격으로 주문을 체결해야 하는 이유

NBBO(National Best Bid and Offer, 최우선 매수·매도 호가)는 규제상의 벤치마크입니다. 2005년 채택된 미국 증권거래위원회(SEC)의 시장 구조 규정인 Regulation NMS(국가시장시스템 규정)에는 주문 보호 규칙인 Rule 611이 포함되어 있습니다. 이는 거래소가 다른 거래소에 표시된 보호 호가보다 불리한 가격으로 주문을 체결할 수 없도록 하는 규정입니다. 또한 브로커는 고객에게 NBBO를 기준으로 하는 최선 집행(best execution) 의무를 집니다. 즉, 시장가 매수 주문은 최우선 매도 호가(national best ask) 이하로, 시장가 매도 주문은 최우선 매수 호가(national best bid) 이상으로 체결되어야 합니다.

대다수의 개인 투자자는 이 사실을 간과합니다. 개인 투자자의 시장가 주문은 대부분 거래소에 도달하지 않습니다. 개인 투자자의 시장가 주문 흐름은 대부분 도매업자(wholesalers)에게 전달됩니다. 이들은 거래소 밖에서 주문을 체결할 권리를 대가로 지불하는 시장 조성자(market maker)이며, 내부적으로 주문을 처리한 뒤 장외 보고 시설(off-exchange reporting facility)에 체결 내역을 기록합니다. 이때도 NBBO는 여전히 유효합니다. 도매업자는 체결 시점에 국가 최우선 호가와 같거나 더 나은 가격을 제시해야 하며, 호가 스프레드(spread) 안에서 1센트 미만의 가격을 개선해 주는 가격 개선(price improvement)을 통해 주문 흐름을 확보하기 위해 경쟁합니다. NBBO는 거래소가 아닌 참조 가격일 뿐이며, 선택하는 주문 유형에 따라 스프레드를 가로질러 거래할지 여부가 결정됩니다.

자주 묻는 질문(FAQ)

NBBO에 홀수 단위(odd lot) 주문이 포함됩니까?

아니요. 국가 최우선 호가(national quote)는 라운드 로트(round-lot) 호가만으로 구성됩니다. Reg NMS는 가격에 따라 라운드 로트 단위를 차등화하는데, 250달러 미만 주식은 100주, 1만 달러 초과 주식은 1주가 기준입니다. 위에서 언급된 포드(Ford)의 테이프상 최소 매수 호가는 100주였으며, 주가가 훨씬 높은 오토존(AutoZone)은 10주였습니다. 더 유리한 가격의 홀수 단위 주문은 공시된 스프레드(spread) 내부에 표시되지 않은 채 머물러 있습니다.

증권사 앱의 호가가 실시간 NBBO와 다른 이유는 무엇입니까?

두 가지 이유가 있으며, 둘 다 SIP(증권 정보 처리기)와는 무관합니다. 첫째, 무료 개인 투자자용 데이터 피드는 거래소 라이선스 규정에 따라 실시간 비용을 지불하지 않는 한 통상 15분 지연됩니다. 둘째, 통합 데이터는 공시된 스냅샷입니다. SPY의 통합 단계에서 중앙값 기준 228 마이크로초가 소요되는데, 거래소 직접 피드를 이용하는 기업들은 이보다 더 빠르게 정보를 확인합니다.

주식 거래가 중단되면 NBBO는 어떻게 됩니까?

동결됩니다. 위에서 언급된 게임스톱(GameStop)의 5분간 상하한가 제한(limit-up/limit-down) 정지 기간 동안, 테이프에는 0건의 호가 업데이트와 11:03 및 0건의 체결이 기록되었습니다. 마지막 호가는 화면에 유지되지만 거래는 불가능하며, 재개 경매(reopening auction)를 통해 다음 호가가 결정됩니다.

시간 외 거래에서도 NBBO가 존재합니까?

네. 통합 호가는 동부 표준시 기준 오전 4시부터 오후 8시까지 송출되므로, 장전 및 장후 거래 시간 동안에도 국가 최우선 호가가 존재합니다. 다만 그 속도는 정규장 대비 일부에 불과하여, 장전 거래 마지막 구간의 애플(Apple) 업데이트는 분당 58건인 반면, 장 개시 후에는 3512건에 달합니다.

데이터 참고 사항: 윈도우 및 필터

롤링 윈도우는 생성 3일 전에 마감되며(피드 초기 단계에 짧은 수집 지연 발생), SPY의 390개 정규장 분봉이 모두 기록된 전체 세션 일수만 계산합니다. 코카콜라(Coca-Cola) 패널은 일방향 및 교차(crossed) 기록을 제외하며, 카운팅 패널은 모든 기록을 있는 그대로 반영합니다(잠김 및 교차 시장에서 제외된 항목을 다룹니다). 게임스톱 패널은 특정 날짜에 고정되어 있으며, SPY의 분봉을 시간 척도로 사용하므로 거래가 중단된 분은 0으로 표시됩니다.


모든 패널은 해당 데이터를 산출한 SQL과 함께 제공됩니다. 패널을 열어 원하는 티커(ticker)로 교체한 뒤, 스트라스모어(Strasmore) 터미널에서 해당 종목의 NBBO 업데이트 횟수를 확인하십시오.

#nbbo#quotes#market structure#reg nms#liquidity