Що таке заблокований та перехресний ринок
Розповідаємо про різницю між locked та crossed market. Дізнайтеся, чому Reg NMS забороняє такі стани та як часто вони з'являються у консолідованому реєстрі.
Заблокований ринок — це стан, коли найкраща ціна купівлі (bid) дорівнює найкращій ціні продажу (ask), тобто спред між ними становить рівно нуль. Перехресний ринок (crossed market) — це ситуація, коли найкраща ціна купівлі перевищує найкращу ціну продажу. Правила ринку США забороняють біржам відображати такі стани, проте вони регулярно з'являються у консолідованому реєстрі котирувань. Ця сторінка дає визначення обом термінам, пояснює правила та визначає частоту їх виникнення.
Що таке заблокований ринок?
Кожна акція на ринку США одночасно має дві ціни: bid (ціна купівлі) — найвища ціна, яку готовий заплатити покупець, та ask (ціна продажу) — найнижча ціна, на яку готовий погодитися продавець. Зазвичай ціна ask вища за bid; різниця між ними — це bid-ask spread, внутрішня вартість негайної угоди.
Заблокований ринок — це момент, коли ця різниця стає рівною нулю: якщо акція котується за ціною $10.00 bid / $10.05 ask, спред становить п'ять центів, але якщо найкраща ціна ask падає до $10.00, а ціна bid залишається незмінною, котирування стає заблокованим на рівні $10.00 / $10.00.
На межах однієї біржі такий стан неможливий — покупка за $10.00 та продаж за $10.00 призводять до негайного виконання угоди. Заблоковане котирування існує лише між різними торговими майданчиками. Акції США торгуються на понад десяти біржах одночасно, а NBBO — національна найкраща ціна купівлі та продажу, яку відображає ваш брокерський додаток — об'єднує найкращі ціни bid та ask з усіх майданчиків. Якщо на одній біржі ціна bid становить $10.00, а на іншій ціна ask — $10.00, національне котирування стає заблокованим, хоча на кожній окремій біржі книга заявок залишається відкритою.
Що таке перехресний ринок?
Перехресний ринок змінює звичний порядок: найкраща ціна Bid знаходиться вище найкращої ціни Ask — наприклад, Bid $10.02 проти Ask $10.00. Теоретично будь-хто може купити за $10.00, продати за $10.02 і отримати два центи з кожної акції без ризику. Така можливість безкоштовного прибутку є причиною того, чому перехресний котирування не може тривати довго: професійні фірми — зокрема market makers, які виставляють котирування з обох боків для більшості акцій, — миттєво використовують такий арбітраж, що призводить до зникнення обох котирувань. Те, що залишається в даних — це лише короткочасне коливання: перехресний запис, зафіксований у проміжку між оновленням на одній торговій площадці та іншою.
Чому Reg NMS забороняє заблоковані та перехресні котирування
Ця заборона міститься в Regulation NMS, регламенті SEC (прийнятому у 2005 році) для торгівлі на фондових біржах США. Правило 610(d) вимагає, щоб кожна біржа перешкоджала своїм учасникам виставляти котирування, які створюють заблоковані або перехресні protected quotes — автоматизовані найкращі ціни купівлі та продажу на інших біржах — під час звичайних торгових сесій. Мета правила: якщо ціна Bid дорівнює ціні Ask іншого учасника, угода має бути проведена та виконана, а не просто відображатися як суперечливе пропозицію.
Одним із важливих обмежень у правилі для наведених нижче даних є те, що воно регулює відображення, а не факт існування. Кожна торгова площадка контролює те, що відображає її власний стакан заявок; консолідований звіт формується в режимі реального часу на основі потоків даних з різних площадок. Заблокований NBBO може з'явитися у звіті, навіть якщо жоден окремий учасник не порушив правило.
Чому заблоковані та перехресні котирування все ще потрапляють у стрічку
Швидкість. Біржі оновлюють котирування за мікросекунди, а консолідований потік даних перебудовується при кожному оновленні. Два звичайні події призводять до появи заблокованих та перехресних записів:
- Перегони. Одна біржа підвищує свій bid до $10.00, тоді як інша все ще відображає ask $10.00. Після об'єднання NBBO відображає заблокований стан, доки повільніша сторона не оновиться; та сама перегона з перевищенням ціни на один цент відображається як перехресна.
- Застарілі та односторонні записи. Деякі записи містять лише одну сторону — bid без ask або навпаки. Низьколіквідні активи проводять у такому стані значно більше часу протягом дня, як показано в переліку нижче.
Правила підрахунку на цій сторінці: locked (заблокований) = bid дорівнює ask, обидві сторони мають позитивне значення; crossed (перехресний) = bid вище за позитивний ask; one-sided (односторонній) = одна зі сторін дорівнює нулю або відсутня. Жодні дані не видаляються непомітно — односторонні записи отримують окрему колонку.
Як часто трапляються заблоковані та перехресні ринки?
Почнемо з усього потоку даних: кожне оновлення NBBO для кожного лістингового символу за 2026-07-14 — останню завершену сесію у нашому переписному вікні.
Точний SQL-код для кожного числа
WITH (
SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start < toDateTime(today() - 3)
) AS census_day
SELECT
formatDateTime(census_day, '%Y-%m-%d') AS session_date,
round(count() / 1e6, 0) AS updates_m,
round(countIf(bid_price = ask_price AND bid_price > 0) / 1e6, 2) AS locked_m,
round(countIf(bid_price > ask_price AND ask_price > 0) / 1e3, 1) AS crossed_k,
round(countIf(bid_price = ask_price AND bid_price > 0) / toFloat64(greatest(countIf(bid_price > ask_price AND ask_price > 0), 1)), 0) AS locked_per_crossed,
round(countIf(bid_price >= ask_price AND ask_price > 0 AND bid_price > 0) / toFloat64(count()) * 1e4, 1) AS locked_or_crossed_per_10k,
round(countIf(bid_price <= 0 OR ask_price <= 0) / toFloat64(count()) * 1e4, 1) AS one_sided_per_10k
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= toDateTime(census_day)
AND sip_timestamp < toDateTime(census_day + 1)Ця сесія містила 477 мільйонів оновлень котирувань: 9.7 мільйонів заблокованих та 67 тисяч перехресних — разом це становить 204.9 від кожних 10 000 оновлень, причому кількість заблокованих перевищує кількість перехресних у 145 разів. Записи з відсутньою стороною зустрічалися 2.8 на кожні 10 000. Огляд ринку за 7 липня містить такі самі показники поруч із кожним виміряним спредом.
Загальноринковий показник об'єднує тисячі дуже різних активів. У таблиці нижче наведено результати перепису для перевіреного набору з десяти позицій — вісім відомих тікерів та два малоліквідні компанії з малою капіталізацією, Nathan's Famous (NATH) та Seneca Foods (SENEA) — за останні завершені сесії, включаючи подовжений час торгів, з наведенням типового спреду для кожного активу.
Точний SQL-код для кожного числа
SELECT ticker,
round(count() / 1e3, 1) AS updates_k,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100, 1) AS median_spread_cents,
countIf(bid_price = ask_price AND bid_price > 0) AS locked_records,
countIf(bid_price > ask_price AND ask_price > 0) AS crossed_records,
round(countIf(bid_price >= ask_price AND ask_price > 0 AND bid_price > 0) / toFloat64(count()) * 1e4, 1) AS locked_or_crossed_per_10k,
round(countIf(bid_price <= 0 OR ask_price <= 0) / toFloat64(count()) * 1e4, 1) AS one_sided_per_10k
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'NVDA', 'MSFT', 'TSLA', 'KO', 'AMD', 'NATH', 'SENEA')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
GROUP BY ticker
ORDER BY tickerПорівняйте стовпець спредів із показником частоти. Coca-Cola, чий типовий спред становить 1 центів, продемонструвала заблоковане або перехресне котирування у 215.9 випадках на кожні 10 000 оновлень; Nvidia (2 центів) мала показник 91 на 10 000, а SPY (2 центів) — 52.2. AMD, чий типовий спред у подовжений час становив 44 центів, показала лише 5.9 на 10 000. Заблокований ринок виникає, коли дві торгові площадки одночасно пропонують однакову ціну в один цент; чим ширший типовий спред, тим рідше це трапляється.
Малоліквідні активи майже не впливають на статистику: Nathan's Famous зафіксувала 0 заблокованих та 0 перехресних записів серед 8.4 тисяч оновлень, Seneca Foods — 0 та 0 серед 40.5 тисяч. Другий стовпець присвячений одностороннім записам: їхня частка становила 41.5 на 10 000 у Nathan's Famous та 17 у Seneca Foods, проти 0 у SPY. Заблоковані та перехресні записи характерні для швидкого та вузького котирування; односторонні записи зустрічаються там, де котирування є дефіцитним.
When do locked and crossed quotes cluster?
The name census says where; the clock says when. Here is the checked set's locked-or-crossed rate by 30-minute Eastern Time bucket, 4:00 a.m. to 8:00 p.m., with each bucket's update traffic alongside.
Точний SQL-код для кожного числа
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(countIf(bid_price >= ask_price AND ask_price > 0 AND bid_price > 0) / toFloat64(count()) * 1e4, 1) AS locked_or_crossed_per_10k,
round(count() / 1e6, 2) AS updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'NVDA', 'MSFT', 'TSLA', 'KO', 'AMD', 'NATH', 'SENEA')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
GROUP BY et_time
HAVING et_time >= '04:00' AND et_time < '20:00'
ORDER BY et_timeThe rate climbs across the session. The 05:00 premarket bucket measured 3 per 10,000 on 0.59 million updates; the 09:30 bucket — regular trading's first half hour, opened by the opening auction — ran 24.9 per 10,000 on 9.98 million updates. From there the rate builds into the close, reaching 109.9 per 10,000 in the 15:30 bucket, the run-up to the closing auction. One receipt row pins the shape:
Точний SQL-код для кожного числа
SELECT
round(countIf(is_locked) / 1e3, 1) AS locked_k,
round(countIf(is_crossed) / 1e3, 1) AS crossed_k,
round(countIf(is_locked) / toFloat64(greatest(countIf(is_crossed), 1)), 1) AS locked_per_crossed,
round(countIf((is_locked OR is_crossed) AND et_minute BETWEEN 240 AND 569) / toFloat64(countIf(et_minute BETWEEN 240 AND 569)) * 1e4, 1) AS premarket_per_10k,
round(countIf((is_locked OR is_crossed) AND et_minute BETWEEN 570 AND 599) / toFloat64(countIf(et_minute BETWEEN 570 AND 599)) * 1e4, 1) AS opening_half_hour_per_10k,
round(countIf((is_locked OR is_crossed) AND et_minute BETWEEN 720 AND 779) / toFloat64(countIf(et_minute BETWEEN 720 AND 779)) * 1e4, 1) AS midday_hour_per_10k,
round(countIf((is_locked OR is_crossed) AND et_minute BETWEEN 930 AND 959) / toFloat64(countIf(et_minute BETWEEN 930 AND 959)) * 1e4, 1) AS closing_half_hour_per_10k,
round((countIf((is_locked OR is_crossed) AND et_minute BETWEEN 930 AND 959) / toFloat64(countIf(et_minute BETWEEN 930 AND 959)))
/ (countIf((is_locked OR is_crossed) AND et_minute BETWEEN 570 AND 599) / toFloat64(countIf(et_minute BETWEEN 570 AND 599))), 1) AS close_to_open_ratio,
round((countIf((is_locked OR is_crossed) AND et_minute BETWEEN 930 AND 959) / toFloat64(countIf(et_minute BETWEEN 930 AND 959)))
/ (countIf((is_locked OR is_crossed) AND et_minute BETWEEN 720 AND 779) / toFloat64(countIf(et_minute BETWEEN 720 AND 779))), 1) AS close_to_midday_ratio,
round((countIf((is_locked OR is_crossed) AND et_minute BETWEEN 930 AND 959) / toFloat64(countIf(et_minute BETWEEN 930 AND 959)))
/ (countIf((is_locked OR is_crossed) AND et_minute BETWEEN 240 AND 569) / toFloat64(countIf(et_minute BETWEEN 240 AND 569))), 1) AS close_to_premarket_ratio
FROM (
SELECT
bid_price = ask_price AND bid_price > 0 AS is_locked,
bid_price > ask_price AND ask_price > 0 AS is_crossed,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_minute
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'NVDA', 'MSFT', 'TSLA', 'KO', 'AMD', 'NATH', 'SENEA')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
)Across the whole window the checked set printed 257.2 thousand locked records against 25.6 thousand crossed — 10.1 locked for every crossed. The closing half hour's rate, 109.9 per 10,000, ran 4.4 times the opening half hour's 24.9 and 2.3 times the noon hour's 48.5.
The display ban does not even apply before 9:30 a.m., yet the whole 4:00–9:30 stretch — premarket trading, quoting on a fraction of regular-hours traffic — showed just 10.9 per 10,000, and the closing half hour ran 10.1 times that rate. These records collect where quoting runs fast and tight, not where the rulebook is loosest.
Data notes: window and scope
- The whole-tape census covers one full UTC calendar day, every listed symbol included; the checked-set panels cover a rolling window of recent completed sessions, extended hours (4:00 a.m.–8:00 p.m. ET) included. Every window ends three days behind the refresh date — the quote warehouse carries a one-to-two-day ingest lag at its front edge.
- The ten-name table is a checked set, not a market-wide ranking; clock buckets after 4:00 p.m. run on a small fraction of regular-hours traffic (the update-count column is charted for that reason).
- These are counts of records, not durations. Per-update forensics — nanosecond gaps, plus crossed and zero-bid receipts on a single session's SPY tape — live in the June 29 microstructure deep-dive.
FAQ
Що таке заблокований ринок (locked market) у акціях?
Заблокований ринок — це котирування, де найкраща ціна купівлі (bid) дорівнює найкращій ціні продажу (ask), тобто спред становить нуль. Це виникає між різними біржами, коли ціна купівлі на одній площадці збігається з ціною продажу на іншій. Regulation NMS забороняє біржам відображати котирування, які створюють такий стан під час звичайних торгових сесій.
Що означає, якщо ціна купівлі вища за ціну продажу?
Ситуація, коли ціна купівлі вища за ціну продажу, називається перехресним ринком (crossed market). Книга ордерів на одній біржі не може перебувати в такому стані — перекриваючі одна одну ордери виконуються негайно. Перехресний NBBO майже завжди є результатом котирувань двох різних площадок, що оновлюються з невеликою затримкою.
Чи є заблоковані та перехресні ринки незаконними?
Для звичайного інвестора — ні. Правило 610(d) Regulation NMS зобов'язує біржі запобігати відображенню заблокованих або перехресних котирувань своїми учасниками під час звичайних торгових сесій. Тимчасові записи у консолідованому потоці даних є наслідком того, що різні площадки оновлюються в різні моменти часу.
Як часто трапляються заблоковані та перехресні ринки?
Регулярно: 9.7 мільйонів заблокованих та 67 тисяч перехресних записів потрапляють на консолідовану стрічку лише за 2026-07-14 — це 204.9 від кожних 10 000 оновлень. Цей показник значно вищий для активів з вузьким спредом, ніж для малоліквідних, і зростає ближче до закриття ринку, ніж на його відкритті.
Кожне число на цій сторінці відображається на основі збереженого запиту — розгорніть SQL-код під будь-якою панеллю, щоб побачити точний метод підрахунку заблокованих або перехресних ринків. Щоб провести такий самий аналіз для активів, якими ви торгуєте, введіть відповідний запит англійською мовою на терміналі Strasmore.