Arbitraj uchun Vine Copulas: yuqori o'lchamli bog'liqliklarni modellashtirish
"Fyucherslar va spot o'rtasidagi murakkab arbitraj zanjirlari" turkumining 3-qismi
Ushbu turkumning birinchi ikki qismida biz graflar va fyuchers-spot juftliklarini ko'rib chiqdik. Ammo bir vaqtning o'zida o'nlab aktivlar o'rtasidagi munosabatni modellashtirmoqchi bo'lsak nima bo'ladi? Oddiy korrelyatsiyalar endi yetarli emas. Kriptovalyuta bozori murakkab, va uning bog'liqliklari chiziqli emas, ayniqsa yuqori beqarorlik (volatillik) davrlarida.
Mana shu yerda Vine Copulas yordamga keladi.
Vine Copulas'ning murakkab matematik vizualizatsiyasi: ko'p aktivli bog'liqliklar va ehtimollik zichligi bulutlarini ifodalovchi o'zaro bog'langan sferalar.

1. Korrelyatsiyadan tashqarida
Pirson korrelyatsiya koeffitsiyenti faqat chiziqli munosabatlarni o'lchaydi. Kripto dunyosida Bitcoin 5%ga tushganda, Altcoin'lar 10%gacha tushishi mumkin (tail dependency), ammo Bitcoin barqaror bo'lganda, Altcoin'lar mustaqil harakatlanadi. Standart modellar bu "assimetriyani" qamrab ololmaydi.
1.1 Copula nima?
Copula — chekka taqsimotlarni (marginal distributions) ko'p o'zgaruvchili qo'shma taqsimotga (multivariate joint distribution) "bog'laydigan" matematik funksiya. U bizga alohida aktivlarning xatti-harakatini ularning bog'liqlik tuzilishidan ajratib olish imkonini beradi.
1.2 Juftlikdan Vine'gacha
Uch yoki undan ko'p o'zgaruvchi o'rtasidagi bog'liqliklarni modellashtirish juda qiyin. Vine Copulas yuqori o'lchamli taqsimotni ikki o'zgaruvchili (juftlik) copula'lar ketma-ketligiga ajratish orqali buni hal qiladi.

2. Vine tuzilishi
Moliyada ishlatiladigan vine'ning ikkita asosiy turi bor:
- C-Vines (Canonical): Bitta markaziy aktiv (masalan, BTC) qolganlarning barchasiga ta'sir qiladi.
- D-Vines (Drawable): Aktivlar ma'lum bir ketma-ketlikda bog'langan (A-B, B-C, C-D).
Kripto arbitraj uchun biz ko'pincha joriy bozor holatiga moslashadigan moslashuvchan tuzilishga imkon beruvchi R-Vines (Regular) dan foydalanamiz.
2.1 Rust'da ikki o'zgaruvchili Copula'larni amalga oshirish
Tadqiqotlarning aksariyati R yoki Python'da amalga oshirilsa-da, bizga tezlik kerak. Asosiy matematikani Rust'da amalga oshirishimiz mumkin:
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. Arbitraj signalini yaratish
Bu arbitrajni topishga qanday yordam beradi?
- Bozorni modellashtirish: 50 ta aktivga Vine Copula modelini moslashtirish uchun tarixiy ma'lumotlardan foydalanish.
- Anomaliyalarni aniqlash: B, C, D... aktivlarining narxlarini hisobga olgan holda A aktivining joriy narxining shartli ehtimolini hisoblash.
- Signal: Agar kuzatilgan narx juda ehtimoldan yiroq bo'lsa (masalan, ), bu aktiv o'zining asosiy bog'liqliklaridan uzilib qolganini bildiradi. Bu — kuchli Statistik Arbitraj (Statistical Arbitrage) signali.

4. Hisoblash muammosi
R-Vine'ni 50 ta o'zgaruvchiga moslashtirish yuzlab parametrlarni baholashni va murakkab sonli integratsiyalarni bajarishni talab qiladi.
- Rust'ning roli: Biz turli vine tuzilmalarini bir vaqtning o'zida baholash uchun parallel qayta ishlashdan (
rayoncrate'i bilan) foydalanamiz. - Optimallashtirish: Copula parametrlarining maksimal ehtimollik bahosi (MLE) uchun
argmincrate'idan foydalanamiz.
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_key(|res| res.likelihood).unwrap()
}
5. Xulosa
Vine Copulas kripto bozoridagi miqdoriy moliyaning (quantitative finance) ilg'or chizig'ini ifodalaydi. Ular bizga oddiy "pairs trading"'dan "ko'p aktivli statistik arbitrajga" o'tish imkonini berib, bozor bog'liqliklarining ancha barqaror ko'rinishini taqdim etadi.
Keyingi qismda biz matritsa va tenzor usullarini o'rganamiz, tropik algebra eng foydali arbitraj sikllarini izlashimizni yanada qanday takomillashtirishi mumkinligini ko'ramiz.
Murakkab "tail"larni modellashtiryapsizmi? GitHub'dagi Vine Copula Modeling Kit'ga qarang.
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.