Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

L2 डेटा से क्यू पोजीशन का अनुमान कैसे लगाएं

क्यू पोजीशन यह तय करती है कि पैसिव ऑर्डर को स्प्रेड का लाभ मिलेगा या नहीं। एग्रीगेटेड बुक डेटा से इसका अनुमान लगाने की विधि और MBO डेटा की आवश्यकता कब होती है, यह जानें।

क्यू पोजीशन (queue position) का अर्थ है एक ही मूल्य पर लगे ऑर्डर्स की कतार में आपका स्थान। प्राइस-टाइम प्रायोरिटी (price-time priority) वाले वेन्यू पर, यही तय करता है कि कोई पैसिव ऑर्डर स्प्रेड (spread) से लाभ कमाएगा या उसका ट्रेड कभी नहीं होगा। एग्रीगेटेड मार्केट डेटा आपको यह संख्या नहीं देता: लेवल 2 बुक केवल यह दिखाती है कि प्रत्येक मूल्य पर कुल कितनी मात्रा (size) है, यह नहीं कि वह किसकी है। नीचे यह बताया गया है कि अधिकांश ट्रेडर्स के पास उपलब्ध डेटा से क्यू पोजीशन का अनुमान कैसे लगाया जाए, और यह कैसे पहचाना जाए कि अनुमान कब अपर्याप्त हो जाता है।

क्यू पोजीशन ही एकमात्र एज (edge) क्यों है

एक पैसिव ऑर्डर बुक में रहता है और किसी अन्य के स्प्रेड को पार करके उसमें आने का इंतज़ार करता है। price-time priority के तहत, मैचिंग इंजन पहले मूल्य के आधार पर और फिर आने के समय (arrival time) के आधार पर ऑर्डर्स को रैंक करता है। यदि $10.00 पर पहले से 10,000 शेयर बिड (bid) में हैं और आप उनके पीछे 100 शेयर जोड़ते हैं, तो आपकी बारी आने से पहले उन 10,000 शेयरों का ट्रेड होना या कैंसिल होना आवश्यक है। यदि आप उसी मूल्य पर ऑर्डर कैंसिल करके दोबारा डालते हैं, तो आप कतार में सबसे पीछे चले जाते हैं।

यह रैंकिंग ही अर्थशास्त्र तय करती है। कतार में आगे होने पर आप अक्सर ट्रेड करते हैं और स्प्रेड के साथ-साथ लिक्विडिटी जोड़ने पर मिलने वाला रिबेट भी प्राप्त करते हैं, जो maker-taker fees and rebates का विषय है। पीछे होने पर आप केवल तभी ट्रेड करते हैं जब आपके आगे के सभी ऑर्डर्स का ट्रेड हो चुका हो, जो तब होता है जब एक तरफा फ्लो बड़ी मात्रा में आता है। कतार में पीछे फिल (fill) तब मिलते हैं जब मूल्य आपके स्तर को पार करने वाला होता है। मूल्य वही, ऑर्डर वही, लेकिन परिणाम विपरीत।

लेवल 2 डेटा क्या दिखा सकता है और क्या नहीं

लेवल 1 सबसे अच्छी बिड और ऑफर के साथ उनकी मात्रा दिखाता है। लेवल 2, जिसे मार्केट बाय प्राइस (market by price) भी कहा जाता है, गहराई जोड़ता है: इसमें प्रत्येक मूल्य स्तर पर मौजूद कुल मात्रा की सूची होती है। दोनों एग्रीगेटेड डेटा हैं, और Level 1 vs Level 2 market data इनकी पूरी तुलना करता है। जब $10.00 पर बिड 10,000 शेयरों से घटकर 8,500 हो जाती है, तो फीड केवल यह बताती है कि 1,500 शेयर कम हो गए। यह नहीं बताती कि क्या उनका ट्रेड हुआ, क्या एक ऑर्डर हटा या चालीस, या वे कतार में कहाँ स्थित थे।

एग्जीक्यूशन (executions) दृश्यमान हिस्सा हैं: टेप हर ट्रेड को मात्रा के साथ प्रिंट करता है, इसलिए उन्हें आप सटीक रूप से घटा सकते हैं। बाकी हिस्सा कैंसिलेशन (cancellation) है, और यहीं से अनुमान लगाने की प्रक्रिया शुरू होती है। नीचे दिया गया पैनल बुधवार, 10 जून, 2026 के एक सामान्य सत्र के दौरान एक लिक्विड स्टॉक के लिए कंसोलिडेटेड टॉप ऑफ बुक पर संदेशों और टेप पर प्रिंट की तुलना करता है।

क्वेरीटेप पर प्रिंट्स के मुकाबले टॉप ऑफ बुक मैसेज, AAPL, 10 जून 2026
हर आंकड़े के पीछे का पूरा SQL
SELECT
    q.et_time                            AS et_time,
    q.quote_updates                      AS quote_updates,
    t.trades                             AS trades,
    round(q.quote_updates / t.trades, 1) AS updates_per_trade
FROM
(
    SELECT
        formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
        count() AS quote_updates
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-06-10 12:00:00'
      AND sip_timestamp <  '2026-06-10 20:00:00'
    GROUP BY et_time
) AS q
INNER JOIN
(
    SELECT
        formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS trade_hour,
        count() AS trades
    FROM global_markets.stocks_trades
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-06-10 12:00:00'
      AND sip_timestamp <  '2026-06-10 20:00:00'
    GROUP BY trade_hour
) AS t ON q.et_time = t.trade_hour
ORDER BY et_time
Run this yourself

08:00 घंटा ओपनिंग बेल से पहले का है: वहाँ टॉप ऑफ बुक प्रति प्रिंट 0.8 बार बदली, जो प्रिंट की तुलना में कम संदेश थे। नियमित सत्र के दौरान यह अनुपात बदल जाता है। 15:00 घंटे में टॉप ऑफ बुक प्रति प्रिंट 1.6 बार बदली, जो केवल उस घंटे में 233433 संदेशों के बराबर है। ओपन मार्केट में किसी मूल्य स्तर के साथ जो कुछ भी होता है, उसमें अधिकांश ऑर्डर्स बिना ट्रेड हुए आते और जाते हैं, और इनमें से प्रत्येक घटना कतार में आपके स्थान को उस मात्रा से बदल देती है जिसे कोई भी एग्रीगेटेड फीड नहीं बताती।

समान कैंसिलेशन की धारणा, और यह आपको कैसे भ्रमित करती है

मानक विश्लेषण यह मानकर चलता है कि कैंसिलेशन कतार में समान रूप से फैले हुए हैं। मान लीजिए x आपकी आंशिक गहराई (fractional depth) है: आपके आगे के शेयर, आपके मूल्य पर कुल मौजूद शेयरों से विभाजित। यह मॉडल यह संभावना तय करता है कि कोई भी कैंसिल हुआ शेयर आपके आगे था, जिसे p(x) = x लिखा जाता है। यदि आप 10,000 शेयरों की कतार में आधे रास्ते पर हैं और 1,000 शेयर बिना किसी प्रिंट के कैंसिल होते हैं, तो मॉडल आपको 500 स्थान आगे बढ़ा देता है।

वास्तविक कतारें ऐसी नहीं होतीं। जो ऑर्डर पहले से कतार में है, वह अक्सर ऐसे व्यक्ति का होता है जो इंतज़ार करने को तैयार है, जबकि अभी-अभी जोड़ा गया ऑर्डर अक्सर एक क्षणिक कोट (quote) होता है जो सेकंडों में गायब हो जाता है। कैंसिलेशन कतार के पिछले हिस्से में, यानी आपके पास और आपके पीछे केंद्रित होते हैं। उन 1,000 कैंसिल हुए शेयरों में से शायद 200 आपके आगे थे, जबकि मॉडल ने आपको 500 का श्रेय दिया। यदि आप इसे पूरे दिन दोहराते हैं, तो सिम्युलेटेड कतार वास्तविक कतार की तुलना में तेज़ी से आगे बढ़ती है। त्रुटि एक ही दिशा में होती है: लाइव ऑर्डर्स की तुलना में अधिक फिल, और बेहतर क्षणों पर।

कतार कैसे खाली होती है

कैंसिलेशन आपको अदृश्य रूप से आगे बढ़ाते हैं। ट्रेड आपको प्रिंट की मात्रा के अनुसार स्पष्ट रूप से आगे बढ़ाते हैं।

क्वेरीट्रेड साइज के अनुसार AAPL प्रिंट्स का विवरण, 10 जून 2026
हर आंकड़े के पीछे का पूरा SQL
SELECT
    multiIf(size < 100,  'under 100 shares',
            size = 100,  'exactly 100 shares',
            size <= 499, '101 to 499 shares',
            size <= 999, '500 to 999 shares',
                         '1000 shares or more')             AS trade_size_group,
    round(100 * count() / sum(count()) OVER (), 1)          AS share_of_prints_pct,
    round(100 * sum(size) / sum(sum(size)) OVER (), 1)      AS share_of_shares_pct
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
  AND sip_timestamp >= '2026-06-10 14:00:00'
  AND sip_timestamp <  '2026-06-10 20:00:00'
GROUP BY trade_size_group
ORDER BY min(size)
Run this yourself

इस सत्र में राउंड लॉट से कम के प्रिंट कुल संख्या का 90% और शेयरों का 42.5% थे। एक हज़ार शेयरों या उससे अधिक के ब्लॉक कुल प्रिंट का 0.2% और वॉल्यूम का 19.9% थे। कतारें छोटे-छोटे हिस्सों में खाली होती हैं, इसलिए 2,000 और 3,500 की पोजीशन के बीच का अंतर सैकड़ों प्रिंट के इंतज़ार के बराबर है। जो सिम्युलेटर दो बड़े ट्रेडों के बाद फिल दे देता है, उसने टेप के अधिकांश हिस्से को छोड़ दिया है।

वह ऑर्डर जिसे आप देख नहीं सकते

डेप्थ फीड्स सीमित होती हैं। यदि आप दस मूल्य स्तर प्राप्त करते हैं और आपका ऑर्डर ग्यारहवें पर है, तो आपका ऑर्डर डेटा के बाहर है: न तो उसके आगे की मात्रा दिख रही है और न ही पीछे जुड़ने वाले ऑर्डर्स। उस बिंदु पर आप अनुमान नहीं लगा रहे, बल्कि संख्या गढ़ रहे हैं। यह स्थिति सामान्य है, क्योंकि जो ऑर्डर मार्केट का पीछा नहीं करता, वह जल्दी ही अंदरूनी स्तरों से दूर हो जाता है।

क्वेरीसर्वश्रेष्ठ बिड और उसके द्वारा देखे गए मूल्य स्तर, AAPL, 15 मिनट के अंतराल
हर आंकड़े के पीछे का पूरा SQL
SELECT
    formatDateTime(toStartOfFifteenMinutes(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
    round(avg(toFloat64(bid_price)), 2) AS best_bid,
    uniqExact(bid_price)                AS bid_levels_touched
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
  AND sip_timestamp >= '2026-06-10 14:00:00'
  AND sip_timestamp <  '2026-06-10 20:00:00'
  AND bid_price > 0
GROUP BY et_time
ORDER BY et_time
Run this yourself

10:00 बकेट में औसत बिड $290.29 थी और इसने पंद्रह मिनट के भीतर 187 अलग-अलग मूल्यों को देखा। पेनीज़ में कोट किए गए स्टॉक पर इनमें से प्रत्येक मूल्य एक अलग स्तर है, इसलिए दस-स्तरीय दृश्य दस सेंट की बुक को कवर करता है। ऐसी स्थिति में एक मूल्य पर छोड़ा गया ऑर्डर लंबे समय तक उस सबसे गहरे स्तर से नीचे रह सकता है जिसे उसका मालिक देख सकता है।

क्यू पोजीशन सबसे अधिक मूल्यवान कहाँ है

क्यू पोजीशन वहाँ सबसे अधिक मूल्यवान है जहाँ मूल्य में सुधार (price improvement) असंभव है। एक सेंट के स्प्रेड पर अटका हुआ स्टॉक बेहतर मूल्य के साथ कतार में आगे निकलने की कोई गुंजाइश नहीं छोड़ता: हर कोई एक ही टिक पर जमा होता है, और आने का समय (arrival time) बाकी सब तय करता है। जहाँ स्प्रेड कई सेंट चौड़ा होता है, वहाँ एक ट्रेडर एक पेनी के लिए पूरी कतार के सामने आ जाता है, और मूल्य का निर्णय कतार से ऊपर हो जाता है।

क्वेरीऔसत कोटेड स्प्रेड और एक सेंट स्प्रेड पर लगा समय, 10 जून 2026 मध्याह्न
हर आंकड़े के पीछे का पूरा SQL
SELECT
    ticker                                                AS symbol,
    round(avg(toFloat64(ask_price - bid_price)) * 100, 2) AS avg_spread_cents,
    round(100 * countIf(round(toFloat64(ask_price - bid_price) * 100) <= 1) / count(), 1) AS one_cent_pct
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'KO', 'NVDA', 'MSFT', 'BKNG')
  AND sip_timestamp >= '2026-06-10 15:00:00'
  AND sip_timestamp <  '2026-06-10 19:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
GROUP BY ticker
ORDER BY avg_spread_cents
Run this yourself

उसी सत्र के चार मध्य-दिवसीय घंटों के दौरान, छह नामों में सबसे तंग, KO, का औसत स्प्रेड 1.18 सेंट था और इसने अपने 82.5% अपडेट्स पर एक-सेंट का स्प्रेड दिखाया। सबसे चौड़ा, MSFT, का औसत 8.46 सेंट था, जिसमें 1.1% अपडेट्स पर एक-सेंट का स्प्रेड था। पहले नाम पर कैलिब्रेट किया गया क्यू मॉडल दूसरे के बारे में कुछ भी उपयोगी नहीं बताता। कोट्स के बीच रहने वाले ऑर्डर्स, जिन्हें midpoint peg orders में कवर किया गया है, उन्हीं नियमों के तहत अपनी अलग कतार बनाते हैं।

अपने बैकटेस्ट के लिए चार डायग्नोस्टिक्स

  1. समान घंटों में समान नामों पर सिम्युलेटेड फिल दर की तुलना अपनी लाइव फिल दर से करें। जो सिम्युलेटर उन 40% ऑर्डर्स को 70% फिल करता है जो लाइव 40% ही फिल हुए थे, वह बाजार का नहीं, बल्कि आपकी धारणा का वर्णन कर रहा है।
  2. सिम्युलेटेड फिल्स को दो हिस्सों में बांटें: वे जहाँ मूल्य स्तर बाद में बना रहा, और वे जो केवल तब हुए जब स्तर पूरी तरह साफ हो गया। दूसरे प्रकार की ओर झुकाव का मतलब है कि सिम्युलेटर आपको तब फिल दे रहा है जब मूल्य आपको पार कर रहा है।
  3. धारणा को ब्रैकेट करें। हर कैंसिलेशन को कतार के सामने से मानकर दोबारा रन करें, फिर हर कैंसिलेशन को पीछे से मानकर। ये दो रन आपके द्वारा चुने गए किसी भी p(x) के आसपास ईमानदार त्रुटि सीमा (error bars) हैं।
  4. मापें कि आपका मूल्य कितनी बार आपकी फीड की गहराई से बाहर था। वहाँ हुए फिल्स मनगढ़ंत थे। Look-ahead bias in backtesting इसी विफलता को दूसरे नज़रिए से बताता है: एक परिणाम जो ऐसी जानकारी पर टिका है जो रणनीति के पास कभी थी ही नहीं।

मॉडलिंग कब बंद करें और ऑर्डर डेटा कब खरीदें

मार्केट-बाय-ऑर्डर (MBO) डेटा हर व्यक्तिगत ऑर्डर के लिए एक संदेश ले जाता है, उसके आने के क्षण से लेकर उसके एग्जीक्यूट या कैंसिल होने तक, प्रत्येक अपने स्वयं के पहचानकर्ता (identifier) के साथ। उस फीड को रिप्ले करें और कतार में आपका स्थान एक अनुमान के बजाय एक गणना बन जाता है, बशर्ते आप अपने ऑर्डर के वेन्यू तक पहुँचने में एक यथार्थवादी देरी मान लें। यह डेप्थ फीड से अधिक महंगा है और इसे स्टोर करना बहुत बड़ा काम है।

डायग्नोस्टिक 3 निर्णय का नियम है। यदि सामने और पीछे के दोनों ब्रैकेट रणनीति को लाभदायक बनाते हैं, तो बीच का अनुमान काम करेगा। यदि रणनीति एक ब्रैकेट के तहत पैसा कमाती है और दूसरे के तहत खोती है, तो क्यू मॉडल ही रणनीति है, और अनुमान का बचाव करने से सस्ता है ऑर्डर-बाय-ऑर्डर फीड खरीदना।

प्रो-राटा वेन्यू प्रश्न को बदल देते हैं

कुछ फ्यूचर्स और ऑप्शंस मार्केट आने वाले ऑर्डर को एक मूल्य पर मौजूद ऑर्डर्स के बीच मात्रा के अनुपात में विभाजित करते हैं, न कि आने के क्रम में। वहाँ समय का महत्व बहुत कम है, और कोट की गई मात्रा (quoted size) ही लीवर बन जाती है: अपनी मात्रा को दोगुना करने से प्रत्येक फिल में आपका हिस्सा लगभग दोगुना हो जाता है। विफलता का तरीका भी उसी के साथ बदल जाता है, जितना आप स्वामित्व में रखना चाहते हैं उससे अधिक मात्रा कोट करने की ओर। Why options orders do not get filled यह बताता है कि ऑप्शंस बुक के रिटेल पक्ष से यह कैसा दिखता है।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

ट्रेडिंग में क्यू पोजीशन क्या है?

क्यू पोजीशन एक ही वेन्यू पर एक ही मूल्य पर लगे ऑर्डर्स के बीच आपकी रैंक है। प्राइस-टाइम प्रायोरिटी बुक पर, आपके आगे के ऑर्डर्स का ट्रेड होना या कैंसिल होना आवश्यक है, इससे पहले कि आपका ऑर्डर ट्रेड हो सके।

क्या लेवल 2 डेटा से क्यू पोजीशन की गणना की जा सकती है?

सटीक रूप से नहीं। लेवल 2 बिना ऑर्डर पहचान के प्रति मूल्य स्तर कुल मात्रा दिखाता है, इसलिए जब बिना किसी प्रिंट के मात्रा गायब होती है, तो आप यह नहीं बता सकते कि वे शेयर आपके आगे थे या पीछे। आप संख्या का अनुमान लगा सकते हैं और उसे ब्रैकेट कर सकते हैं। सटीक आंकड़े के लिए ऑर्डर-बाय-ऑर्डर डेटा की आवश्यकता होती है।

बैकटेस्ट की गई फिल दरें आमतौर पर बहुत अधिक क्यों होती हैं?

सामान्य धारणा यह मानती है कि कैंसिलेशन कतार में समान रूप से फैले हैं, जबकि वास्तविक कैंसिलेशन पीछे की ओर केंद्रित होते हैं। एक समान मॉडल आपके सिम्युलेटेड ऑर्डर को वास्तविक कतार की तुलना में तेज़ी से आगे बढ़ाता है, जो लाइव ट्रेडिंग की तुलना में अधिक और बेहतर फिल्स के रूप में दिखता है।

MBO डेटा क्या है?

मार्केट-बाय-ऑर्डर डेटा हर व्यक्तिगत ऑर्डर को उसके आने से लेकर एग्जीक्यूशन या कैंसिल होने तक के संदेश देता है। यह वह फीड है जहाँ कतार में आपका स्थान अनुमानित होने के बजाय गिनने योग्य होता है, जो एक-टिक स्प्रेड पर रहने वाली रणनीतियों के लिए सबसे महत्वपूर्ण है।

क्या प्रो-राटा वेन्यू पर क्यू पोजीशन मायने रखती है?

कम। प्रो-राटा आवंटन आने वाले ऑर्डर को मात्रा के आधार पर विभाजित करता है, इसलिए पहले आने से आपको बहुत कम लाभ मिलता है और कोट की गई मात्रा ही काम करती है। किसी भी क्यू मॉडलिंग से पहले यह जांचना आवश्यक है कि वेन्यू किस आवंटन मॉडल का उपयोग करता है।


यहाँ हर पैनल में वह SQL है जिसने इसे तैयार किया है। टिकर बदलें, तारीख बदलें, और उन नामों के बारे में वही सवाल पूछें जिनका आप Strasmore टर्मिनल पर ट्रेड करते हैं।