"फ्यूचर्स और स्पॉट के बीच जटिल आर्बिट्रेज चेन्स" सीरीज़ का भाग 3
इस सीरीज़ के पहले दो भागों में, हमने ग्राफ़ और फ्यूचर्स-स्पॉट जोड़ों को देखा। लेकिन जब हम एक साथ दर्जनों एसेट्स के बीच संबंध मॉडल करना चाहते हैं तो क्या होता है? साधारण सहसंबंध (correlation) अब पर्याप्त नहीं रहते। क्रिप्टोकरेंसी बाजार जटिल है, और इसकी निर्भरताएं गैर-रैखिक (non-linear) होती हैं, विशेष रूप से उच्च अस्थिरता (volatility) की अवधि में।
यहीं पर Vine Copulas काम आते हैं।
Vine Copulas का एक जटिल गणितीय दृश्यांकन: आपस में जुड़े गोले जो मल्टी-एसेट निर्भरताओं और प्रोबेबिलिटी डेंसिटी क्लाउड्स को दर्शाते हैं।

1. सहसंबंध से आगे
पियरसन सहसंबंध गुणांक (Pearson correlation coefficient) केवल रैखिक संबंधों को मापता है। क्रिप्टो में, जब बिटकॉइन 5% गिरता है, तो Altcoins 10% तक गिर सकते हैं (टेल डिपेंडेंसी), लेकिन जब बिटकॉइन स्थिर होता है, तो Altcoins स्वतंत्र रूप से चलते हैं। मानक मॉडल इस "असममिति" (asymmetry) को पकड़ पाने में विफल रहते हैं।
1.1 Copula क्या है?
एक Copula एक गणितीय फ़ंक्शन है जो सीमांत वितरणों (marginal distributions) को एक बहुचर संयुक्त वितरण (multivariate joint distribution) में "जोड़ता" है। यह हमें व्यक्तिगत एसेट्स के व्यवहार को उनकी निर्भरता संरचना से अलग करने में सक्षम बनाता है।
1.2 युग्मित (Pairwise) से Vine तक
तीन या अधिक चरों के बीच निर्भरताओं का मॉडलिंग करना अत्यंत कठिन है। Vine Copulas एक उच्च-आयामी वितरण को द्विचर (bivariate) यानी युग्मित copulas की एक श्रृंखला में विघटित करके इसे हल करते हैं।

2. Vine की संरचना
वित्त में उपयोग की जाने वाली दो मुख्य प्रकार की vines हैं:
- C-Vines (Canonical): एक केंद्रीय एसेट (जैसे BTC) बाकी सभी को प्रभावित करता है।
- D-Vines (Drawable): एसेट्स एक विशिष्ट क्रम में जुड़े होते हैं (A-B, B-C, C-D)।
क्रिप्टो आर्बिट्रेज के लिए, हम अक्सर R-Vines (Regular) का उपयोग करते हैं, जो एक लचीली संरचना की अनुमति देते हैं जो वर्तमान बाजार स्थिति के अनुसार अनुकूलित होती है।
2.1 Rust में द्विचर Copulas को लागू करना
हालांकि अधिकांश शोध R या Python में किया जाता है, हमें गति चाहिए। हम मूल गणित को Rust में लागू कर सकते हैं:
fn clayton_copula(u: f64, v: f64, theta: f64) -> f64 {
(u.powf(-theta) + v.powf(-theta) - 1.0).powf(-1.0 / theta)
}
fn frank_copula(u: f64, v: f64, theta: f64) -> f64 {
-(1.0 / theta) * (1.0 + ( ((-theta * u).exp() - 1.0) * ((-theta * v).exp() - 1.0) ) / ((-theta).exp() - 1.0)).ln()
}
3. आर्बिट्रेज सिग्नल जनरेशन
यह आर्बिट्रेज खोजने में कैसे मदद करता है?
- बाजार को मॉडल करें: 50 एसेट्स पर Vine Copula मॉडल फिट करने के लिए ऐतिहासिक डेटा का उपयोग करें।
- असामान्यताओं का पता लगाएं: एसेट्स B, C, D... की कीमतों को देखते हुए एसेट A की वर्तमान कीमत की सशर्त प्रायिकता (conditional probability) की गणना करें।
- सिग्नल: यदि देखी गई कीमत अत्यधिक असंभावित है (उदाहरण के लिए, ), तो इसका मतलब है कि एसेट अपनी मौलिक निर्भरताओं से डिस्कनेक्ट हो गया है। यह एक मजबूत सांख्यिकीय आर्बिट्रेज (Statistical Arbitrage) सिग्नल है।

4. कम्प्यूटेशनल चुनौती
50 चरों पर R-Vine फिट करने के लिए सैकड़ों पैरामीटर का अनुमान लगाने और जटिल संख्यात्मक समाकलन (numerical integrations) करने की आवश्यकता होती है।
- Rust की भूमिका: हम विभिन्न vine संरचनाओं का एक साथ मूल्यांकन करने के लिए समानांतर प्रोसेसिंग (
rayonक्रेट के साथ) का उपयोग करते हैं। - अनुकूलन: हम copula पैरामीटर्स के मैक्सिमम लाइकलीहुड एस्टिमेशन (MLE) के लिए
argminक्रेट का उपयोग करते हैं।
use rayon::prelude::*;
fn estimate_vine_structure(data: &Matrix) -> VineStructure {
// Parallely evaluate all possible root nodes for a C-Vine
(0..data.cols).into_par_iter().map(|i| {
fit_root_node(data, i)
}).max_by(|a, b| a.likelihood.total_cmp(&b.likelihood)).unwrap()
}
5. निष्कर्ष
Vine Copulas क्रिप्टो बाजार में मात्रात्मक वित्त (quantitative finance) के अत्याधुनिक स्तर का प्रतिनिधित्व करते हैं। वे हमें साधारण "पेयर्स ट्रेडिंग" से "मल्टी-एसेट सांख्यिकीय आर्बिट्रेज" की ओर बढ़ने में सक्षम बनाते हैं, जो बाजार निर्भरताओं का एक कहीं अधिक मजबूत दृष्टिकोण प्रदान करता है।
अगले भाग में, हम मैट्रिक्स और टेंसर विधियों की खोज करेंगे, यह देखते हुए कि उष्णकटिबंधीय बीजगणित (tropical algebra) सबसे लाभदायक आर्बिट्रेज चक्रों की हमारी खोज को और कैसे परिष्कृत कर सकता है।
जटिल टेल्स को मॉडल कर रहे हैं? GitHub पर हमारा Vine Copula Modeling Kit देखें।
