Locked और Crossed Markets क्या हैं?
Locked और Crossed markets की परिभाषा और Reg NMS नियमों को विस्तार से जानें। डेटा के माध्यम से समझें कि ये स्थितियाँ कितनी बार और क्यों उत्पन्न होती हैं।
एक 'locked market' वह स्थिति है जब किसी स्टॉक का 'best bid' उसके 'best ask' के बराबर होता है — यानी 'bid-ask spread' बिल्कुल शून्य होता है। 'Crossed market' की स्थिति इससे भी अधिक होती है: इसमें 'best bid' का मूल्य 'best ask' से अधिक होता है। US मार्केट नियमों के अनुसार, एक्सचेंजों के लिए इनमें से किसी भी स्थिति को प्रदर्शित करना प्रतिबंधित है, फिर भी ये दोनों स्थितियाँ 'consolidated quote record' में नियमित रूप से दिखाई देती हैं। यह पेज दोनों स्थितियों को परिभाषित करता है, नियमों की व्याख्या करता है, और इनके होने की आवृत्ति (frequency) को मापता है।
Locked market क्या है?
प्रत्येक US stock के दो मूल्य एक साथ होते हैं: bid, जो किसी भी खरीदार द्वारा दी जाने वाली उच्चतम कीमत है, और ask, जो किसी भी विक्रेता द्वारा स्वीकार की जाने वाली न्यूनतम कीमत है। सामान्यतः ask, bid से ऊपर होता है; इनके बीच का अंतर bid-ask spread कहलाता है, जो तुरंत व्यापार करने की अंतर्निहित लागत है।
जब यह अंतर शून्य हो जाता है, तो उसे locked market कहा जाता है: यदि किसी stock का bid $10.00 और ask $10.05 है, तो इसमें पांच सेंट का spread है। यदि best ask गिरकर $10.00 हो जाए और bid वही रहे, तो quote $10.00 / $10.00 पर locked हो जाता है।
एक ही exchange पर यह स्थिति नहीं रह सकती — $10.00 पर buy और $10.00 पर sell का मिलान तुरंत निष्पादित (execute) हो जाता है। एक locked quote केवल विभिन्न venues के बीच ही बना रह सकता है। US stocks एक साथ एक दर्जन से अधिक exchanges पर ट्रेड करते हैं, और NBBO — national best bid and offer, जो आपके brokerage app में दिखता है — सभी exchanges के सर्वश्रेष्ठ bid और ask को जोड़ता है। यदि एक venue पर $10.00 का bid और दूसरे पर $10.00 का ask है, तो national quote lock हो जाता है, भले ही किसी भी एक venue का order book lock न हो।
Crossed market क्या है?
एक crossed market सामान्य व्यवस्था के विपरीत होता है: इसमें best bid, best ask से ऊपर होता है — उदाहरण के लिए, $10.00 के ask के मुकाबले $10.02 का bid। कागजी तौर पर, कोई भी $10.00 पर खरीद सकता है और $10.02 पर बेच सकता है, जिससे बिना किसी जोखिम के प्रति शेयर दो सेंट का लाभ होगा। इस मुफ्त लाभ के कारण ही crossed quote लंबे समय तक नहीं टिक सकता: पेशेवर फर्में — जिनमें अधिकांश स्टॉक्स के दोनों तरफ quote देने वाले market makers भी शामिल हैं — जैसे ही यह अवसर मिलता है, arbitrage ले लेती हैं, और ऐसा करने से दोनों quotes समाप्त हो जाते हैं। डेटा में जो बचता है, वह केवल एक flicker है: एक venue के update और दूसरे के update के बीच दर्ज किया गया एक crossed record।
Reg NMS द्वारा locked और crossed quotes पर प्रतिबंध क्यों लगाया गया है
यह प्रतिबंध Regulation NMS के अंतर्गत आता है। यह US स्टॉक एक्सचेंजों में ट्रेडिंग के लिए SEC का नियम पुस्तिका (2005 में अपनाया गया) है। Rule 610(d) के अनुसार, प्रत्येक एक्सचेंज को अपने सदस्यों को ऐसी quotes प्रदर्शित करने से रोकना होगा जो protected quotes — अन्य एक्सचेंजों पर मौजूद automated best bids और offers — को lock या cross करती हों। यह नियम नियमित ट्रेडिंग घंटों के दौरान लागू होता है। इसका उद्देश्य यह है कि यदि कोई bid किसी अन्य के ask के बराबर है, तो उसे तुरंत ट्रेड किया जाना चाहिए। नियम पुस्तिका चाहती है कि उस ट्रेड को route और execute किया जाए, न कि उसे एक विरोधाभास के रूप में प्रदर्शित किया जाए।
नीचे दिए गए डेटा के लिए नियम की एक सीमा महत्वपूर्ण है: यह केवल प्रदर्शित करने (displaying) को नियंत्रित करता है, न कि उनके अस्तित्व को। प्रत्येक venue यह नियंत्रित करता है कि उसकी अपनी book क्या दिखाती है; consolidated record को विभिन्न venues से real time में feeds के माध्यम से बनाया जाता है। एक locked NBBO वहां दिखाई दे सकता है, भले ही किसी भी एकल प्रतिभागी ने नियम का उल्लंघन न किया हो।
Locked और crossed quotes अभी भी tape पर क्यों दिखते हैं
गति (Speed)। Exchanges माइक्रोसेकंड में quotes अपडेट करते हैं, और हर अपडेट पर consolidated feed को फिर से बनाया जाता है। दो सामान्य घटनाओं के कारण locked और crossed records इसमें आ जाते हैं:
- Races. एक exchange अपना bid $10.00 तक बढ़ा देता है, जबकि दूसरा अभी भी $10.00 का ask दिखा रहा होता है। जब इन्हें जोड़ा जाता है, तो धीमे side के अपडेट होने तक NBBO locked दिखता है; यदि race एक सेंट से अधिक हो जाती है, तो वह crossed दिखता है।
- Stale और one-sided records. कुछ records में केवल एक side होता है — बिना ask के bid, या इसके विपरीत। नीचे दिए गए census के अनुसार, thin names दिन का काफी समय इसी स्थिति में बिताते हैं।
इस पेज के गणना नियम: locked = bid और ask बराबर हैं, दोनों side positive हैं; crossed = bid, positive ask से अधिक है; one-sided = कोई भी side शून्य या गायब है। किसी भी डेटा को हटाया नहीं जाता है — one-sided records के लिए अलग कॉलम दिया गया है।
Locked और crossed markets कितनी बार होते हैं?
पूरी tape से शुरुआत करें: हर NBBO अपडेट के लिए, हर listed symbol के लिए, 2026-07-14 पर — जो हमारे census window का सबसे हालिया पूर्ण सत्र है।
हर आंकड़े के पीछे का पूरा 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 million quote updates थे: 9.7 million locked और 67 thousand crossed — कुल मिलाकर हर 10,000 अपडेट में 204.9, जिसमें locked की संख्या crossed से 145-to-one अधिक थी। जिन records में एक side गायब थी, वे प्रति 10,000 में 2.8 थे। 7 जुलाई market recap प्रत्येक spread के लिए समान संख्याएँ दर्शाता है।
Market-wide rate में हजारों अलग-अलग names शामिल हैं। नीचे दी गई तालिका हाल के पूर्ण सत्रों (extended hours सहित) में दस चुनिंदा stocks पर census को फिर से दर्शाती है। इसमें आठ household tickers और दो बहुत कम liquidity वाले small caps, Nathan's Famous (NATH) और Seneca Foods (SENEA) शामिल हैं। प्रत्येक name के साथ उसका typical quoted spread भी दिया गया है।
हर आंकड़े के पीछे का पूरा 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 tickerSpread column की तुलना rate से करें। Coca-Cola, जिसका typical quote 1¢ wide है, ने हर 10,000 अपडेट में 215.9 बार locked या crossed quote दिखाया; Nvidia (2¢) में यह दर प्रति 10,000 में 91 थी और SPY (2¢) में 52.2 थी। AMD, जिसका typical extended-day quote 44¢ wide था, प्रति 10,000 में केवल 5.9 रहा। Lock तब होता है जब दो venues एक ही पल में एक ही penny पर पहुँच जाते हैं — typical quote जितना wider होगा, उस स्थिति तक पहुँचने में उतना ही अधिक समय लगेगा।
Low liquidity वाले names में यह नगण्य है: Nathan's Famous ने 8.4 thousand अपडेट में 0 locked और 0 crossed records दिखाए, जबकि Seneca Foods ने 40.5 thousand अपडेट में 0 और 0 दिखाए। उनकी column दूसरी वाली है: Nathan's Famous में one-sided records प्रति 10,000 में 41.5 थे और Seneca Foods में 17, जबकि SPY में यह 0 थे। Locked और crossed records वहाँ होते हैं जहाँ quoting तेज़ और tight होती है; one-sided records वहाँ होते हैं जहाँ quoting कम होती है।
Locked और crossed quotes कब क्लस्टर होते हैं?
नामों की जनगणना बताती है कि कहाँ; घड़ी बताती है कि कब। यहाँ Eastern Time के 30-मिनट के अंतराल (4:00 a.m. से 8:00 p.m.) के अनुसार checked set की locked-or-crossed दर दी गई है, जिसमें प्रत्येक अंतराल का अपडेट ट्रैफिक भी शामिल है।
हर आंकड़े के पीछे का पूरा 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_timeपूरे सत्र के दौरान यह दर बढ़ती जाती है। 05:00 premarket अंतराल में 0.59 मिलियन अपडेट्स पर 3 प्रति 10,000 दर्ज किया गया; 09:30 अंतराल — जो opening auction से शुरू होने वाला नियमित ट्रेडिंग का पहला आधा घंटा है — 9.98 मिलियन अपडेट्स पर 24.9 प्रति 10,000 रहा। इसके बाद, यह दर क्लोजिंग तक बढ़ती है, जो 15:30 अंतराल में 109.9 प्रति 10,000 तक पहुँच जाती है, जो closing auction से ठीक पहले का समय है। एक डेटा पंक्ति इस पैटर्न को स्पष्ट करती है:
हर आंकड़े के पीछे का पूरा 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)
)पूरे समय अंतराल में, checked set ने 25.6 हजार crossed रिकॉर्ड के मुकाबले 257.2 हजार locked रिकॉर्ड दर्ज किए — यानी प्रत्येक crossed के लिए 10.1 locked। क्लोजिंग के आधे घंटे की दर, 109.9 प्रति 10,000, ओपनिंग के आधे घंटे की 24.9 दर से 4.4 गुना और दोपहर के घंटे की 48.5 दर से 2.3 गुना थी।
डिस्प्ले बैन 9:30 a.m. से पहले लागू नहीं होता है, फिर भी 4:00–9:30 का पूरा समय — premarket trading, जो नियमित घंटों के ट्रैफिक के एक छोटे हिस्से पर कोटिंग करता है — केवल 10.9 प्रति 10,000 दिखा गया, और क्लोजिंग के आधे घंटे में यह दर 10.1 गुना थी। ये रिकॉर्ड वहाँ जमा होते हैं जहाँ कोटिंग बहुत तेज़ और सटीक होती है, न कि वहाँ जहाँ नियम सबसे ढीले होते हैं।
डेटा नोट्स: विंडो और स्कोप
- पूरी-टेप जनगणना एक पूर्ण UTC कैलेंडर दिन को कवर करती है, जिसमें प्रत्येक सूचीबद्ध symbol शामिल है; checked-set पैनल हाल ही में समाप्त हुए सत्रों के रोलिंग विंडो को कवर करते हैं, जिसमें extended hours (4:00 a.m.–8:00 p.m. ET) शामिल हैं। प्रत्येक विंडो रिफ्रेश तिथि से तीन दिन पीछे समाप्त होती है — quote warehouse के अग्र भाग में एक-से-दो दिन का इनजेशन लैग होता है।
- दस-नाम वाली तालिका एक checked set है, न कि मार्केट-वाइड रैंकिंग; 4:00 p.m. के बाद के क्लॉक बकेट्स नियमित घंटों के ट्रैफिक के एक बहुत छोटे हिस्से पर चलते हैं (इसी कारण अपडेट-काउंट कॉलम चार्ट किया गया है)।
- ये रिकॉर्ड की संख्या है, अवधि नहीं। प्रति-अपडेट फोरेंसिक — जैसे नैनोसेकंड अंतराल, और एक ही सत्र के SPY टेप पर crossed और zero-bid प्राप्तियाँ — June 29 microstructure deep-dive में उपलब्ध हैं।
FAQ
स्टॉक्स में Locked Market क्या होता है?
Locked market एक ऐसा कोटेशन है जहाँ Best Bid और Best Ask बराबर होते हैं — यानी स्प्रेड शून्य होता है। यह तब होता है जब एक एक्सचेंज का Bid दूसरे एक्सचेंज के Ask से मेल खाता है। Regulation NMS के तहत, एक्सचेंजों को नियमित ट्रेडिंग घंटों के दौरान ऐसे कोटेशन दिखाने से रोका जाता है।
यदि Bid, Ask से अधिक हो तो इसका क्या अर्थ है?
यदि Bid, Ask से अधिक है, तो इसे Crossed Market कहा जाता है। एक ही एक्सचेंज की बुक में ऐसा नहीं हो सकता — ओवरलैपिंग ऑर्डर्स तुरंत निष्पादित (execute) हो जाते हैं। Crossed NBBO लगभग हमेशा दो अलग-अलग वेन्यू के कोटेशन होते हैं जो अपडेट होने के दौरान एक-दूसरे से टकराते हैं।
क्या Locked और Crossed Markets अवैध हैं?
एक सामान्य निवेशक के लिए नहीं। Regulation NMS का Rule 610(d) एक्सचेंजों को नियमित घंटों के दौरान अपने सदस्यों द्वारा locking या crossing कोटेशन display करने से रोकता है। कंसोलिडेटेड फीड में दिखने वाले ये क्षणिक रिकॉर्ड वेन्यू के अलग-अलग समय पर अपडेट होने के कारण होते हैं।
Locked और Crossed Markets कितनी बार होते हैं?
नियमित रूप से: केवल 2026-07-14 को ही कंसोलिडेटेड टेप पर 9.7 मिलियन locked और 67 हजार crossed रिकॉर्ड दर्ज किए गए — यानी हर 10,000 अपडेट में से 204.9। टाइट कोटेड स्टॉक्स में यह दर कम लिक्विडिटी वाले स्टॉक्स की तुलना में बहुत अधिक होती है, और मार्केट क्लोजिंग के समय यह ओपनिंग की तुलना में अधिक होती है।
इस पेज पर दिए गए सभी नंबर एक स्टोर किए गए क्वेरी से आते हैं — लॉक या क्रॉस की सटीक गणना देखने के लिए किसी भी पैनल के नीचे दिए गए SQL को विस्तार से देखें। यदि आप अपने ट्रेड किए जाने वाले स्टॉक्स पर यही गणना करना चाहते हैं, तो Strasmore terminal पर साधारण अंग्रेजी में पूछें।