NBBOとは?全米最良気配の仕組みと更新速度
NBBOとは、ブローカーが合わせるか上回るべき統合株価です。実際のティックデータで、気配値の仕組みと更新速度を確認できます。
NBBO(National Best Bid and Offer、全米最良気配)は、米国株の統合気配値です。すべての取引所を横断し、買い手が提示する最高価格と、売り手が提示する最低価格を示します。アプリに表示される気配値であり、ブローカーが注文について達成または上回らなければならない基準でもあります。以下の数値はすべて実際の気配値記録に基づいており、クエリを添付しています。
NBBOとは何か:平易な定義
米国株は一つの場所で取引されるわけではありません。NYSEやNasdaqをはじめ、十を超える取引所が同じティッカーの注文板をそれぞれ運営し、各市場に最良気配の買い気配と売り気配があります。NBBOは、それぞれの市場の最良気配を統合します。つまり、全市場で最も高い買い気配と、最も低い売り気配を、各価格で取引可能な株数とともに並べて示します。この統合は、取引所が共同で運営する市場インフラである証券情報プロセッサー、すなわちSIPが担います。
早い段階で押さえるべき点は二つあります。買い気配と売り気配は、同時に異なる取引所に存在し得ます。また、更新に価格変更は必須ではありません。同じ最良価格のまま数量が変わった場合も、新たな記録として表示されます。トレーダーはこの二つの最良価格をthe touchと呼び、その差が買い気配と売り気配のスプレッドです。
NBBO気配値の読み方:価格、サイズ、更新ペース
以下は、最近の通常取引日に東部時間午後1時30分から到着した、Coca-Cola(KO)の連続するNBBO記録十件です。実際に配信される全米最良気配を示しています。
| ET時刻 | 経過時間(ms) | 買い気配株数 | 最良買い気配 | 最良売り気配 | 売り気配株数 | スプレッド(セント) |
|---|---|---|---|---|---|---|
| 13:30:00.148 | 0 | 700 | 90.12 | 90.13 | 200 | 1 |
| 13:30:00.254 | 105.58 | 600 | 90.12 | 90.13 | 200 | 1 |
| 13:30:00.254 | 106.19 | 600 | 90.12 | 90.13 | 300 | 1 |
| 13:30:00.255 | 106.71 | 600 | 90.12 | 90.13 | 900 | 1 |
| 13:30:00.255 | 107.03 | 600 | 90.12 | 90.13 | 1100 | 1 |
| 13:30:00.255 | 107.28 | 800 | 90.12 | 90.13 | 1100 | 1 |
| 13:30:00.257 | 108.75 | 800 | 90.12 | 90.13 | 900 | 1 |
| 13:30:00.273 | 124.56 | 800 | 90.12 | 90.13 | 300 | 1 |
| 13:30:00.700 | 552.46 | 900 | 90.12 | 90.13 | 300 | 1 |
| 13:30:00.711 | 562.74 | 800 | 90.12 | 90.13 | 300 | 1 |
各数値の背後にある正確な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 ET時点で提示されていた二つの注文として読みます。買い手側の最良気配は、700株に対する$90.12です。売り手側の最良気配は、200株に対する$90.13です。両者の差は1¢でした。
株数は最良気配のサイズです。二つの最良価格に表示されている流動性を示します。このサイズを超える注文は、その価格にある数量を消化し、残りは板の次の価格で約定します。表示サイズは下限であり、全在庫を示すものではありません。二つの価格の両方またはいずれかに、非表示の注文がさらに存在することもあります。ダークプールにもこうした注文が含まれます。
次に、各行を下へ追って読みます。全10件の記録は、最初の記録から562.74ミリ秒以内に到着しました。更新時刻はあらかじめ決まっていません。SIPは最良気配が変わるたびに配信します。より高い買い気配、より低い売り気配、いずれかの最良価格における株数の変化、または最良気配で取引所が別の取引所に入れ替わること。この四つのいずれかが発生すると、行が記録されます。取引時間全体の見方については、マーケット・マイクロストラクチャーの詳細解説をご覧ください。
NBBOにはodd lotが含まれますか
ほとんどの場合、含まれません。全国気配値は、round lotの注文だけを基に算出されます。round lotに満たない株数の注文はodd lotです。全国最良買い気配より有利な価格で取引所の板に残り、その価格で約定しても、NBBOには表示されないことがあります。
round lotは、もはや一律100株ではありません。SECが改正したReg NMSの気配表示規則では、株価に応じて段階的に定められています。250ドル以下は100株、250.01ドルから1,000ドルまでは40株、1,000.01ドルから10,000ドルまでは10株、それを超える場合は一株です。これらの区分はテープで確認できます。パネルでは、価格帯ごとに六銘柄の統合気配で表示された買い注文数量のうち、最小のものを採用しています。
| ticker | 株価 | 最小気配数量 | 買い気配数量の中央値 |
|---|---|---|---|
| F | 12 | 100 | 8000 |
| KO | 89.93 | 100 | 400 |
| NVDA | 225.82 | 100 | 200 |
| AAPL | 345.92 | 40 | 40 |
| SPY | 777.46 | 40 | 160 |
| AZO | 2895.02 | 10 | 10 |
各数値の背後にある正確な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株まで減少します。1株2895.02ドルのAutoZoneは10株まで減少し、表示買い気配の中央値は10株です。株価の区分に応じて基準が変わります。より有利な価格のodd lot注文は、表示されないまま公表スプレッドの内側に存在することがあります。そのため、実際に利用できる最良価格がNBBOの示す水準を上回る場合があります。
アプリの気配値がライブのNBBOと完全には一致しない理由
スマートフォンで確認する気配値は、取引所のマッチングエンジン、SIP、データベンダー、ブローカー、画面という経路をたどります。各レコードには二つの時刻が記録されます。取引所独自のタイムスタンプと、SIPが公表した時点のタイムスタンプです。この差が、気配値の統合に要する時間です。
| ticker | マイクロ秒中央値 | p99マイクロ秒 |
|---|---|---|
| SPY | 228 | 492.4 |
| NVDA | 190.5 | 1722.8 |
| AAPL | 27.5 | 539.8 |
| KO | 433.2 | 636 |
各数値の背後にある正確な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マイクロ秒、つまり一秒の百万分の一でした。Appleは27.5でした。分布の裾は中央値付近より厚くなっています。Nvidiaの99パーセンタイルは1722.8マイクロ秒でした。SIPは、人間の感覚で遅いわけではありません。別の二つの要因があります。
第一に、データが意図的に遅延している可能性があります。個人投資家向けアプリやチャートサイトの無料気配値は、取引所のライセンス条件により、通常15分遅れで提供されます。リアルタイム配信は有料の利用権が必要です。
第二に、プロ投資家の運用会社はSIPを待ちません。各取引所は、自社のマッチングエンジンから直接配信するフィードも販売しています。コロケーションを利用する運用会社はこれを読み取り、SIPによる同じ約定・気配イベントの配信前に、自社で最良買い気配と最良売り気配を計算します。一日中、買いと売りの両方に気配を出すマーケットメーカーにとって、この数マイクロ秒の差は決定的です。
NBBOはどの程度の頻度で更新されるのか? 流動性の高い銘柄と薄商い銘柄
上場銘柄にはすべてNBBOがあり、その更新頻度は流動性を測る指標となる。以下の表は、取引量の多い4銘柄と、薄商いの小型株であるNathan's Famous(NATH)およびSeneca Foods(SENEA)について、直近の完全な取引セッションの平均を示している。
| ticker | セッション数 | セッション当たり平均更新数 | セッション当たり平均更新数(m) | 最少時の倍数 |
|---|---|---|---|---|
| SPY | 5 | 2265035 | 2.265 | 3045 |
| NVDA | 5 | 1358290 | 1.358 | 1826 |
| AAPL | 5 | 561372 | 0.561 | 755 |
| KO | 5 | 306567 | 0.307 | 412 |
| SENEA | 5 | 4032 | 0.004 | 5 |
| NATH | 5 | 744 | 0.001 | 1 |
各数値の背後にある正確な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セッション当たり平均で2.265百万件のNBBO更新があり、表中で最も少ない銘柄の3045倍だった。Nvidiaは平均1.358百万件、Appleは0.561百万件だった。そこから数値は急減する。Seneca Foodsは平均的なセッションで4032件、Nathan's Famousは744件の約定を記録した。SPYの更新速度で画面を読む人はいない。NBBOはソフトウェア向けに構築されたフィードである。
NBBOの更新が最も速い時間帯:寄り付きと昼間
更新頻度にも日中のリズムがある。このグラフは、AppleのNBBOの1分当たり更新回数を、東部時間の30分単位で平均したものだ。最後の列は、各時間帯を9時30分の水準に対する割合で示している。
| ET時刻 | 分当たり平均更新数 | 寄り付き区間比(%) |
|---|---|---|
| 04:00 | 36 | 1 |
| 04:30 | 13 | 0.4 |
| 05:00 | 16 | 0.5 |
| 05:30 | 13 | 0.4 |
| 06:00 | 9 | 0.3 |
| 06:30 | 16 | 0.5 |
| 07:00 | 37 | 1.1 |
| 07:30 | 32 | 0.9 |
| 08:00 | 44 | 1.3 |
| 08:30 | 39 | 1.1 |
| 09:00 | 58 | 1.7 |
| 09:30 | 3512 | 100 |
| 10:00 | 1651 | 47 |
| 10:30 | 1234 | 35.1 |
| 11:00 | 1209 | 34.4 |
| 11:30 | 1043 | 29.7 |
| 12:00 | 993 | 28.3 |
| 12:30 | 1060 | 30.2 |
| 13:00 | 1087 | 31 |
| 13:30 | 901 | 25.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寄り付きオークション後の30分間は、Appleの全米最良気配が平均で1分当たり3512回更新され、10時の時間帯はそのペースの47%で推移した。その後、テープは日中にかけて薄くなり、2時30分の時間帯は1分当たり1022回、寄り付きの29.1%となった。引けに向けた3時30分以降はこの底から回復し、1分当たり2536回、寄り付きの72.2%まで上昇した。つまり、気配更新はセッションの両端で最も活発になり、中央部で最も低調になる。通常取引時間外のテープはほぼ停止状態で、午後4時のベルの後は1分当たり15回まで減少する。
取引停止中、NBBOはどうなるのか
株価が短時間に急激に動くと、上限・下限規制により五分間取引が停止されます。気配値は消えることも、通常どおり存続することもありません。更新が止まり、停止直前の最後の記録が画面に残ります。GameStop (GME)では、2024年5月14日、米東部時間午前11時過ぎにこの取引停止が発生しました。図表では、その前後の気配値の更新と約定を分単位で追っています。
| ET時刻 | NBBO更新数 | 取引数 |
|---|---|---|
| 10:57 | 1812 | 5690 |
| 10:58 | 1275 | 4420 |
| 10:59 | 1491 | 4068 |
| 11:00 | 4511 | 12419 |
| 11:01 | 346 | 1331 |
| 11:02 | 0 | 0 |
| 11:03 | 0 | 0 |
| 11:04 | 1 | 0 |
| 11:05 | 0 | 0 |
| 11:06 | 4155 | 14007 |
| 11:07 | 4627 | 13199 |
| 11:08 | 2941 | 8985 |
| 11:09 | 1613 | 6487 |
| 11:10 | 1741 | 6222 |
| 11:11 | 1447 | 5691 |
各数値の背後にある正確な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の統合気配値は4511回更新され、約定は12419件でした。その後、両方の列が途切れます。0件の気配値記録が11:02で、0件が11:03で止まり、約定は0件でした。取引が止まった銘柄で、動かなくなった気配値です。気配値の更新は、再開時刻である11:06に戻りました。再開の一分間には4155回の更新と14007件の約定があり、表中で約定が最も多い一分間となりました。取引停止銘柄の最後のNBBOは化石であり、取引可能な価格ではありません。2021年1月のGameStopの取引時間帯を見ると、このような取引停止が連続するとティックデータに何が起きるかが分かります。
なぜブローカーはNBBO以上の条件で注文を約定させなければならないのか
NBBOは規制上の基準です。SECの市場構造に関するルール体系であるRegulation NMSは、2005年に採用され、注文保護規則のRule 611を定めています。取引所などの執行場所は、別の取引所に表示された保護対象気配より不利な価格で注文を執行してはなりません。ブローカーには、NBBOを基準とする最良執行の義務もあります。成行買い注文は全国最良売り気配以下、成行売り注文は全国最良買い気配以上の価格で約定させる必要があります。
多くの個人投資家が見落とす点があります。成行注文が取引所に直接届くことは、通常ありません。個人投資家の市場性注文の大半は、ホールセール業者に回送されます。ホールセール業者は、注文を執行する権利に対して対価を支払う取引所外のマーケットメーカーです。注文はホールセール業者の内部で執行され、取引所外の報告機関に約定として報告されます。NBBOはホールセール業者にも適用されます。ホールセール業者は、執行時点の全国気配と同値以上の条件で約定させなければなりません。注文フローを獲得するため、全国気配を上回り、スプレッドの内側で1セント未満の差を付けて約定させることもあります。これを価格改善と呼びます。NBBOは取引場所ではなく参照価格です。選択する注文タイプによって、スプレッドを越えて注文を執行するかどうかが決まります。
FAQ
NBBOには奇数ロットが含まれますか?
いいえ。全国最良気配はラウンドロットの気配だけで構成されます。Reg NMSでは、ラウンドロットの単位を価格に応じて定めています。250ドル未満では100株、10,000ドル超では一株です。上記のFordでテープに表示された最小の買い気配は100株でした。一方、株価がはるかに高いAutoZoneでは10株でした。公開スプレッドの内側にある、より有利な価格の奇数ロットは非表示で残ります。
証券会社のアプリに表示される気配が、リアルタイムのNBBOと異なるのはなぜですか?
理由は二つあります。どちらもSIPが原因ではありません。無料の個人投資家向けフィードは、取引所のライセンス規則により、リアルタイム配信の料金を支払わない限り、通常は15分遅延します。また、統合データは公開されたスナップショットです。SPYでは統合処理にかかった時間の中央値が228マイクロ秒でした。一方、取引所のダイレクトフィードを利用する企業は、より早くそのイベントを確認できます。
株式の売買が停止された場合、NBBOはどうなりますか?
固定されます。上記のGameStopの5分間の制限値幅による売買停止中、テープには0件の気配更新と、11:03件および0件の取引が記録されました。最後の気配は画面に残りますが、取引はできません。再開オークションによって次の気配が決まります。
NBBOは時間外にも存在しますか?
はい。統合気配は東部時間の午前4時から午後8時まで配信されます。そのため、プレマーケットおよび時間外取引の時間帯にも全国最良気配が存在します。ただし、更新頻度は日中の一部にとどまります。最後のプレマーケット区間ではAppleの更新が58件だったのに対し、取引開始後は3512件でした。
データ注記:期間とフィルター
ローリング期間の終了日は生成日の3日前です。フィードの先頭には短い取り込み遅延があります。集計対象は、SPYが通常取引時間の390本の1分足をすべて記録した完全なセッションに限ります。Coca-Colaのパネルでは、片側気配とクロス気配のレコードを除外しています。集計用のパネルでは、すべてのレコードをそのまま数えています(除外対象についてはロックされた市場とクロス市場を参照してください)。GameStopのパネルは固定日付に基づいています。SPYの1分足を時間軸としているため、売買停止中の分はゼロとして表示されます。
各パネルには、そのデータを生成したSQLが付属しています。パネルを一つ開き、自分のtickerに置き換えて、Strasmore端末でNBBOの更新回数を集計してください。