Penjelasan Locked dan Crossed Market dengan Data
Locked market terjadi saat bid sama dengan ask, sedangkan crossed market saat bid berada di atas ask. Pelajari mengapa Reg NMS melarang keduanya dan seberapa sering hal ini terjadi.
Pasar yang terkunci (locked market) adalah momen ketika bid terbaik sebuah saham sama dengan ask terbaiknya — spread bid-ask tepat nol. Pasar yang bersilangan (crossed market) melangkah lebih jauh: bid terbaik berada di atas ask terbaik. Aturan pasar AS melarang bursa untuk menampilkan keduanya, namun keduanya rutin muncul dalam catatan kutipan terkonsolidasi. Halaman ini mendefinisikan keduanya, menjelaskan aturannya, dan mengukur seberapa sering masing-masing muncul.
Apa itu locked market?
Setiap saham AS memiliki dua harga sekaligus: bid, harga tertinggi yang bersedia dibayar pembeli, dan ask, harga terendah yang bersedia diterima penjual. Ask biasanya berada di atas bid; selisih di antara keduanya adalah bid-ask spread, yaitu biaya bawaan untuk melakukan perdagangan segera.
Locked market terjadi saat selisih tersebut menjadi nol: saham dengan kuotasi bid $10.00 / ask $10.05 memiliki spread lima sen, dan jika ask terbaik turun menjadi $10.00 sementara bid tetap, maka kuotasi tersebut menjadi locked pada $10.00 / $10.00.
Kondisi tersebut tidak dapat terjadi pada satu bursa tunggal — pembelian pada $10.00 yang bertemu dengan penjualan pada $10.00 akan langsung tereksekusi. Kuotasi locked hanya bertahan di antara berbagai venue. Saham AS diperdagangkan di lebih dari selusin bursa secara bersamaan, dan NBBO — national best bid and offer, yaitu kuotasi yang muncul di aplikasi broker Anda — menggabungkan bid dan ask terbaik dari semua bursa tersebut. Bid $10.00 di satu venue dan ask $10.00 di venue lain membuat kuotasi nasional menjadi locked meskipun tidak ada satu pun venue yang menunjukkan locked book.
Apa itu crossed market?
Crossed market membalikkan pengaturan biasa: bid terbaik berada di atas ask terbaik — misalnya bid $10,02 melawan ask $10,00. Secara teori, siapa pun bisa membeli pada harga $10,00, menjual pada harga $10,02, dan mengantongi keuntungan dua sen per saham tanpa risiko. Uang gratis tersebut adalah alasan mengapa crossed quote tidak dapat bertahan lama: perusahaan profesional — termasuk market makers yang memberikan kuotasi untuk kedua sisi pada sebagian besar saham — mengambil arbitrase tersebut segera setelah terjadi, dan tindakan ini menghabiskan kedua kuotasi tersebut. Apa yang tersisa dalam data hanyalah flicker: catatan crossed yang tertangkap di antara pembaruan satu venue dan venue lainnya.
Mengapa Reg NMS melarang locked dan crossed quotes
Larangan ini terdapat dalam Regulation NMS, buku aturan SEC (diadopsi tahun dua ribu lima) untuk perdagangan di berbagai bursa saham AS. Aturan 610(d) mewajibkan setiap bursa untuk mencegah anggotanya menampilkan quotes yang mengunci (lock) atau menyilang (cross) protected quotes — bid dan offer terbaik otomatis di bursa lain — selama jam perdagangan reguler. Tujuannya adalah: bid yang setara dengan ask pihak lain dapat diperdagangkan saat ini juga, dan buku aturan menginginkan hal tersebut dirutekan dan dieksekusi, bukan ditampilkan sebagai kontradiksi yang menetap.
Satu batasan dalam aturan ini penting untuk data di bawah ini: aturan tersebut mengatur tentang penampilan, bukan keberadaan. Setiap venue mengontrol apa yang ditampilkan oleh book mereka sendiri; catatan konsolidasi disusun di berbagai venue secara real time, dari feed yang saling berpacu. NBBO yang terkunci dapat muncul di sana tanpa ada satu pun partisipan yang melanggar aturan.
Mengapa kuotasi locked dan crossed masih muncul di tape
Kecepatan. Bursa memperbarui kuotasi dalam hitungan mikrodetik, dan consolidated feed dibangun kembali pada setiap pembaruan. Dua peristiwa biasa menyebabkan catatan locked dan crossed masuk ke dalamnya:
- Races. Satu bursa menaikkan bid menjadi $10.00 sementara bursa lain masih menampilkan ask $10.00. Saat digabungkan, NBBO terbaca locked hingga sisi yang lebih lambat melakukan pembaruan; race yang sama yang melampaui satu sen terbaca crossed.
- Catatan stale dan one-sided. Beberapa catatan hanya membawa satu sisi — bid tanpa ask, atau sebaliknya. Instrumen dengan likuiditas rendah menghabiskan lebih banyak waktu dalam kondisi ini, seperti yang ditunjukkan oleh sensus di bawah.
Aturan penghitungan pada halaman ini: locked = bid sama dengan ask, kedua sisi positif; crossed = bid di atas ask yang positif; one-sided = salah satu sisi nol atau hilang. Tidak ada yang dihapus secara diam-diam — catatan one-sided mendapatkan kolom tersendiri.
Seberapa sering pasar locked dan crossed terjadi?
Mulai dengan seluruh data tape: setiap pembaruan NBBO, untuk setiap simbol yang terdaftar, pada 2026-07-14 — sesi lengkap terbaru dalam jendela sensus kami.
SQL tepat di balik setiap angka
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)Sesi tersebut membawa 477 juta pembaruan quote: 9.7 juta locked dan 67 ribu crossed — secara total 204.9 dari setiap 10.000 pembaruan, dengan jumlah locked melebihi crossed 145-banding-satu. Rekaman yang kehilangan satu sisi terjadi sebanyak 2.8 per 10.000. rekap pasar 7 Juli mengungkapkan jumlah yang sama di samping setiap spread yang diukur.
Tingkat seluruh pasar menggabungkan ribuan nama yang sangat berbeda. Tabel di bawah ini menjalankan ulang sensus pada set sepuluh nama yang diperiksa — delapan ticker populer ditambah dua small caps yang benar-benar tipis, Nathan's Famous (NATH) dan Seneca Foods (SENEA) — selama sesi lengkap terbaru, termasuk extended hours, dengan spread quote tipikal setiap nama di sampingnya.
SQL tepat di balik setiap angka
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 tickerBaca kolom spread dibandingkan dengan tingkatannya. Coca-Cola, yang biasanya dikutip selebar 1¢, menunjukkan quote locked atau crossed pada 215.9 dari setiap 10.000 pembaruan; Nvidia (2¢) tercatat 91 per 10.000 dan SPY (2¢) 52.2. AMD, yang quote tipikal extended-day nya berada pada lebar 44¢, hanya tercatat 5.9 per 10.000. Sebuah lock membutuhkan dua venue yang mencapai penny yang sama pada saat yang sama — semakin lebar quote tipikalnya, semakin lama perjalanan tersebut.
Nama-nama yang tipis hampir tidak terdeteksi: Nathan's Famous mencatat 0 rekaman locked dan 0 crossed dari 8.4 ribu pembaruan, Seneca Foods 0 dan 0 dari 40.5 ribu. Kolom mereka adalah kolom yang lain: rekaman satu sisi terjadi 41.5 per 10.000 pada Nathan's Famous dan 17 pada Seneca Foods, dibandingkan 0 pada SPY. Rekaman locked dan crossed ada di mana quoting berlangsung cepat dan ketat; rekaman satu sisi ada di mana quoting jarang terjadi.
Kapan kuotasi locked dan crossed mengelompok?
Sensus nama menunjukkan lokasi; jam menunjukkan waktu. Berikut adalah tingkat locked-or-crossed dari set yang diperiksa berdasarkan bucket 30 menit Eastern Time, pukul 04:00 hingga 20:00, dengan trafik pembaruan setiap bucket di sampingnya.
SQL tepat di balik setiap angka
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_timeTingkat tersebut meningkat sepanjang sesi. Bucket premarket pukul 05:00 mencatat 3 per 10.000 pada 0.59 juta pembaruan; bucket 09:30 — setengah jam pertama perdagangan reguler, yang dibuka oleh lelang pembukaan — mencatat 24.9 per 10.000 pada 9.98 juta pembaruan. Dari sana, tingkat tersebut meningkat hingga penutupan, mencapai 109.9 per 10.000 pada bucket 15:30, menjelang lelang penutupan. Satu baris tanda terima menunjukkan polanya:
SQL tepat di balik setiap angka
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)
)Di seluruh jendela waktu, set yang diperiksa mencatat 257.2 ribu record locked dibandingkan 25.6 ribu crossed — 10.1 locked untuk setiap crossed. Tingkat setengah jam terakhir, 109.9 per 10.000, adalah 4.4 kali lipat dari tingkat setengah jam pertama sebesar 24.9 dan 2.3 kali lipat dari tingkat jam tengah hari sebesar 48.5.
Larangan tampilan bahkan tidak berlaku sebelum pukul 09:30, namun seluruh rentang 04:00–09:30 — perdagangan premarket, dengan kuotasi pada sebagian kecil trafik jam reguler — hanya menunjukkan 10.9 per 10.000, dan setengah jam terakhir mencatat 10.1 kali lipat dari tingkat tersebut. Record ini terkumpul di tempat di mana kuotasi berjalan cepat dan ketat, bukan di tempat aturan paling longgar.
Catatan data: jendela dan cakupan
- Sensus seluruh tape mencakup satu hari kalender UTC penuh, termasuk setiap simbol yang terdaftar; panel set yang diperiksa mencakup jendela bergulir dari sesi terbaru yang telah selesai, termasuk jam diperpanjang (04:00–20:00 ET). Setiap jendela berakhir tiga hari di belakang tanggal penyegaran — gudang kuotasi memiliki lag ingest satu hingga dua hari pada tepi depannya.
- Tabel sepuluh nama adalah set yang diperiksa, bukan peringkat seluruh pasar; bucket jam setelah pukul 16:00 berjalan pada sebagian kecil trafik jam reguler (kolom jumlah pembaruan dicantumkan karena alasan tersebut).
- Ini adalah jumlah record, bukan durasi. Forensik per pembaruan — celah nanodetik, ditambah tanda terima crossed dan zero-bid pada tape SPY satu sesi — tersedia di analisis mendalam mikrostruktur 29 Juni.
FAQ
Apa itu locked market dalam saham?
Locked market adalah kuotasi di mana bid terbaik sama dengan ask terbaik — spread bernilai nol. Kondisi ini terjadi antar bursa — bid di satu venue cocok dengan ask di venue lain — dan Regulation NMS melarang bursa menampilkan kuotasi yang menciptakan kondisi tersebut selama jam perdagangan reguler.
Apa artinya jika bid lebih tinggi daripada ask?
Bid yang berada di atas ask disebut crossed market. Buku order pada satu bursa tunggal tidak bisa berada dalam kondisi tersebut — order yang tumpang tindih akan segera tereksekusi — dan crossed NBBO hampir selalu merupakan kuotasi dari dua venue yang tertangkap saat proses pembaruan.
Apakah locked dan crossed markets ilegal?
Tidak bagi investor reguler. Rule 610(d) dari Regulation NMS mewajibkan bursa untuk mencegah anggotanya menampilkan kuotasi locking atau crossing selama jam reguler. Catatan sementara dalam consolidated feed adalah artefak dari venue yang melakukan pembaruan pada saat yang sedikit berbeda.
Seberapa sering locked dan crossed markets terjadi?
Secara rutin: 9.7 juta catatan locked dan 67 ribu catatan crossed masuk ke consolidated tape pada 2026-07-14 saja — 204.9 dari setiap sepuluh ribu pembaruan. Tingkat kejadian jauh lebih tinggi pada saham dengan kuotasi ketat dibandingkan saham yang tipis, dan lebih tinggi menjelang penutupan daripada saat pembukaan.
Setiap angka di halaman ini dirender dari query tersimpan — perluas SQL di bawah panel mana pun untuk melihat tepat bagaimana lock atau cross dihitung. Untuk menjalankan sensus yang sama pada saham yang Anda perdagangkan, mintalah dalam bahasa Inggris biasa di terminal Strasmore.