Perbezaan Data Buku Pesanan MBO vs MBP
Ketahui perbezaan antara aliran data MBO dan MBP dalam pasaran. Fahami cara setiap format berfungsi, kelebihan analisis pesanan individu, serta implikasi kos infrastruktur.
Data buku pesanan MBO berbanding MBP merupakan perbezaan besar yang tersembunyi di sebalik label kecil. Dua vendor boleh menjual sesuatu yang dipanggil "Level 2" kepada anda: MBP (market by price) menghantar jumlah saiz yang tersedia pada setiap tahap harga, manakala MBO (market by order) menghantar setiap pesanan individu sebagai peristiwa tersendiri dengan ID uniknya. Satu adalah ringkasan buku; satu lagi adalah lejar yang membentuk buku tersebut, dan ia memerlukan trafik yang jauh lebih besar untuk disalurkan.
Apa yang sebenarnya terkandung dalam data buku pesanan MBP dan MBO
MBP, atau market by price, ialah kedalaman agregat. Setiap kemas kini menyatakan bahagian (side), tahap harga, jumlah saiz yang dipaparkan di situ, dan kadangkala bilangan pesanan di belakangnya. Produk yang dijual sebagai MBP-10 memberikan anda sepuluh tahap harga terbaik pada setiap bahagian, iaitu tangga (ladder) dalam platform dagangan dan carta kedalaman.
MBO, atau market by order, ialah aliran peristiwa (event stream). Setiap mesej menamakan satu pesanan: ID, bahagian, harga, saiz yang dipaparkan, dan apa yang baru berlaku kepadanya. Tiada apa-apa yang diagregatkan terlebih dahulu. Jika empat puluh pesanan berada pada harga yang sama, empat puluh mesej berasingan meletakkannya di sana, dan anda perlu menyimpan kesemua empat puluh dalam memori untuk mengetahui jumlah tahap tersebut.
Panduan data pasaran Level 1 lwn Level 2 kami merangkumi maksud label peringkat runcit di broker. MBO dan MBP adalah nama tepat bagi apa yang ada di dalam kotak apabila vendor menyebut "Level 2", dan nama skema itulah yang perlu ditanya.
Tindakan mesej yang dibawa oleh suapan MBO
Suapan MBO ialah taksonomi tindakan yang digunakan pada ID pesanan. Empat tindakan membawa sebahagian besar trafik:
- Tambah (Add): pesanan baharu menyertai buku pada sesuatu harga dengan ID baharu.
- Ubah suai (Modify): ID sedia ada menukar harga atau saiz. Menambah saiz atau menukar harga akan menghantar pesanan ke belakang baris gilir pada tahap baharu; mengurangkan saiz biasanya mengekalkan kedudukannya.
- Batal (Cancel): ID meninggalkan buku, sama ada sepenuhnya atau sebahagian.
- Dagangan atau isi (Trade or fill): pesanan agresif dilaksanakan terhadap satu atau lebih ID yang sedia ada, mengecilkan atau membuang pesanan tersebut.
MBP tidak membawa perbendaharaan kata tersebut. Kemas kini MBP ialah pernyataan tentang sesuatu tahap: harga ini kini mempunyai saiz sebanyak ini. Sama ada saiz itu hilang melalui pembatalan atau melalui pelaksanaan, kemas kini tersebut kelihatan sama. Panel di bawah menunjukkan had tersebut pada buku yang paling nipis, iaitu bahagian atas buku yang disatukan (consolidated top of book), satu tahap harga bagi setiap bahagian dan MBP-1 dalam penamaan ini.
SQL tepat di sebalik setiap nombor
WITH
ordered AS
(
SELECT
row_number() OVER (ORDER BY sip_timestamp, sequence_number) AS msg_index,
bid_price,
bid_size,
lagInFrame(bid_price) OVER (ORDER BY sip_timestamp, sequence_number) AS prev_bid_price,
lagInFrame(bid_size) OVER (ORDER BY sip_timestamp, sequence_number) AS prev_bid_size
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-16 14:00:00'
AND sip_timestamp < '2026-06-16 14:30:00'
AND bid_price > 0
),
classified AS
(
SELECT multiIf(
bid_price != prev_bid_price, 'best bid price changed',
bid_size > prev_bid_size, 'size joined at the best bid',
bid_size < prev_bid_size, 'size left the best bid',
'bid untouched, ask side updated') AS message_type
FROM ordered
WHERE msg_index > 1
)
SELECT
message_type,
count() AS message_count,
round(100 * count() / sum(count()) OVER (), 1) AS share_pct
FROM classified
GROUP BY message_type
ORDER BY indexOf(['best bid price changed', 'size joined at the best bid', 'size left the best bid', 'bid untouched, ask side updated'], message_type)Sepanjang setengah jam itu, 17.6% mesej menggerakkan bidaan terbaik ke harga berbeza, 17.4% menambah saiz pada bidaan yang tidak berubah, 12% membuang saiz pada bidaan yang tidak berubah, dan 53% membiarkan bidaan itu tidak berubah sementara bahagian lain bergerak. Setiap kumpulan adalah pernyataan bersih tentang tahap harga. Tiada satu pun yang menamakan pesanan, dan tiada pengiraan yang boleh mendapatkan semula ID yang hilang.
Apa yang boleh dan tidak boleh dijawab oleh setiap skema
MBP-10 menjawab soalan yang dirumuskan sebagai "berapa banyak saiz yang ada": bentuk tangga, ketidakseimbangan buku, kecairan yang terletak berhampiran pertengahan, dan carta kedalaman itu sendiri. Tahap agregat adalah semua yang diperlukan oleh perkara tersebut.
MBO menjawab soalan yang dirumuskan sebagai "apa yang berlaku kepada pesanan ini": berapa banyak saiz yang berada di hadapan anda apabila anda menyertai, berapa lama pesanan bertahan sebelum dibatalkan, dan kebarangkalian pesanan pasif pada harga sentuhan (at the touch) didagangkan sebelum harga bergerak jauh. Kuantiti tersebut tidak wujud dalam bentuk agregat, dan menjumlahkan pesanan ke dalam jumlah tahap akan memusnahkan urutan yang mentakrifkannya.
Kedudukan baris gilir (queue position) adalah contoh paling jelas, dan ia hanya membawa makna di bawah keutamaan harga-masa berbanding pemadanan pro-rata, di mana urutan ketibaan menentukan siapa yang didagangkan dahulu. Apa yang menjadikannya penting ialah saiz cetakan (print size): sesuatu tahap diisi oleh banyak pelaksanaan kecil, bukan satu pelaksanaan besar.
SQL tepat di sebalik setiap nombor
SELECT
multiIf(size < 100, '1 to 99 shares',
size < 200, '100 to 199 shares',
size < 500, '200 to 499 shares',
size < 1000, '500 to 999 shares',
'1000 or more shares') AS trade_size_bucket,
count() AS trade_count,
round(100 * count() / sum(count()) OVER (), 1) AS share_pct,
round(avg(size)) AS avg_shares
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-16 14:00:00'
AND sip_timestamp < '2026-06-16 14:30:00'
AND size > 0
GROUP BY trade_size_bucket
ORDER BY min(size)Cetakan di bawah 100 saham, iaitu lot ganjil (odd lot), membentuk 92.3% daripada dagangan dalam tetingkap itu, dan baldi terbesar yang ada, 1000 or more shares, membentuk 0.1%. Suapan mencetak saiz tersebut ke tahap yang memaparkan 4,000 saham dan pesanan yang menyertai baris gilir terakhir boleh bertahan melalui berpuluh-puluh pelaksanaan tanpa didagangkan. MBP menunjukkan anda 4,000 itu. MBO menunjukkan anda barisan tersebut.
Tiada skema yang menunjukkan saiz tersembunyi. Pesanan iceberg memaparkan hujung kecil dan menyegarkan semula dengan ID baharu setiap kali hujung itu diisi, jadi rizab tidak pernah muncul dalam sebarang mesej.
Membina semula buku daripada MBO ialah mesin keadaan
Suapan MBP memberikan anda jawapan. Suapan MBO memberikan anda input dan menjangkakan anda tepat sepenuhnya:
- Mulakan daripada syot kilat (snapshot), atau daripada buku kosong ditambah mesej penjelasan tempat (venue).
- Gunakan setiap tambah, ubah suai, batal, dan isi dalam urutan yang ketat, dikunci oleh ID pesanan.
- Kekalkan indeks kedua mengikut tahap harga, kerana itulah yang dibaca oleh strategi anda.
- Perhatikan nombor urutan, dan segerakkan semula daripada syot kilat baharu apabila ada yang hilang.
Mod kegagalan adalah senyap. Jika satu pembatalan tercicir, pesanan hantu akan kekal dalam buku anda sepanjang sesi, meningkatkan tahap itu, tanpa sebarang pengecualian dibangkitkan. MBP merosot dengan lebih perlahan: setiap kemas kini menyatakan semula jumlah tahap, jadi nilai yang rosak akan ditimpa dalam beberapa mesej.
MBO juga hanya wujud pada suapan tempat terus, satu buku bagi setiap bursa, yang bermaksud menjalankan dan menggabungkan beberapa daripadanya. Pita disatukan (consolidated tape) adalah ringkasan mengikut pembinaan, satu perpecahan yang dibincangkan dalam SIP berbanding suapan bursa terus.
Kos lebar jalur bagi perincian tambahan
Kiraan mesej ialah cara jujur untuk menetapkan harga perbezaan tersebut. Panel di bawah mengira mesej bahagian atas buku yang disatukan berbanding cetakan sebenar sepanjang setengah jam yang sama untuk lima nama isi rumah.
SQL tepat di sebalik setiap nombor
WITH
quote_load AS
(
SELECT ticker, count() AS quote_messages
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'MSFT', 'KO')
AND sip_timestamp >= '2026-06-16 14:00:00'
AND sip_timestamp < '2026-06-16 14:30:00'
GROUP BY ticker
),
trade_load AS
(
SELECT ticker, count() AS trades
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'MSFT', 'KO')
AND sip_timestamp >= '2026-06-16 14:00:00'
AND sip_timestamp < '2026-06-16 14:30:00'
GROUP BY ticker
)
SELECT
q.ticker AS ticker,
round(q.quote_messages / 1000, 1) AS quote_messages_thousands,
round(t.trades / 1000, 2) AS trades_thousands,
round(q.quote_messages / t.trades, 1) AS quotes_per_trade_ratio
FROM quote_load AS q
INNER JOIN trade_load AS t ON t.ticker = q.ticker
ORDER BY quotes_per_trade_ratio DESCSPY membawa trafik sebut harga paling berat bagi setiap cetakan, 9.6 mesej bagi setiap dagangan dan 510 ribu mesej dalam tiga puluh minit. Perbezaan merentasi lima nama tersebut adalah luas: di bahagian bawah panel, MSFT menjalankan 0.7 mesej sebut harga bagi setiap cetakan, kurang daripada satu mesej bagi setiap dagangan. Ingat apa yang dikira oleh lajur itu: satu tahap harga bagi setiap bahagian, pada suapan yang telah menggabungkan setiap tempat menjadi satu bidaan dan tawaran terbaik. Produk kedalaman sepuluh tahap menggandakannya, dan suapan setiap pesanan menggandakannya lagi, kerana setiap pesanan di belakang setiap tahap pada setiap tempat menjana tambahannya sendiri, ubah suainya sendiri, dan pembatalannya sendiri, sama ada ia didagangkan atau tidak. Aritmetik yang sama muncul pada skala yang lebih besar dalam saiz suapan sebut harga opsyen.
Suapan buku pesanan yang manakah diperlukan oleh strategi?
Kebanyakan kerja dijalankan pada MBP-10. Carta kedalaman, ciri ketidakseimbangan, pengukuran kecairan pada harga, model kos pelaksanaan, dan hampir setiap soalan penyelidikan tentang berapa banyak saiz yang terletak di mana boleh dijawab daripada tahap agregat, pada sebahagian kecil daripada jumlah mesej.
MBO adalah keperluan apabila jawapan bergantung pada pesanan tertentu: kedudukan baris gilir, jangka hayat pesanan, tingkah laku pembatalan, kebarangkalian pengisian pasif pada harga sentuhan. Strategi yang hidup atau mati berdasarkan sama ada ia berada 200 saham atau 20,000 saham dalam barisan tidak boleh dicapai daripada data agregat, dan ia perlu membayar kos yuran lesen, lebar jalur, storan, dan kejuruteraan untuk memastikan buku yang dibina semula itu tepat sepanjang hari.
Cara panel ini dibina
- Suapan di sebalik setiap panel ialah bahagian atas buku yang disatukan, satu tahap harga bagi setiap bahagian, ditambah pita dagangan. Ia bukan suapan kedalaman dan bukan suapan setiap pesanan, jadi panel ini menggambarkan hujah jumlah mesej dan bukannya mencerap MBO itu sendiri.
- Tetingkap ditetapkan pada tarikh tetap yang lalu, 10:00 hingga 10:30 pagi ET pada 16 Jun 2026, disimpan sebagai 14:00 hingga 14:30 UTC. Tetingkap tetap memastikan nombor stabil merentasi penjanaan semula.
- Panel klasifikasi melabelkan setiap mesej berbanding yang sebelumnya dalam urutan. Ia tidak boleh memisahkan pembatalan daripada pengisian, iaitu had tepat yang diterangkan oleh catatan ini.
Soalan Lazim
Apakah perbezaan antara data pasaran MBO dan MBP?
MBP, atau market by price, mengagregatkan saiz yang dipaparkan pada setiap tahap harga dan menghantar satu kemas kini bagi setiap tahap. MBO, atau market by order, menghantar setiap pesanan individu dengan ID tersendiri, berserta peristiwa tambah, ubah suai, batal, dan isi yang berlaku kepadanya.
Adakah data Level 2 sama dengan data MBO?
Biasanya tidak. "Level 2" di broker runcit hampir selalu bermaksud kedalaman agregat, jadi MBP dengan lima hingga dua puluh tahap harga. Beberapa vendor memasarkan suapan setiap pesanan di bawah nama peringkat yang sama, jadi nama skema, bukan nama peringkat, menentukan apa yang sampai pada wayar.
Berapa lebih besarkah suapan MBO berbanding suapan MBP?
Beberapa gandaan, bergantung pada tempat dan simbol. Bahagian atas buku yang disatukan sahaja berjalan pada 9.6 mesej bagi setiap cetakan untuk nama paling sibuk dalam panel di atas. Suapan setiap pesanan menambah setiap tambah, ubah suai, dan batal di belakang setiap tahap pada setiap tempat, termasuk sebahagian besar pesanan yang tidak pernah didagangkan.
Bolehkah anda membina semula buku MBP daripada data MBO?
Ya, dan itulah saluran paip biasa: gunakan setiap peristiwa pesanan pada buku yang dikunci oleh ID pesanan, kemudian terbitkan jumlah tahap. Sebaliknya adalah mustahil: sebaik sahaja pesanan dijumlahkan ke dalam jumlah tahap, ID individu dan urutan ketibaannya akan hilang.
Setiap panel di sini dihantar dengan SQL tepat di bawahnya. Untuk mengira mesej yang sama pada simbol atau sesi yang berbeza, ajukan soalan dalam bahasa Inggeris yang mudah pada terminal Strasmore.