मार्केट पोज़िशनिंग (OBI × CVD)
OBI × CVD क्वाड्रेंट कैसे प्राप्त, मापा और पढ़ा जाता है: डेप्थ से प्राप्त असंतुलन, टेकर-फ्लो CVD, रोलिंग P95 नॉर्मलाइज़ेशन, ज़ोन वर्गीकरण, HTF रेजीम, फ्रेशनेस नियम।
लाइव विजेट यहाँ देखें: /perpetuals/positioning.
डेटा स्रोत
दो Binance USDT-M फ्यूचर्स स्ट्रीम प्रति-एसेट एक माइक्रोस्ट्रक्चर डेमन को फ़ीड करते हैं। क्वाड्रेंट v1.0.0 में सिंगल-सोर्स है; क्रॉस-एक्सचेंज विस्तार (प्रति-एक्सचेंज OBI और CVD तथा एक डायवर्जेंस फ्लैग) अगले रिलीज़ के लिए नियोजित है।
- डेप्थ।
wss://fstream.binance.com/stream?streams=<symbol>@depth@100ms— REST-स्नैपशॉटेड बुक (1000 स्तर) पर लागू डिफ़ स्ट्रीम। बनाए रखा गया बुक OBI गणना और व्यापक डेप्थ सतहों दोनों का समर्थन करता है। - टेकर प्रिंट्स।
wss://fstream.binance.com/market/ws/<symbol>@aggTrade— हर एग्रीगेटेड टेकर प्रिंट, जिसमेंis_buyer_makerफ्लैग होता है जो फ्लो का साइन देता है।
डेमन scripts/microstructure_daemon.py हर 30 सेकंड में data/<asset>/microstructure_snapshot.json में हार्टबीट स्नैपशॉट लिखता है और data/<asset>/microstructure_bars.jsonl (ट्रेल हिस्ट्री सतह) में प्रति-मिनट एक बार लिखता है। बैकएंड का /ws/market WebSocket हर ~10 सेकंड में एक स्नैपशॉट और सब्सक्राइब करने पर तथा विंडो बदलने पर ट्रेल/नॉर्मलाइज़र फ्रेम पुश करता है।
ऑर्डर बुक असंतुलन (OBI)
OBI मिड के चारों ओर एक तंग बैंड में रेस्टिंग लिक्विडिटी स्क्यू मापता है। बैंड के बाहर के स्तर बाहर रखे जाते हैं क्योंकि वे स्प्रेड लेने वाले ट्रेड को प्रभावित नहीं करते।
mid = (best_bid + best_ask) / 2 band = [mid * 0.998, mid * 1.002] // ±0.2 % bid_qty = बैंड के अंदर बिड्स की qty का योग ask_qty = बैंड के अंदर आस्क्स की qty का योग OBI = (bid_qty - ask_qty) / (bid_qty + ask_qty) रेंज: [-1, +1] +1 → आस्क खाली, पूरा वज़न बिड्स पर -1 → बिड्स खाली, पूरा वज़न आस्क्स पर 0 → बैंड के अंदर संतुलित
बैंड के अंदर आने वाले प्रति-साइड शीर्ष 50 स्तरों पर गणना। क्वाड्रेंट के X-अक्ष के रूप में बिना स्मूथिंग के प्लॉट किया जाता है। विजेट OBI को तीन दशमलव वाले टैग के रूप में दिखाता है ताकि 0.01 की मूव दिखाई दे।
क्यूमुलेटिव वॉल्यूम डेल्टा (CVD)
CVD एक रोलिंग विंडो में साइन्ड टेकर नॉशनल का योग करता है। साइन कन्वेंशन इंडस्ट्री टेप-रीडिंग से मेल खाता है: टेकर खरीदारी ऊपर उठाती है, टेकर बिकवाली नीचे दबाती है।
हर aggTrade इवेंट के लिए: notional = qty * price // USD यदि is_buyer_maker == false: delta = +notional // टेकर ने खरीदा अन्यथा: delta = -notional // टेकर ने बेचा (ts, delta) को 2-घंटे के deque में जोड़ें cvd_30m_usd = Σ delta जहाँ ts ∈ [now - 30m, now] cvd_2h_usd = Σ delta जहाँ ts ∈ [now - 2h, now]
2 घंटे का deque सबसे लंबा होरिज़न है; 30 मिनट की विंडो हर लिखाई पर उसी बफ़र से काटी जाती है। बार फ़ाइल दोनों विंडोज़ के साथ प्रति मिनट एक पंक्ति बनाए रखती है ताकि रिस्टार्ट के बाद ट्रेल इतिहास रीप्ले कर सके। प्रति-इवेंट थ्रूपुट एक्सचेंज सक्रियता पर निर्भर करते हुए ~10–50 प्रिंट्स/सेकंड पर रहता है।
Y-अक्ष नॉर्मलाइज़र
कच्ची 30 मिनट CVD मात्राएँ BTC ($1 M-क्लास मूव्स), ETH, SOL और छोटे परप के बीच परिमाण के दो ऑर्डर में भिन्न होती हैं। कच्चा USD प्लॉट करना छोटे एसेट्स को एक सपाट लाइन में दबा देगा। इसलिए Y-अक्ष प्रति एसेट |cvd_30m_usd| के रोलिंग 7-दिन P95 से विभाजित करता है और परिणाम को [-1, +1] में सीमित करता है।
y_norm = clamp(cvd_30m_usd / p95_30m_usd, -1, +1)
p95_30m_usd: रोलिंग 7-दिन पर्सेंटाइल, स्नैपशॉट एंडपॉइंट पर रिफ़्रेश
fallback: 2_000_000 USD जब रोलिंग पर्सेंटाइल अभी उपलब्ध नहीं है
(कोल्ड स्टार्ट या पतला नमूना)एंडपॉइंट /api/market/cvd-normalizer?asset=… प्रति-एसेट P95 संख्या देता है, जिसे WebSocket पर normalizer फ्रेम के रूप में मिरर किया जाता है ताकि FE जब मान ट्रेल डेटा के बाद आए तो ट्रेल को संगत रूप से पुनः स्केल कर सके।
ज़ोन वर्गीकरण (v2)
कच्चा क्वाड्रेंट नियम (OBI का साइन, CVD का साइन) तीन-परत पाइपलाइन में लपेटा गया है ताकि निर्णय sub-bp शोर पर न डगमगाए। प्रत्येक परत क्रमिक रूप से सक्रिय होती है; केवल वही सिग्नल जो तीनों परतों को पार करते हैं, प्रदर्शित ज़ोन बनते हैं।
परत 1 — OBI पर EMA (CVD पहले से ही एक स्लाइडिंग-विंडो एग्रीगेट है)
obi_ema(t) = α · obi_raw(t) + (1 - α) · obi_ema(t-1)
α = 1 - exp(-dt / span_seconds)
span_seconds: 30m ट्रेल पर 30 s (डिफ़ॉल्ट; प्रति-एसेट ट्यून करने योग्य)
परत 2 — मैग्निट्यूड डेडबैंड (Schmitt-trigger निचली भुजा)
डेडबैंड में, उम्मीदवार ज़ोन = वर्तमान ज़ोन:
candidate_zone = current_zone यदि |obi_ema| < OBI_DB
या |cvd| < CVD_DB_PCT × p95_30m_usd
अन्यथा (obi_ema, cvd) का क्वाड्रेंट उम्मीदवार है।
OBI_DB प्रति एसेट: BTC/ETH 0.05, SOL 0.07, XRP 0.08, BNB 0.10, DOGE 0.12
CVD_DB_PCT एसेट के रोलिंग 7d p95 |cvd_30m| का 10 %
परत 3 — न्यूनतम टेन्योर (Schmitt-trigger ऊपरी भुजा)
एक नए उम्मीदवार को वर्तमान बनने से पहले ≥ MIN_TENURE_S तक टिकना चाहिए।
MIN_TENURE_S 30m ट्रेल पर 60 s; 4h पर 300 s; 24h पर 1800 s।क्वाड्रेंट नामकरण v1.0 से अपरिवर्तित है:
x >= 0 और y >= 0 → "खरीदार नियंत्रण में" x < 0 और y < 0 → "विक्रेता हावी" x < 0 और y >= 0 → "मांग अवशोषित कर रही" x >= 0 और y < 0 → "बुक सपोर्ट दे रही"
जब कोई उम्मीदवार अपना टेन्योर पूरा कर रहा होता है, FE निर्णय के नीचे एक स्पष्ट candidate_pendingसब-लाइन प्रस्तुत करता है (“विक्रेता · 4m 22s तक टिका · खरीदार 60s में से 18s पेंडिंग”)। क्लासिफ़ायर एक दृश्य स्टेट मशीन है, ब्लैक बॉक्स नहीं।
पैरामीटर 7-दिवसीय ग्रिड स्वीप (scripts/replay_classifier.py) से प्रति एसेट ट्यून किए जाते हैं; चयनित मान backend/classifier/config.py में रहते हैं और रीडिप्लॉय किए बिना हॉट-पैचिंग के लिए env-ओवरराइड (जैसे MICRO_DEADBAND_DOGE=0.20) किए जा सकते हैं। स्थिति (OBI EMA, उम्मीदवार टाइमर, entered-at) एग्रीगेटर चक्रों के बीच Redis में बनी रहती है ताकि डेमन रीस्टार्ट कोल्ड-स्टार्ट करने के बजाय उसी ज़ोन में फिर से शुरू हो।
ट्रेल इतिहास
ट्रेल पिछले N क्वाड्रेंट पोज़िशनों की उम्र के अनुसार फेड होने वाली पॉलीलाइन खींचता है। चयन योग्य विंडोज़ हैं 30m, 4h और 24h। प्रत्येक विंडो बार फ़ाइल से डाउनसैम्पल्ड शृंखला खींचती है ताकि 24h रीप्ले 1440 कच्चे मिनट स्ट्रीम न करे:
- 30 m. 1-मिनट बकेट्स।
- 4 h. 5-मिनट बकेट्स।
- 24 h. 30-मिनट बकेट्स।
FE रेंडर किए गए ट्रेल को 60 बिंदुओं पर सीमित करता है ताकि 24h विंडो ओवरप्लॉटिंग के बिना फिट हो सके। लाइव स्नैपशॉट उसी बफ़र में जुड़ते हैं, बकेट शृंखला के पीछे एक धारा छोड़ते हैं। एसेट बदलने पर लोकल बफ़र रीसेट हो जाता है ताकि नया क्वाड्रेंट पिछले एसेट के ट्रेल से दूषित न हो।
HTF रेजीम टैग
विजेट हेडर में Trend BULL/BEAR/NEUTRAL टैग की गणना scripts/btc_monitor.py में htf_regime() द्वारा स्नैपशॉट डेमन की 5 मिनट कैडेंस पर की जाती है:
300 1-मिनट कैंडल खींचता है (>= 289 वैध बार की आवश्यकता) pct_4h = (close - close_4h_ago) / close_4h_ago * 100 pct_24h = (close - close_24h_ago) / close_24h_ago * 100 BULL यदि pct_4h > +0.5 या pct_24h > +1.5 BEAR यदि pct_4h < -0.5 या pct_24h < -1.5 NEUTRAL अन्यथा (नमूना अपर्याप्त होने पर भी)
टैग केवल HTF संदर्भ है, फ्लो रीडिंग नहीं। यह इसलिए मौजूद है ताकि क्वाड्रेंट के छोटे-विंडो निर्णयों (30 m CVD) की मल्टी-घंटे दिशा के विरुद्ध सैनिटी-चेक की जा सके।
लॉन्ग/शॉर्ट अनुपात
L/S स्टैट Binance के globalLongShortAccountRatio को 15 m अवधि पर पढ़ता है, जिसे स्नैपशॉट डेमन हर ~5 m पर पोल करता है। 1.0 से ऊपर के मान का मतलब है रिटेल खाते नेट लॉन्ग; 1.0 से नीचे का मतलब है नेट शॉर्ट। यह खातों की पोज़िशनिंग है, फ्लो नहीं — यह क्वाड्रेंट प्लेन के बजाय OBI और CVD के साथ साइड पैनल में रहता है।
फ्रेशनेस
तीन स्वतंत्र सिग्नल विजेट को नॉट-लाइव के रूप में चिह्नित कर सकते हैं:
micro_book_state≠"ok"— WS पुनः कनेक्ट के बाद डेमन मिड-रीसिंक है; REST स्नैपशॉट के पुनः आने तक OBI बासी रहता है। स्टेटस पिलDaemon <state>में बदल जाती है।micro_stale— हार्टबीट अपनी विंडो से पुराना है। FE ट्रेल में नए बिंदु जोड़ना बंद कर देता है।- ट्रेल को
partial: trueचिह्नित — विंडो को समर्थन देने वाला jsonl अनुरोधित लुकबैक से छोटा है (डेमन रीस्टार्ट के तुरंत बाद सामान्य)। कैनवस पर एक एम्बर पिल दिखाई देती है।
सीमाएँ
- सिंगल-सोर्स। v1.0.0 केवल Binance पढ़ता है। इसलिए क्वाड्रेंट निर्णय Binance की माइक्रोस्ट्रक्चर को दर्शाता है, समग्र क्रॉस-एक्सचेंज दबाव को नहीं। क्रॉस-एक्सचेंज OBI और CVD के साथ डायवर्जेंस संकेतक अगले रिलीज़ के लिए नियोजित हैं।
- कठोर क्वाड्रेंट सीमाएँ। OBI पर शून्य के दोनों ओर 0.01 की पोज़िशन मौखिक निर्णय को पलट देती है। v1.0.0 में कोई डेड-बैंड और कोई लो-फ्लो गार्ड नहीं — मूल के निकट पोज़िशनों को अनिर्णीत के रूप में, सख्त ज़ोन रीड के रूप में नहीं, पढ़ें।
- ±0.2 % बैंड एक तय नॉब है। OBI बैंड सभी एसेट्स में समान चौड़ाई का है। टाइट-स्प्रेड मेजर (BTC, ETH) बैंड के अंदर पतली-बुक ऑल्ट्स की तुलना में गहरी बुक देखते हैं, यही एक कारण है कि CVD प्राथमिक निर्णय है और OBI सहायक अक्ष।
- टेकर-साइड साइन कन्वेंशन एक्सचेंज-निर्भर है। Binance aggTrade पर
is_buyer_makerफ्लैग यहाँ आधिकारिक सिग्नल है। क्रॉस-एक्सचेंज विस्तारों को पहले साइड सिमेंटिक्स को सामान्य करना होगा (Bybit और OKX साइड को अलग तरह से एनकोड करते हैं)। - L/S Binance की रिटेल पोज़िशनिंग है। अनुपात Binance पर खाते गिनता है, क्रॉस-एक्सचेंज एकत्रित नहीं, और आकार की परवाह किए बिना सभी खातों को समान भार देता है। इसे फ्लो इनपुट नहीं, बल्कि नरम संदर्भ के रूप में उपयोग करें।
- HTF रेजीम हर एसेट के लिए BTC-शैली थ्रेशोल्ड हैं। 4 h ±0.5 % / 24 h ±1.5 % थ्रेशोल्ड BTC के विरुद्ध ट्यून किए गए थे। उच्च-वोल एसेट्स (DOGE, SOL) के लिए BULL/BEAR स्वाभाविक से जल्दी सक्रिय होता है — टैग को कैलिब्रेटेड ट्रेंड फ़िल्टर के बजाय एक मोटे संदर्भ के रूप में मानें।
संस्करण
मेथडोलॉजी संस्करण v2.0.0 · अपडेट 2026-05-12। महत्वपूर्ण परिवर्तन (नए एक्सचेंज, सूत्र समायोजन, थ्रेशोल्ड परिवर्तन) संस्करण को बढ़ाते हैं और ऊपर के स्ट्रक्चर्ड डेटा में dateModified को अपडेट करते हैं।