Strasmore Research
学習 Matt Connor著者: Matt Connor ・更新: 2026-09-05 · data as of September 5, 2026 · refreshed weekly

NBBOとは?全米最良気配の仕組みと読み方

NBBOは、ブローカーが満たすか上回るべき統合気配値です。実際のティックデータで更新速度や価格、数量の読み方を確認できます。

NBBO(National Best Bid and Offer、全米最良気配)は、米国株の統合気配値です。すべての取引所を対象に、その時点で買い手が提示する最高買い気配値と、売り手が提示する最低売り気配値を示します。アプリに表示される気配値であり、ブローカーが注文執行時に満たすか上回らなければならない基準でもあります。以下の数値はすべて実際の気配値記録に基づいており、クエリを添付しています。

NBBOとは何か:平易な定義

米国株は一つの場所で取引されているわけではありません。NYSE、Nasdaq、その他十数の取引所が、同じtickerについてそれぞれ注文板を運営し、各取引所に最良買い気配と最良売り気配があります。NBBOは、これらの最良気配を統合したものです。市場全体で最も高い買い気配と、最も低い売り気配を、それぞれの価格で売買できる株数とともに示します。この統合を担うのは、取引所が共同で運営する市場インフラである証券情報処理機関、すなわちSIPです。

早い段階で押さえておきたい点が二つあります。買い気配と売り気配は、同時に二つの異なる取引所に存在することがあります。また、更新に価格変更は必須ではありません。同じ最良価格でも、数量が変われば新しい記録として配信されます。トレーダーはこの二つの最良価格をthe touchと呼び、その差を買い気配と売り気配のスプレッドと呼びます。

NBBO気配値の読み方:価格、数量、更新ペース

以下は、最近の通常取引日に東部時間午後1時30分から取得した、Coca-Cola(KO)の連続する10件のNBBO記録です。実際に配信された全米最良気配を示しています。

クエリKO:最近のセッションの東部時間午後1時30分からのNBBO連続10回更新
ET時刻経過ms買い気配株数最良買い気配最良売り気配売り気配株数スプレッド(セント)
13:30:00.141020088.1188.123001
13:30:00.1410.2620088.1188.127001
13:30:00.257115.8120088.1188.126001
13:30:01.017876.5520088.1188.127001
13:30:01.3071166.3720088.1188.126001
13:30:01.4911349.9520088.1188.127001
13:30:01.5751433.6920088.1188.126001
13:30:01.7291588.0110088.1188.126001
13:30:01.7291588.1610088.1188.127001
13:30:01.7291588.1610088.1188.128001
各数値の背後にある正確な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.141 ET時点の2つの提示注文として読み取ります。買い手側の最良気配は、$88.11200株です。売り手側の最良気配は、$88.12300株です。両者の差は1セントでした。

株数は最良気配での数量を示します。これは、2つの最良価格に表示されている流動性です。その数量を上回る注文は、まずその数量を消化し、残りが板の次の価格で約定します。表示数量は最低限の目安であり、全在庫を示すものではありません。2つの価格のいずれか、またはその間に、ダークプールを含む非表示の注文がさらに存在することもあります。

次に、各行を下へ追ってください。10件の記録は、最初の記録から1588.16ミリ秒以内に到着しました。更新時刻はあらかじめ決まっていません。SIPは、最良気配の更新が発生するたびに配信します。行が記録されるきっかけは、最良買い気配の改善、最良売り気配の改善、いずれかの最良価格における株数の変化、または最良気配を維持する取引所の入れ替わりの4つです。取引時間全体の見方については、市場マイクロストラクチャーの詳細解説をご覧ください。

NBBOに奇数ロットは含まれますか?

ほとんどの場合、含まれません。全国最良気配は、ラウンドロットの注文だけを基に形成されます。ラウンドロット未満の株数の注文は「奇数ロット」です。取引所の板で全国最良買い気配より有利な価格に置かれ、その価格で約定しても、NBBOには表示されないことがあります。

ラウンドロットは、もはや一律100株ではありません。SECが改正したReg NMSの気配表示ルールでは、株価に応じて段階的に定められています。250ドル以下は100株、250.01ドルから1,000ドルまでは40株、1,000.01ドルから10,000ドルまでは10株、それを超える場合は1株です。これらの区分はテープで確認できます。パネルでは、六銘柄について各価格帯の統合気配に一度でも表示された買い気配の最小株数を示しています。

クエリNBBOが表示する最小サイズ:価格帯全体の6銘柄
ticker株価最小気配数量買い気配数量の中央値
F13.961007300
KO89.05100200
NVDA217.87100200
AAPL324.534080
SPY763.5340240
AZO2950.371010
各数値の背後にある正確な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
自分で実行する

$13.96前後で気配を示すFordでは、その時間帯に100株を下回る買い気配は一度も表示されません。$89.05のCoca-Colaも同様です。$324.53のAppleは40株まで減少します。1株$2950.37のAutoZoneは10株まで下がり、表示買い気配の中央値は10株です。価格帯に応じてラウンドロットの区分が適用されています。より有利な価格の奇数ロット注文は、表示されるスプレッドの内側に非表示のまま存在できます。そのため、実際に利用できる最良価格がNBBOの示す水準を上回る場合があります。

アプリの気配値がリアルタイムのNBBOと完全には一致しない理由

スマートフォンで確認する気配値は、取引所のマッチングエンジン、SIP、データベンダー、ブローカー、画面という経路をたどります。各データには二つの時刻があります。取引所独自のタイムスタンプと、SIPが公表した時点のタイムスタンプです。その差がコンソリデーションに要する時間です。

クエリ取引所タイムスタンプからSIPタイムスタンプまで:統合処理時間(マイクロ秒)
tickerマイクロ秒中央値p99マイクロ秒
SPY347.4480.4
NVDA196.7414.1
AAPL178.1433.7
KO392.6551.4
各数値の背後にある正確な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で測定した中央値の差は347.4マイクロ秒、つまり一秒の百万分の一でした。Appleでは178.1でした。分布の裾は中央値より厚く、Nvidiaの99パーセンタイルは414.1マイクロ秒でした。SIPは、人間の感覚で遅いわけではありません。遅延を生む要因は別に二つあります。

第一に、データが意図的に遅延している可能性があります。小売向けアプリやチャートサイトの無料気配値は、取引所のライセンス条件により、通常15分遅れです。リアルタイム配信は有料の利用権が必要です。

第二に、プロ向けの運用会社はSIPを待ちません。各取引所は、自社のマッチングエンジンから直接配信するフィードも販売しています。コロケーションを利用する運用会社は、そのフィードを読み取り、SIP版の約定・気配情報が届く前に自社の最良買い気配と最良売り気配を算出します。一日中、両サイドに気配を提示するマーケットメイカーにとって、この数マイクロ秒の差は決定的です。

NBBOはどの程度の頻度で更新されるのか? 流動性の高い銘柄と薄商い銘柄

上場銘柄にはすべてNBBOがあり、その更新頻度は流動性の指標となります。下表は、取引量の多い四銘柄と、Nathan's Famous (NATH)およびSeneca Foods (SENEA)という薄商いの小型株二銘柄について、直近の通常取引セッションを平均したものです。

クエリセッションあたりのNBBO更新:取引量の多い4銘柄対薄商いの小型株2銘柄
tickerセッション数セッション当たり平均更新数セッション当たり平均更新数(M)最少時の倍数
SPY526974062.6973641
NVDA519396551.942618
AAPL57455080.7461006
KO53128470.313422
SENEA537820.0045
NATH57410.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では、1セッション当たりのNBBO更新回数が平均で2.697百万回に達し、表中で最も少ない銘柄の3641倍でした。Nvidiaは1.94百万回、Appleは0.746百万回でした。ここで大きな差が生じます。Seneca Foodsは平均的な1セッションで3782回、Nathan's Famousは741回の約定を記録しました。SPYの更新速度で画面を読む人はいません。NBBOはソフトウェア向けに構築されたフィードです。

NBBOの更新が最も速い時間帯:寄り付きと日中

更新頻度にも、日中のリズムがあります。チャートは、AppleのNBBO更新回数を東部時間の30分単位で集計し、1分当たりの平均値を示しています。最後の列は、各時間帯の値を9時30分の値に対する割合で示しています。

クエリAAPL:30分区間別の1分あたり平均NBBO更新(ET、午前4時~午後8時)
32 rows (showing 20)
ET時刻分当たり平均更新数始値バケット比(%)
04:00200.6
04:30120.3
05:00140.4
05:30160.5
06:00110.3
06:30100.3
07:00220.6
07:30180.5
08:00240.7
08:30240.7
09:00431.2
09:303552100
10:00268575.6
10:30215560.7
11:00198355.8
11:30177349.9
12:00167447.1
12:30158644.7
13:00118233.3
13:30104329.4
各数値の背後にある正確な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
自分で実行する

寄り付きオークション後の30分間は、Appleの全米最良気配が1分当たり平均3552回更新され、10時台もその75.6%の水準を維持しました。その後、日中の取引テープは細り、14時30分台の更新回数は1分当たり1280回、寄り付きの36%となりました。引けに向けた15時30分台には一部回復しましたが、1分当たり3130回で、寄り付きの88.1%にとどまりました。最も活発な気配更新は最後の1時間ではなく、最初の1時間に集中していたことが分かります。通常取引時間外は取引テープがほぼ沈黙し、16時の取引終了後には更新回数が1分当たり20回まで減少します。

取引停止中、NBBOはどうなるのか

株価が短時間に急速に動きすぎると、値幅制限ルールにより五分間取引が停止されます。気配値は消えるわけでも、ライブのまま残るわけでもありません。更新が止まり、停止直前の最後の記録が画面に残ります。GameStop (GME)では、2024年5月14日、米東部時間午前11時過ぎにこの停止が発生しました。パネルでは、その前後の気配値の更新と約定を分単位で追跡しています。

クエリGME、2024-05-14:5分間のLULD一時停止中の1分あたり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
自分で実行する

停止前の一分間、11:00、GameStopの統合気配値は12419件の約定に対して4511回更新されました。その後、両方の列が途切れます。0件の気配値記録は11:02で、0件の約定は11:03となり、0件の取引が対応しています。取引が止まった銘柄では、動かなくなった気配値が表示されます。気配値の更新は、再開時刻である11:06に戻り、4155回の更新と14007件の約定が記録されました。これは表中で最も約定が多い一分間です。取引停止銘柄の最後のNBBOは化石であり、取引可能な価格ではありません。2021年1月のGameStop取引時間は、このような停止が連続するとティッカーに何が起きるかを示しています。

ブローカーがNBBO以上の条件で注文を約定させなければならない理由

NBBOは規制上の基準です。2005年に採用されたSECの市場構造ルール集、Regulation NMSには、注文保護規則であるRule 611が含まれています。これは、他の取引所に表示された保護対象気配より不利な価格で、取引所が注文を執行することを禁じる規則です。ブローカーには、NBBOを基準とする最良執行の義務もあります。成行買い注文は全米最良売り気配以下、成行売り注文は全米最良買い気配以上で約定させる必要があります。

多くの個人投資家が見落とす点があります。成行注文は通常、取引所には届きません。個人投資家の市場性注文の大半は、注文を約定する権利に対価を支払う取引所外のマーケットメーカーであるホールセラーへ回送され、内部で執行された後、取引所外の報告機関に約定情報が報告されます。ホールセラーにもNBBOは適用されます。約定時点の全米気配に合わせるか、それより有利な価格で約定させなければなりません。注文フローを獲得するため、気配を上回り、スプレッドの内側で一セント未満だけ有利な価格を提示して約定させることもあります。これを価格改善と呼びます。NBBOは取引場所ではなく基準価格です。選択した注文タイプによって、そもそもスプレッドを越えるかどうかが決まります。

FAQ

NBBOに奇数ロットは含まれますか?

いいえ。全米気配値はラウンドロットの気配値だけで構成されます。Reg NMSでは、ラウンドロットの単位を価格に応じて定めています。250ドル未満では100株、10,000ドル超では一株まで段階的に小さくなります。上記のFordでテープに表示された最小の買い気配は100株でした。一方、株価がはるかに高いAutoZoneでは10株でした。公表スプレッドの内側にある、より有利な奇数ロットの気配は非表示で待機しています。

証券会社のアプリに表示される気配値が、リアルタイムのNBBOと異なるのはなぜですか?

理由は二つあります。いずれもSIPが原因ではありません。無料の個人投資家向け配信は、取引所のライセンス規則により、リアルタイム配信の料金を支払わない限り通常15分遅延します。また、統合データは公表されたスナップショットです。SPYでは統合処理に要した時間の中央値が347.4マイクロ秒でした。一方、取引所のダイレクトフィードを利用する業者は、より早くイベントを確認できます。

株式の取引が停止された場合、NBBOはどうなりますか?

凍結されます。上記のGameStopの5分間の値幅制限による売買停止中、テープには0件の気配更新と、11:03および0件の約定が記録されていました。最後の気配値は画面に残りますが、取引はできません。再開時のオークションによって、次の気配値が決まります。

NBBOは時間外にも存在しますか?

はい。統合気配値は米東部時間の午前4時から午後8時まで配信されます。そのため、全米気配値はプレマーケット取引と時間外取引の時間帯にも存在します。ただし、更新ペースは日中の一部にとどまります。直近のプレマーケット区間では、Appleの更新は1分当たり43件でした。寄り付き後は3552件でした。

データに関する注記:期間とフィルター

ローリング期間の終了日は生成日の3日前です。フィードの先端には短い取り込み遅延があります。集計対象は、SPYが通常取引時間の390本の1分足をすべて記録した完全な取引セッションだけです。Coca-Colaのパネルでは、片側気配とクロス気配のレコードを除外しています。集計パネルでは、すべてのレコードをそのまま使用しています。除外したレコードについては、ロックド・マーケットとクロス・マーケットで説明しています。GameStopのパネルは固定日付に基づいています。SPYの1分足を時系列の基準にしているため、売買停止中の分はゼロとして表示されます。


すべてのパネルには、生成に使用したSQLが付属しています。いずれかを開いて自分のtickerに差し替えれば、Strasmore terminalでNBBOの更新回数を集計できます。

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