MarketTrace
M1पोज़िशनिंगM2ऑर्डर बुकM3लिक्विडेशनM4फंडिंग
मेथडोलॉजी · v2.0.0 · अपडेट 2026-05-12

मार्केट पोज़िशनिंग (OBI × CVD)

OBI × CVD क्वाड्रेंट कैसे प्राप्त, मापा और पढ़ा जाता है: डेप्थ से प्राप्त असंतुलन, टेकर-फ्लो CVD, रोलिंग P95 नॉर्मलाइज़ेशन, ज़ोन वर्गीकरण, HTF रेजीम, फ्रेशनेस नियम।

लाइव विजेट यहाँ देखें: /perpetuals/positioning.

डेटा स्रोत

दो Binance USDT-M फ्यूचर्स स्ट्रीम प्रति-एसेट एक माइक्रोस्ट्रक्चर डेमन को फ़ीड करते हैं। क्वाड्रेंट v1.0.0 में सिंगल-सोर्स है; क्रॉस-एक्सचेंज विस्तार (प्रति-एक्सचेंज OBI और CVD तथा एक डायवर्जेंस फ्लैग) अगले रिलीज़ के लिए नियोजित है।

डेमन 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 कच्चे मिनट स्ट्रीम न करे:

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 के साथ साइड पैनल में रहता है।

फ्रेशनेस

तीन स्वतंत्र सिग्नल विजेट को नॉट-लाइव के रूप में चिह्नित कर सकते हैं:

सीमाएँ

संस्करण

मेथडोलॉजी संस्करण v2.0.0 · अपडेट 2026-05-12। महत्वपूर्ण परिवर्तन (नए एक्सचेंज, सूत्र समायोजन, थ्रेशोल्ड परिवर्तन) संस्करण को बढ़ाते हैं और ऊपर के स्ट्रक्चर्ड डेटा में dateModified को अपडेट करते हैं।