Strasmore Research
Навчання Matt ConnorВід Matt Connor · Оновлено 2026-07-24 · data as of July 24, 2026 · refreshed weekly

Що таке NBBO національна найкраща ціна

NBBO це національна найкраща ціна купівлі та продажу, консолідована котировка для акції США, яку ваш брокер має досягти або перевищити. Дані з реальних записів.

NBBO, національна найкраща ціна купівлі та продажу, — це консолідована котировка для американської акції: найвища ціна, яку пропонує будь-який покупець, і найнижча, яку запитує будь-який продавець, одночасно на всіх біржах. Це котировка, яку показує ваш додаток, і орієнтир, який ваш брокер має досягти або перевищити у вашому ордері. Кожне число нижче взято з реальних записів котировок, запит додається.

Що таке NBBO? Просте визначення

Акції США не торгуються в одному місці. NYSE, Nasdaq та понад десяток інших бірж ведуть книгу заявок для одного й того ж тікера. Кожна біржа має власну найкращу ціну купівлі та продажу. NBBO об’єднує ці верхні рівні: найвищу ціну купівлі серед усіх бірж і найнижчу ціну продажу серед усіх бірж, поруч із кількістю акцій, доступних за кожною з них. Об’єднання виконують процесори фінансової інформації, або SIP — це ринкові утиліти, які біржі експлуатують спільно.

Дві деталі мають значення з самого початку. Ціна купівлі та ціна продажу можуть одночасно знаходитися на двох різних біржах. Зміна ціни не потрібна для оновлення: зміна обсягу за тієї ж найкращої ціни також фіксує новий запис. Трейдери називають дві найкращі ціни the touch; різниця між ними — це спред між ціною купівлі та продажу.

Як читати котирування NBBO: ціни, обсяги та темп

Ось десять послідовних записів NBBO для Coca-Cola (KO) з 13:30 за східним часом під час недавнього повного торгового дня — національна котирування такою, якою вона надходить насправді.

ЗапитKO — десять послідовних оновлень NBBO з 13:30 за східним часом на недавній сесії
Точний 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:02.886 ET. Найкращий покупець: $83.3 за 200 акцій. Найкращий продавець: $83.31 за 200 акцій. Різниця між ними становила 1¢.

Кількість акцій — це обсяг на кращих рівнях — відображена ліквідність на двох найкращих цінах. Заявка, що перевищує цей обсяг, вичерпує його та заповнює залишок за наступними цінами в книзі. Відображений обсяг є мінімумом, а не повним запасом: більше інтересу часто знаходиться у прихованому вигляді на цих цінах або між ними, зокрема в темних пулах.

Тепер читайте униз по рядках. Усі 10 записів надійшли протягом 484.95 мілісекунд після першого. Розкладу немає — SIP публікує дані щоразу, коли змінюється лідер, і будь-яка з чотирьох подій фіксує рядок: кращий бід, кращий аск, зміна кількості акцій на будь-якій з найкращих цін або заміна однієї біржі іншою на вершині. Для огляду за весь торговий день див. глибокий аналіз мікроструктури.

Чи включає NBBO непарні лоти?

Здебільшого ні. Національна котирування формується лише з інтересу круглих лотів. Заявка на меншу кількість акцій, ніж круглий лот, є непарним лотом: вона може знаходитися в книзі заявок біржі за кращою ціною, ніж найкраща національна ціна покупки, виконатися там і ніколи не з'явитися в NBBO.

Круглий лот більше не є фіксованою кількістю у сто акцій. Згідно зі зміненими правилами котирування Reg NMS від SEC, він залежить від ціни акції: сто акцій до $250, сорок — від $250.01 до $1,000, десять — від $1,000.01 до $10,000, одна акція — вище цього рівня. Ці рівні видно на стрічці — панель показує найменший розмір ціни покупки, який коли-небудь фігурує в консолідованій котируванні для шести тікерів у різних діапазонах.

ЗапитНайменший розмір, який покаже NBBO — шість тікерів за ціновими рівнями
Точний 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

Ford, що котується приблизно за $13.9, протягом цієї години ніколи не показує ціну покупки меншу за 100 акцій; як і Coca-Cola за $84.18. Apple за $314.36 знижується до 40; AutoZone за $3030.52 за акцію — до 10, з медіанною відображеною ціною покупки 10. Мінімальний розмір відповідає ціновому рівню. Краще оцінений інтерес непарних лотів може знаходитися всередині опублікованого спреду без відображення, тому справді найкраща доступна ціна іноді є кращою, ніж передбачає NBBO.

Чому котирування у вашому застосунку не зовсім відповідає поточному NBBO

Котирування, яке ви бачите на телефоні, проходить шлях: матчинговий двигун біржі → SIP → постачальник даних → брокер → екран. Кожен запис містить два годинники — власну мітку біржі та мітку SIP у момент публікації — і різниця між ними є етапом консолідації.

ЗапитМітка біржі до мітки SIP — етап консолідації, у мікросекундах
Точний 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 становила 229.1 мікросекунд — мільйонних часток секунди — а для Apple — 203.4. Хвіст розподілу товщий за середину: 99-й перцентиль Nvidia сягнув 536.9 мікросекунд. SIP не є повільним у жодному людському розумінні. Повільними є дві інші речі.

По-перше, ваші дані можуть бути затримані навмисно. Безкоштовні потоки котирувань у роздрібних застосунках і на сайтах графіків зазвичай затримуються на п'ятнадцять хвилин згідно з ліцензійними умовами бірж; потокова передача в реальному часі є платним правом.

По-друге, професійні фірми не чекають на SIP. Кожна біржа також продає прямий потік даних із власного матчингового двигуна. Колокована фірма зчитує його та обчислює власні найкращий бід і офер до того, як версія цієї події від SIP надійде — перевага в мікросекундах, вирішальна для маркет-мейкера, який котирує обидві сторони протягом усього дня.

Як часто оновлюється NBBO? Ліквідні акції проти акцій з низькою ліквідністю

Кожна акція, допущена до торгів, має NBBO. Частота оновлення слугує індикатором ліквідності. У таблиці наведено середні значення за недавні повні торгові сесії для чотирьох активно торгуваних емітентів і двох малоліквідних компаній малої капіталізації — Nathan's Famous (NATH) і Seneca Foods (SENEA).

ЗапитОновлення NBBO за сесію — чотири високоліквідні тікери проти двох малоліквідних малих компаній
Точний 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)

SPY, ETF на індекс S&P 500, у середньому фіксував 3.428 мільйона оновлень NBBO за сесію — у 2031 разів більше, ніж найменш активний інструмент у таблиці. NVDA у середньому показувала 1.85 мільйона, Apple — 1.336 мільйона. Далі йде різкий спад: Seneca Foods за середньої сесії показувала 8097 оновлень, Nathan's Famous — 1688. Жодна людина не здатна читати екран у темпі SPY: NBBO — це потік даних, створений для програмного забезпечення.

Коли NBBO оновлюється найшвидше: відкриття проти середини дня

Швидкість оновлень також має щоденний ритм. Графік показує середню кількість оновлень NBBO Apple за хвилину в півгодинних інтервалах за східним часом; останній стовпець показує кожен інтервал як відсоток від значення 9:30.

ЗапитAAPL — середні оновлення NBBO за хвилину за 30-хвилинними інтервалами (східний час, 04:00–20:00)
Точний 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

У перші пів години після відкритого аукціону національна котирування Apple оновлювалася в середньому 5657 разів на хвилину, а інтервал 10:00 зберіг цей темп на рівні 89.5% від нього. Потім стрічка рідшає протягом середини дня: інтервал 2:30 показав 1973 оновлень на хвилину, 34.9% від початкового темпу. Наближення до закриття о 3:30 відновлює лише частину — 3345 на хвилину, 59.1% від відкриття — тому найінтенсивніше котирування припадало на першу годину, а не на останню. Поза регулярними годинами торгів стрічка майже мовчить, знижуючись до 17 оновлень на хвилину після дзвоника о 16:00.

Що відбувається з NBBO під час призупинення торгів?

Коли акція занадто швидко змінюється в ціні, правила ліміт-вгору/ліміт-вниз зупиняють її на п'ять хвилин. Котирування не зникає і не залишається активним: воно перестає оновлюватися, і останній запис до паузи залишається на екрані. GameStop (GME) активувала таку паузу невдовзі після 11:00 ранку за східним часом 14 травня 2024 року; панель відстежує оновлення її котирувань та угоди хвилина за хвилиною через цю подію.

ЗапитGME, 14 травня 2024 — оновлення NBBO та угоди за хвилину під час 5-хвилинної паузи LULD
Точний 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 призупиненої акції є застиглим артефактом, а не ціною, за якою можна торгувати; сесія GameStop у січні 2021 року показує, що ланцюг таких пауз робить зі стрічкою угод.

Чому ваш брокер має виконати вашу угоду за NBBO або краще

NBBO — це регуляторний орієнтир. Regulation NMS — правила ринкової структури SEC, ухвалені у 2005 році — містять правило захисту заявок, Rule 611: майданчик не має права виконати угоду за ціною гіршою за захищену котировку, показану на іншій біржі. Брокери також зобов'язані надати клієнтам найкраще виконання, яке оцінюється відносно NBBO: ринкова заявка на купівлю має виконуватися за національною найкращою ціною продажу або нижче, а ринкова заявка на продаж — за національною найкращою ціною купівлі або вище.

Більшість роздрібних інвесторів цього не помічає: ваша ринкова заявка зазвичай взагалі не потрапляє на біржу. Більшість роздрібного маркетабельного потоку спрямовується до оптовиків — позабіржових маркет-мейкерів, які платять за право виконувати ці заявки — і виконується внутрішньо, з фіксацією через позабіржову звітну систему. NBBO все одно їх регулює: оптовик має відповідати національній котировці або перевершувати її на момент виконання, і бореться за потік, перевершуючи її — виконує угоду на частки цента всередині спреду, що відомо як покращення ціни. NBBO — це еталонна ціна, а не майданчик; саме обраний вами тип заявки визначає, чи перетинатимете ви спред взагалі.

Поширені запитання

Чи враховує NBBO непарні лоти?

Ні. Національна котирування формується лише з котирувань круглих лотів, а Reg NMS визначає розмір круглого лота залежно від ціни — 100 акцій нижче $250, аж до однієї акції вище $10,000. Найменший бід, який стрічка показала для Ford вище, становив 100 акцій проти 10 для AutoZone, акції якої коштують значно дорожче. Краще оцінені непарні лоти перебувають усередині опублікованого спреду без відображення.

Чому котирування в моєму брокерському застосунку відрізняється від поточного NBBO?

Дві причини, і жодна не пов'язана з SIP. Безкоштовні роздрібні потоки зазвичай затримуються на п'ятнадцять хвилин за правилами ліцензування бірж, якщо ви не сплачуєте за дані в реальному часі. А консолідовані дані — це опублікований знімок: етап консолідації тривав 229.1 мікросекунд на медіані для SPY, тоді як фірми на прямих біржових потоках бачать подію раніше.

Що відбувається з NBBO, коли акцію зупинено?

Він заморожується. Під час п'ятихвилинної паузи GameStop за правилом limit-up/limit-down вище стрічка передала 0 оновлень котирувань при 11:03 та 0 угодах. Остання котировка залишається на екрані, але не доступна для торгів; наступну встановлює аукціон відновлення.

Чи існує NBBO поза основними годинами?

Так. Консолідовані котирування транслюються з 4:00 ранку до 8:00 вечора за східним часом, тож національна котировка існує протягом передторговельної та післяторговельної сесії — у темпі, що становить частку від денного: 65 оновлень Apple за хвилину в останньому передторговельному інтервалі проти 5657 після відкриття.

Примітки до даних: вікна та фільтри

Ковзні вікна завершуються за три дні до генерації (коротка затримка надходження знаходиться на передньому краї потоку) і враховують лише повні сесії — дні, коли SPY формує всі 390 хвилинних барів регулярної сесії. Панель Coca-Cola виключає однобічні та перехрещені записи; панелі підрахунку беруть кожен запис як є (зафіксовані та перехрещені ринки охоплює виключені). Панель GameStop прив'язана до фіксованої дати, з хвилинними барами SPY як опорною шкалою часу, тому призупинені хвилини відображаються як нулі.


Кожна панель постачається з SQL-запитом, який її згенерував — відкрийте будь-яку, підставте власний тікер і підрахуйте оновлення її NBBO на терміналі Strasmore.