Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

MBO اور MBP آرڈر بک ڈیٹا میں کیا فرق ہے؟

MBO اور MBP ڈیٹا کے تکنیکی فرق کا تجزیہ۔ MBP جہاں پرائس لیول پر مجموعی سائز دکھاتا ہے، وہیں MBO ہر انفرادی آرڈر کی تفصیل فراہم کرتا ہے۔ ان کے اخراجات اور استعمال کو سمجھیں۔

MBO اور MBP آرڈر بک ڈیٹا کے درمیان فرق ایک چھوٹی سی اصطلاح کے پیچھے چھپا ہوا ایک بڑا تکنیکی فرق ہے۔ دو وینڈرز آپ کو "Level 2" کے نام سے ڈیٹا بیچ سکتے ہیں: MBP (مارکیٹ بائے پرائس) ہر پرائس لیول پر موجود کل سائز بھیجتا ہے، جبکہ MBO (مارکیٹ بائے آرڈر) ہر انفرادی آرڈر کو اس کی اپنی ID کے ساتھ ایک الگ ایونٹ کے طور پر بھیجتا ہے۔ ایک بک کا خلاصہ ہے؛ دوسرا وہ لیجر ہے جس سے بک تعمیر ہوتی ہے، اور اسے منتقل کرنے کے لیے درکار ٹریفک کئی گنا زیادہ ہوتی ہے۔

MBP اور MBO آرڈر بک ڈیٹا میں اصل میں کیا ہوتا ہے

MBP، یعنی مارکیٹ بائے پرائس، مجموعی گہرائی (aggregated depth) ہے۔ ہر اپ ڈیٹ ایک سائیڈ، ایک پرائس لیول، وہاں موجود کل ڈسپلے شدہ سائز، اور بعض اوقات اس کے پیچھے موجود آرڈرز کی تعداد بتاتی ہے۔ MBP-10 کے طور پر فروخت ہونے والی پروڈکٹ آپ کو ہر سائیڈ پر دس بہترین پرائس لیولز دیتی ہے، جو ٹریڈنگ پلیٹ فارم پر لیڈر اور ہر ڈیپتھ چارٹ میں سیڑھی کی طرح نظر آتے ہیں۔

MBO، یعنی مارکیٹ بائے آرڈر، ایک ایونٹ اسٹریم ہے۔ ہر پیغام ایک آرڈر کی نشاندہی کرتا ہے: اس کی ID، سائیڈ، قیمت، ڈسپلے شدہ سائز، اور اس کے ساتھ ہونے والا حالیہ واقعہ۔ کچھ بھی پہلے سے جمع (pre-aggregated) نہیں ہوتا۔ اگر ایک ہی قیمت پر چالیس آرڈرز موجود ہوں، تو چالیس الگ پیغامات انہیں وہاں رکھتے ہیں، اور اس لیول کا کل ٹوٹل جاننے کے لیے آپ کو وہ چالیس کے چالیس میموری میں رکھنے پڑتے ہیں۔

ہماری Level 1 بمقابلہ Level 2 مارکیٹ ڈیٹا گائیڈ میں وضاحت کی گئی ہے کہ بروکر کے پاس ریٹیل ٹیر لیبلز کا کیا مطلب ہے۔ جب کوئی وینڈر "Level 2" کہتا ہے تو MBO اور MBP ان اصطلاحات کے درست نام ہیں جو اس باکس کے اندر موجود ہوتے ہیں، اور اسکیمہ کا نام ہی وہ چیز ہے جس کے بارے میں پوچھنا چاہیے۔

MBO فیڈ میں شامل میسج ایکشنز

MBO فیڈ آرڈر IDs پر لاگو ہونے والے ایکشنز کی درجہ بندی ہے۔ چار ایکشنز زیادہ تر ٹریفک کا باعث بنتے ہیں:

  • Add: ایک نیا آرڈر ایک نئی ID کے ساتھ کسی قیمت پر بک میں شامل ہوتا ہے۔
  • Modify: ایک موجودہ ID قیمت یا سائز تبدیل کرتی ہے۔ سائز بڑھانا یا قیمت تبدیل کرنا آرڈر کو اس نئے لیول پر قطار کے آخر میں بھیج دیتا ہے؛ سائز کم کرنے سے عام طور پر اس کی جگہ برقرار رہتی ہے۔
  • Cancel: ایک ID مکمل یا جزوی طور پر بک سے نکل جاتی ہے۔
  • Trade یا fill: ایک ایگریسو آرڈر ایک یا زیادہ موجودہ IDs کے خلاف ایگزیکیوٹ ہوتا ہے، جس سے وہ سکڑ جاتے ہیں یا ختم ہو جاتے ہیں۔

MBP میں اس لغت کا کوئی حصہ نہیں ہوتا۔ MBP اپ ڈیٹ صرف ایک لیول کے بارے میں بیان ہے: اس قیمت پر اب اتنا سائز موجود ہے۔ چاہے سائز کینسل ہونے سے کم ہوا ہو یا ٹریڈ ہونے سے، اپ ڈیٹ ایک جیسی ہی نظر آتی ہے۔ نیچے دیا گیا پینل سب سے پتلی بک، یعنی کنسولیڈیٹڈ ٹاپ آف بک پر اس حد کو ظاہر کرتا ہے، جس میں ہر سائیڈ پر ایک پرائس لیول اور اس نام کے مطابق MBP-1 ہے۔

استفسار کریںمسلسل top-of-book پیغامات کے درمیان تبدیلی (AAPL، 10:00 تا 10:30 صبح ET، 16 جون 2026)
ہر عدد کے پیچھے موجود درست SQL
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)
Run this yourself

اس آدھے گھنٹے کے دوران، 17.6% پیغامات نے بہترین بڈ (bid) کو مختلف قیمت پر منتقل کیا، 17.4% نے غیر تبدیل شدہ بڈ پر سائز کا اضافہ کیا، 12% نے غیر تبدیل شدہ بڈ سے سائز ہٹایا، اور 53% نے بڈ کو ویسے ہی چھوڑ دیا جبکہ دوسری سائیڈ منتقل ہو گئی۔ ہر گروپ ایک پرائس لیول کے بارے میں ایک خالص بیان ہے۔ کوئی بھی کسی آرڈر کا نام نہیں لیتا، اور کوئی بھی حساب کتاب اس گمشدہ ID کو واپس نہیں لا سکتا۔

ہر اسکیمہ کن سوالات کا جواب دے سکتا ہے اور کن کا نہیں

MBP-10 ان سوالات کا جواب دیتا ہے جو "وہاں کتنا سائز تھا" کے بارے میں ہوں: لیڈر کی شکل، بک کا عدم توازن، مڈ (mid) کے قریب موجود لیکویڈیٹی، اور خود ڈیپتھ چارٹ۔ ان سب کے لیے مجموعی لیولز کافی ہیں۔

MBO ان سوالات کا جواب دیتا ہے جو "اس آرڈر کے ساتھ کیا ہوا" کے بارے میں ہوں: جب آپ شامل ہوئے تو آپ سے آگے کتنا سائز تھا، کینسل ہونے سے پہلے آرڈرز کتنی دیر تک برقرار رہتے ہیں، اور اس بات کا امکان کہ ٹچ (touch) پر موجود ایک پیسو آرڈر قیمت کے بدلنے سے پہلے ٹریڈ ہو جائے۔ یہ مقداریں مجموعی شکل میں موجود نہیں ہوتیں، اور آرڈرز کو ایک لیول ٹوٹل میں جمع کرنے سے وہ ترتیب ختم ہو جاتی ہے جس نے انہیں متعین کیا تھا۔

قطار میں پوزیشن (Queue position) اس کی واضح ترین مثال ہے، اور اس کا مطلب صرف پرائس ٹائم ترجیح بمقابلہ پرو-ریٹا میچنگ کے تحت ہوتا ہے، جہاں آمد کی ترتیب فیصلہ کرتی ہے کہ کون پہلے ٹریڈ کرے گا۔ جو چیز اسے اہم بناتی ہے وہ پرنٹ سائز ہے: ایک لیول بہت سی چھوٹی ایگزیکیوشنز سے بھرتا ہے، نہ کہ ایک بڑی سے۔

استفسار کریںمذکورہ دورانیے میں trade size mix (AAPL، 10:00 تا 10:30 صبح ET، 16 جون 2026)
ہر عدد کے پیچھے موجود درست SQL
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)
Run this yourself

100 حصص سے کم کے پرنٹس، یعنی اوڈ لاٹ (odd lot)، اس ونڈو میں 92.3% ٹریڈز پر مشتمل تھے، اور سب سے بڑا موجودہ بکٹ، 1000 or more shares، 0.1% پر مشتمل تھا۔ اگر آپ اس سائز کے پرنٹس کو 4,000 حصص دکھانے والے لیول پر بھیجیں، تو قطار میں سب سے آخر میں شامل ہونے والا آرڈر ٹریڈ ہوئے بغیر درجنوں ایگزیکیوشنز دیکھ سکتا ہے۔ MBP آپ کو 4,000 دکھاتا ہے۔ MBO آپ کو وہ لائن دکھاتا ہے۔

کوئی بھی اسکیمہ چھپا ہوا سائز (hidden size) نہیں دکھاتا۔ ایک آئس برگ آرڈر ایک چھوٹا سا حصہ دکھاتا ہے اور ہر بار جب وہ حصہ فل ہوتا ہے تو ایک نئی ID کے ساتھ ریفریش ہوتا ہے، اس لیے ریزرو سائز کبھی کسی پیغام میں ظاہر نہیں ہوتا۔

MBO سے بک کو دوبارہ تعمیر کرنا ایک اسٹیٹ مشین ہے

MBP فیڈ آپ کو جواب دے دیتی ہے۔ MBO فیڈ آپ کو ان پٹس دیتی ہے اور توقع کرتی ہے کہ آپ بالکل درست ہوں:

  1. اسنیپ شاٹ سے شروع کریں، یا خالی بک اور وینیو کے کلیئر میسج سے۔
  2. ہر ایڈ، موڈیفائی، کینسل اور فل کو سخت ترتیب کے ساتھ لاگو کریں، جس کی کلید آرڈر ID ہو۔
  3. پرائس لیول کے لحاظ سے دوسرا انڈیکس برقرار رکھیں، کیونکہ آپ کی حکمت عملی اسی کو پڑھتی ہے۔
  4. سیکونس نمبرز پر نظر رکھیں، اور جب بھی کوئی نمبر غائب ہو تو تازہ اسنیپ شاٹ سے دوبارہ مطابقت (re-sync) پیدا کریں۔

اس میں ناکامی خاموشی سے ہوتی ہے۔ ایک کینسل کو چھوڑ دیں تو ایک فینٹم آرڈر باقی سیشن کے لیے آپ کی بک میں موجود رہے گا، جو اس لیول کو بڑھا چڑھا کر دکھائے گا، اور کہیں کوئی ایکسیپشن ریز نہیں ہوگی۔ MBP بہت بہتر طریقے سے کام کرتا ہے: ہر اپ ڈیٹ ایک لیول کا ٹوٹل دوبارہ بیان کرتی ہے، لہذا خراب ویلیو چند پیغامات کے اندر ہی اوور رائٹ ہو جاتی ہے۔

MBO صرف براہِ راست وینیو فیڈز پر موجود ہوتا ہے، ہر ایکسچینج کے لیے ایک بک، جس کا مطلب ہے کہ ان میں سے کئی کو چلانا اور ضم کرنا۔ کنسولیڈیٹڈ ٹیپ ساخت کے لحاظ سے ایک خلاصہ ہے، جس کی تقسیم SIP بمقابلہ براہِ راست ایکسچینج فیڈز میں بیان کی گئی ہے۔

اضافی تفصیلات کی بینڈوڈتھ لاگت

میسج کی تعداد فرق کی قیمت جانچنے کا ایماندارانہ طریقہ ہے۔ نیچے دیا گیا پینل پانچ مشہور ناموں کے لیے اسی پنڈ (pinned) آدھے گھنٹے کے دوران کنسولیڈیٹڈ ٹاپ آف بک کے پیغامات کا اصل پرنٹس کے مقابلے میں موازنہ کرتا ہے۔

استفسار کریںTop-of-book پیغامات بمقابلہ پرنٹس، 10:00 تا 10:30 صبح ET، 16 جون 2026
ہر عدد کے پیچھے موجود درست SQL
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 DESC
Run this yourself

SPY نے فی پرنٹ سب سے زیادہ کوٹ ٹریفک اٹھائی، ہر ٹریڈ کے لیے 9.6 پیغامات اور تیس منٹ میں 510 ہزار پیغامات۔ پانچ ناموں کے درمیان پھیلاؤ وسیع ہے: پینل کے نچلے حصے میں، MSFT نے فی پرنٹ 0.7 کوٹ پیغامات چلائے، جو ہر ٹریڈ کے لیے ایک پیغام سے بھی کم ہے۔ یاد رکھیں کہ وہ کالم کیا گنتا ہے: ہر سائیڈ پر ایک پرائس لیول، ایسی فیڈ پر جس نے پہلے ہی ہر وینیو کو ایک بہترین بڈ اور آفر میں ضم کر دیا ہے۔ دس لیول کی ڈیپتھ پروڈکٹ اسے ضرب دیتی ہے، اور فی آرڈر فیڈ اسے دوبارہ ضرب دیتی ہے، کیونکہ ہر وینیو پر ہر لیول کے پیچھے موجود ہر آرڈر اپنا ایڈ، اپنا موڈیفائی، اور اپنا کینسل پیدا کرتا ہے، چاہے وہ کبھی ٹریڈ ہو یا نہ ہو۔ یہی حساب کتاب بڑے پیمانے پر آپشنز کوٹ فیڈ کے سائز میں نظر آتا ہے۔

کسی حکمت عملی کو کون سی آرڈر بک فیڈ درکار ہے؟

زیادہ تر کام MBP-10 پر چلتا ہے۔ ڈیپتھ چارٹس، عدم توازن کی خصوصیات، قیمت پر لیکویڈیٹی کی پیمائش، ایگزیکیوشن لاگت کے ماڈلز، اور اس بارے میں تقریباً ہر تحقیقی سوال کہ کہاں کتنا سائز موجود تھا، مجموعی لیولز سے جواب طلب کیے جا سکتے ہیں، اور وہ بھی میسج کے حجم کے ایک چھوٹے سے حصے کے ساتھ۔

MBO تب درکار ہوتا ہے جب جواب کسی مخصوص آرڈر پر منحصر ہو: قطار میں پوزیشن، آرڈر کی عمر، کینسل کرنے کا رویہ، ٹچ پر پیسو فل ہونے کا امکان۔ ایسی حکمت عملی جو اس بات پر منحصر ہو کہ وہ لائن میں 200 حصص گہری ہے یا 20,000، وہ مجموعی ڈیٹا سے یہ معلومات حاصل نہیں کر سکتی، اور اس کے لیے اسے لائسنس فیس، بینڈوڈتھ، اسٹوریج، اور دوبارہ تعمیر شدہ بک کو درست رکھنے کی انجینئرنگ کی قیمت ادا کرنی پڑتی ہے۔

یہ پینلز کیسے بنائے گئے
  • ہر پینل کے پیچھے فیڈ کنسولیڈیٹڈ ٹاپ آف بک ہے، ہر سائیڈ پر ایک پرائس لیول، جمع ٹریڈ ٹیپ۔ یہ ڈیپتھ فیڈ نہیں ہے اور نہ ہی فی آرڈر فیڈ، لہذا یہ پینلز MBO کو سیمپل کرنے کے بجائے میسج کے حجم کی دلیل کو واضح کرتے ہیں۔
  • ونڈوز کو ایک مقررہ ماضی کی تاریخ، 16 جون 2026 کو صبح 10:00 سے 10:30 بجے ET پر پنڈ کیا گیا ہے، جو 14:00 سے 14:30 UTC کے طور پر محفوظ ہے۔ پنڈ ونڈوز ری جنریشن کے دوران نمبروں کو مستحکم رکھتی ہیں۔
  • کلاسیفیکیشن پینل ہر پیغام کو ترتیب میں پچھلے پیغام کے مقابلے میں لیبل کرتا ہے۔ یہ کینسل کو فل سے الگ نہیں کر سکتا، جو کہ وہی محدودیت ہے جس کا یہ پوسٹ ذکر کرتی ہے۔

اکثر پوچھے گئے سوالات

MBO اور MBP مارکیٹ ڈیٹا میں کیا فرق ہے؟

MBP، مارکیٹ بائے پرائس، ہر پرائس لیول پر ڈسپلے شدہ سائز کو جمع کرتا ہے اور فی لیول ایک اپ ڈیٹ بھیجتا ہے۔ MBO، مارکیٹ بائے آرڈر، ہر انفرادی آرڈر کو اس کی اپنی ID کے ساتھ بھیجتا ہے، اس کے ساتھ ایڈ، موڈیفائی، کینسل اور فل ایونٹس بھی بھیجتا ہے جو اس کے ساتھ ہوتے ہیں۔

کیا Level 2 ڈیٹا MBO ڈیٹا جیسا ہی ہے؟

عام طور پر نہیں۔ ریٹیل بروکر کے پاس "Level 2" کا مطلب تقریباً ہمیشہ مجموعی گہرائی (aggregated depth) ہوتا ہے، یعنی پانچ سے بیس پرائس لیولز کے ساتھ MBP۔ کچھ وینڈرز اسی ٹیر نام کے تحت فی آرڈر فیڈ مارکیٹ کرتے ہیں، لہذا اسکیمہ کا نام، نہ کہ ٹیر کا نام، یہ طے کرتا ہے کہ وائر پر کیا پہنچے گا۔

MBO فیڈ MBP فیڈ سے کتنی بڑی ہوتی ہے؟

کئی گنا زیادہ، جو وینیو اور سمبل کے لحاظ سے مختلف ہوتی ہے۔ صرف کنسولیڈیٹڈ ٹاپ آف بک اوپر دیے گئے پینل میں مصروف ترین نام کے لیے 9.6 پیغامات فی پرنٹ پر چل رہی تھی۔ فی آرڈر فیڈ ہر وینیو پر ہر لیول کے پیچھے ہر ایڈ، موڈیفائی اور کینسل کا اضافہ کرتی ہے، بشمول ان آرڈرز کی بڑی اکثریت کے جو کبھی ٹریڈ نہیں ہوتے۔

کیا آپ MBO ڈیٹا سے MBP بک دوبارہ تعمیر کر سکتے ہیں؟

جی ہاں، اور یہ معمول کا پائپ لائن عمل ہے: ہر آرڈر ایونٹ کو آرڈر ID کے لحاظ سے بک پر لاگو کریں، پھر لیول ٹوٹلز شائع کریں۔ اس کا الٹ ناممکن ہے: ایک بار جب آرڈرز کو لیول ٹوٹل میں جمع کر دیا جائے، تو انفرادی IDs اور ان کی آمد کی ترتیب ختم ہو جاتی ہے۔


یہاں ہر پینل اس کے نیچے موجود درست SQL کے ساتھ آتا ہے۔ کسی مختلف سمبل یا سیشن پر انہی پیغامات کو گننے کے لیے، Strasmore ٹرمینل پر سادہ انگریزی میں سوال پوچھیں۔