जब EXMON सपोर्ट टीम के बंदे यूजर्स का फीडबैक भेजते हैं, तो अक्सर एक ही कहानी देखने को मिलती है: लोग इस बात पर हैरान होते हैं कि उनके स्पॉट या P2P ऑर्डर्स उस तरह काम क्यों नहीं कर रहे हैं जैसा TradingView के पैटर्न्स में दिख रहा था। बेसिक ट्रेडिंग के लिए प्राइस चार्ट्स ठीक हैं, लेकिन यह तो बस आइसबर्ग का ऊपरी हिस्सा है। असली मोटा पैसा (स्मार्ट मनी) अपनी छाप कहीं और ही छोड़ता है — स्मार्ट कॉन्ट्रैक्ट्स, लिक्विडिटी पूल्स और डेरिवेटिव पूल्स में।
यह समझने के लिए कि लिक्विडिटी असल में कहां मूव कर रही है, आपको अलग-अलग जगहों से डेटा के टुकड़े जोड़ने पड़ते हैं। आमतौर पर इसके लिए पांच प्लेटफॉर्म्स का एक स्टैंडर्ड सेट हमेशा खुला रहता है, जिनमें से हर एक में अपनी खुद की छिपी हुई प्रॉब्लम्स और बग्स की भरमार है।
Dune Analytics
कस्टम टास्क के लिए Dune का कोई तोड़ नहीं है, लेकिन इस टूल के अपने नखरे हैं। सीधे शब्दों में कहें तो, यह कच्चे (raw) ऑन-चेन डेटा के एक बड़े डेटाबेस का सिर्फ एक SQL इंटरफ़ेस है। अगर आपको Uniswap v3 पूल्स में आने वाले नेट कैपिटल फ्लो को निकालना है या किसी बड़े मिंट के बाद इनसाइडर्स के वॉलेट का रियल बैलेंस चेक करना है — तो यही एकमात्र रास्ता है।
हालांकि, अगर आपको PostgreSQL का सिंटैक्स नहीं आता, तो वहां आपका पत्ता साफ है। वैसे तो आप कम्युनिटी के बने-बनाए डैशबोर्ड्स यूज कर सकते हैं, लेकिन इसमें एक बड़ा ट्रैप है। कुछ महीने पहले, हम Layer 2 नेटवर्क्स के वॉल्यूम पर एक पॉपुलर डैशबोर्ड देख रहे थे, जो डेटा को लगभग दोगुना बढ़ा-चढ़ाकर दिखा रहा था। बाद में पता चला कि क्रिएटर ने inner join गलत लगा दिया था, जिससे कॉन्ट्रैक्ट के बार-बार कॉल होने पर ट्रांजैक्शन्स डुप्लिकेट हो रहे थे। इसलिए दूसरों के डैशबोर्ड्स पर आंख मूंदकर भरोसा करना एक खराब आइडिया है, क्वेरी कोड को खुद मैन्युअली री-चेक करना ही पड़ता है।
Token Terminal
अगर आप Web3 प्रोजेक्ट्स को एक ट्रेडिशनल बिजनेस की तरह देखना चाहते हैं, तो आमतौर पर Token Terminal चेक किया जाता है। यह प्लेटफॉर्म फाइनेंशियल मैट्रिक्स को सामने लाता है: जैसे P/E ratio, रेवेन्यू और प्रोटोकॉल्स का नेट प्रॉफिट।
कभी-कभी इन टेबल्स को देखना पूरी तरह से आंखें खोल देता है। कोई प्रोजेक्ट मार्केट कैप के मामले में टॉप-30 में हो सकता है, लेकिन जब आप फीस वाला टैब खोलते हैं, तो वहां असली कमाई के नाम पर बस चिल्लर दिखती है। पूरी ग्रोथ सिर्फ इस बात पर टिकी थी कि टीम अंधाधुंध अपने नेटिव टोकन्स प्रिंट कर रही थी और उन्हें स्टेकिंग रिवॉर्ड्स के रूप में बांट रही थी। जैसे ही यह एमिशन कम होता है, पूरी इकोनॉमी ताश के पत्तों की तरह ढह जाती है। हां, मीमकॉइन्स या बिना किसी बिजनेस मॉडल वाले नए टोकन्स के एनालिसिस के लिए यह सर्विस पूरी तरह बेकार है, क्योंकि वहां कैलकुलेशन के लिए कोई डेटा ही नहीं होता।
Glassnode के मैक्रो इंडिकेटर्स पर कुछ बातें
बिटकॉइन के लॉन्ग-टर्म साइकिल्स का एनालिसिस करते समय कई एनालिस्ट्स Glassnode को देखते हैं। NUPL (नेट अनरियलाइज्ड प्रॉफिट/लॉस) या एक्सचेंजों के वॉलेट में कॉइन्स का बैलेंस जैसे मैट्रिक्स मार्केट का ओवरऑल सेंटीमेंट काफी अच्छे से दिखाते हैं - कि मार्केट में पैनिक बढ़ रहा है या फिर हर कोई एक्सट्रीम ग्रीड (लालच) में बैठा है।
लेकिन इन्हें रेडी-मेड ट्रेडिंग सिग्नल्स मान लेना बहुत बड़ी गलती होगी। Glassnode के इंडिकेटर्स काफी स्लो चलते हैं। ऑन-चेन मैट्रिक्स के हिसाब से मार्केट बुरी तरह ओवरहीटेड हो सकता है, लेकिन प्राइस सिर्फ शॉर्ट स्क्वीज और लिक्विडेशन के दम पर दो हफ्ते और ऊपर भाग सकता है। इसके अलावा, इनका सब्सक्रिप्शन प्लान काफी महंगा है: T3-लेवल के मैट्रिक्स के लिए हर महीने सैकड़ों डॉलर चुकाना सिर्फ इंस्टीट्यूशनल प्लेयर्स के लिए ही समझदारी है।
DefiLlama
DeFi सेक्टर का सबसे बड़ा एग्रीगेटर। यह प्लेटफॉर्म इसलिए पसंद किया जाता है क्योंकि यह TVL (Total Value Locked) के आंकड़ों में से कैपिटल की डबल-काउंटिंग को साफ करने की कोशिश करता है, जो तब होती है जब एक ही कोलैटरल को कई लीवरेज्ड लेंडिंग प्रोटोकॉल्स के जरिए बार-बार री-इन्वेस्ट किया जाता है।
लेकिन गड़बड़ी यहां भी हो जाती है। बड़े नेटवर्क अपडेट्स के बाद, कुछ लिक्विडिटी पूल्स का ब्रेकडाउन डेटा आने में कुछ घंटे या कभी-कभी दिन भर की देरी हो सकती है। एक बार ऐसा हुआ था जब एक प्रोटोकॉल ने अपने स्मार्ट कॉन्ट्रैक्ट का लॉजिक अपडेट किया, और DefiLlama ने दो दिनों तक उस पूल का TVL जीरो दिखाया, जबकि वहां धड़ल्ले से ट्रेडिंग चल रही थी। फिर भी, RWA (Real World Assets) या लिक्विड स्टेकिंग जैसे सेक्टर्स को कवर करने के मामले में फिलहाल इनका कोई दूसरा ऑप्शन नहीं है।
Coinglass
फ्यूचर्स मार्केट पर नजर रखने के लिए एक खास रिसोर्स। लोग यहां ओपन इंटरेस्ट (Open Interest), फंडिंग रेट्स और लिक्विडेशन हीटमैप्स देखने आते हैं।
प्रैक्टिकल एक्सपीरियंस से कहें तो: कभी-कभी हीटमैप पर स्टॉप-ऑर्डर्स का बड़ा क्लस्टर वाकई में प्राइस के लिए एक मैग्नेट की तरह काम करता है। इसका मतलब यह नहीं है कि मार्केट 100% वहां जाएगा ही, लेकिन ये लिक्विडिटी ज़ोन्स हमेशा उन बड़े प्लेयर्स का ध्यान खींचते हैं जो अपनी बड़ी पोजीशंस को क्लोज करने के लिए लिक्विडिटी ढूंढ रहे होते हैं। हालांकि, Coinglass के हिस्टोरिकल डेटा पर आंख बंद करके भरोसा नहीं किया जा सकता — अगर एक्सचेंज डेटा भेजने में देरी करते हैं, तो ये पुराने पीरियड्स के लिक्विडेशन चार्ट्स को बाद में बदल (री-पेंट) देते हैं।
मैट्रिक्स की क्विक चीट-शीट
कंफ्यूजन से बचने के लिए कि कहां क्या खोजना है, अपने बेसिक टास्क के हिसाब से नेविगेट करना आसान है:
- Dune: बड़े प्लेयर्स (व्हेल्स) के मूवमेंट को ट्रैक करना, स्मार्ट कॉन्ट्रैक्ट टोकन डिस्ट्रीब्यूशन चेक करना;
- Token Terminal: रियल रेवेन्यू का ऑडिट, मार्केट कैप और जनरेटेड फीस का रेशियो देखना;
- Glassnode: BTC/ETH के ग्लोबल कैपिटुलेशन और ओवरहीटेड ज़ोन्स का अंदाजा लगाना;
- DefiLlama: TVL मॉनिटर करना, स्टेबलकॉइन्स के मिंट वॉल्यूम को ट्रैक करना;
- Coinglass: फंडिंग रेट का एनालिसिस, फ्यूचर्स में संभावित स्क्वीज ज़ोन्स की तलाश।
API के जरिए विसंगतियों (Anomalies) को ऑटोमेट करना
दिन भर वेबसाइट्स पर बैठे रहने का कोई फायदा नहीं है। इससे बेहतर है कि एक सिंपल स्क्रिप्ट बना ली जाए जो Coinglass के डेरिवेटिव मैट्रिक्स को पार्स करे और जब मार्केट में तगड़ा एक्शन शुरू हो, तो ओपन इंटरेस्ट (OI) में होने वाले एब्नार्मल चेंजेस को तुरंत फ्लैग कर दे।
import logging
import os
from typing import Any, Dict, List, Optional
import requests
# प्रोडक्शन के लिए लॉगिंग कॉन्फ़िगरेशन
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s"
)
logger = logging.getLogger("CoinglassAnalyzer")
# बिजनेस लॉजिक के लिए थ्रेसहोल्ड वैल्यूज (इन्हें कॉन्फिग फाइल में रखना बेहतर है)
OI_CHANGE_THRESHOLD_PCT = 12.0
LIQUIDATION_THRESHOLD_USD = 40_000_000.0
class CoinglassClient:
"""Coinglass v2 API के साथ काम करने और बेसिक मार्केट एनालिसिस के लिए क्लाइंट।"""
BASE_URL = "https://open-api.coinglass.com/public/v2"
def __init__(self, api_key: Optional[str] = None):
# पास की गई की (Key) को प्राथमिकता दें, नहीं तो एनवायरनमेंट से लें
self.api_key = api_key or os.getenv("COINGLASS_API_KEY")
if not self.api_key:
raise ValueError("Coinglass API की नहीं मिली। इसे कंस्ट्रक्टर में पास करें या COINGLASS_API_KEY एनवायरनमेंट वेरिएबल सेट करें")
self.session = requests.Session()
self.session.headers.update({
"accept": "application/json",
"coinglassSecret": self.api_key
})
def fetch_liquidation_data(self, symbol: str) -> Optional[List[Dict[str, Any]]]:
"""
किसी खास सिंबल के लिए लिक्विडेशन डेटा लाता है।
लिक्विडेशन के लिए v2 एंडपॉइंट आमतौर पर एक्सचेंजों की लिस्ट या एक एग्रीगेटेड एरे लौटाता है।
"""
url = f"{self.BASE_URL}/derivatives/orderbook_liquidation"
params = {"symbol": symbol.upper()}
try:
response = self.session.get(url, params=params, timeout=10)
response.raise_for_status()
payload = response.json()
# Coinglass API के कस्टम सक्सेस फ्लैग की जांच
if str(payload.get("code")) != "0" and not payload.get("success"):
logger.error(f"API ने {symbol} के लिए एरर रिटर्न किया: {payload.get('msg', 'Unknown error')}")
return None
# v2 में डेटा आमतौर पर 'data' कुंजी में होता है, जो लिस्ट या डिक्शनरी हो सकती है
return payload.get("data")
except requests.RequestException as e:
logger.error(f"{symbol} का डेटा रिक्वेस्ट करते समय नेटवर्क एरर: {e}")
return None
def analyze_market(self, symbol: str) -> Optional[Dict[str, Any]]:
"""प्राप्त लिक्विडेशन और OI के आधार पर मार्केट डेटा का एनालिसिस करता है।"""
raw_data = self.fetch_liquidation_data(symbol)
if not raw_data:
return None
# Coinglass API एक्सचेंजों के हिसाब से ऑब्जेक्ट्स की लिस्ट लौटा सकता है।
# प्रोडक्शन-ग्रेड कोड को सिंगल ऑब्जेक्ट और एरे दोनों के साथ काम करना आना चाहिए।
main_data = raw_data[0] if isinstance(raw_data, list) and raw_data else raw_data
if not isinstance(main_data, dict):
logger.error(f"{symbol} के लिए API से इनवैलिड डेटा फॉर्मेट मिला")
return None
try:
# टाइप कास्टिंग के साथ सेफ एक्सट्रैक्शन
oi = float(main_data.get("openInterest") or 0)
oi_change = float(main_data.get("openInterestChgVolPercentage") or 0)
liq = float(main_data.get("totalLiquidationVolume") or 0)
except (ValueError, TypeError) as e:
logger.error(f"{symbol} के लिए न्यूमेरिक वैल्यूज पार्स करने में एरर: {e}")
return None
alerts = []
if abs(oi_change) >= OI_CHANGE_THRESHOLD_PCT:
alerts.append(f"Signifcant OI Shift: {oi_change:.2f}%")
if liq >= LIQUIDATION_THRESHOLD_USD:
alerts.append(f"High Liquidation Volume: ${liq:,.0f}")
# प्रोसेस का इंफो लॉग
logger.info(
f"{symbol.upper()} | OI: ${oi:,.0f} | Δ OI: {oi_change:.2f}% | "
f"24h Liq: ${liq:,.0f} | Alerts Triggered: {len(alerts)}"
)
# अगर ट्रिगर्स एक्टिव होते हैं तो वार्निंग आउटपुट करें
for alert in alerts:
logger.warning(f"ALERT [{symbol.upper()}]: {alert}")
return {
"symbol": symbol.upper(),
"open_interest": oi,
"oi_change_pct": oi_change,
"liquidations_24h": liq,
"alerts": alerts
}
if __name__ == "__main__":
# स्क्रिप्ट को लाइव इनिशियलाइज और रन करने का उदाहरण
# टेस्ट करने के लिए अपनी की (Key) सीधे यहां डालें या टर्मिनल में एक्सपोर्ट करें: export COINGLASS_API_KEY="your_key"
try:
analyzer = CoinglassClient()
analysis_result = analyzer.analyze_market("BTC")
if analysis_result:
print("\n--- एनालिसिस के परिणाम ---")
print(analysis_result)
except ValueError as err:
logger.critical(err)और जाहिर है, इनमें से कोई भी टूल अकेले आपको कोई रेडी-मेड ट्रेडिंग एडवांटेज नहीं देता और न ही 100% प्रॉफिट की गारंटी देता है। लेकिन एक साथ मिलकर, ये मार्केट में चल रही हलचल के पीछे के लॉजिक को बेहतर ढंग से समझने और सब्जेक्टिव उम्मीदों के बजाय असली पैसे के मूवमेंट पर भरोसा करके डिसीजन लेने में मदद करते हैं।