Matritsalar, tenzorlar va tropik algebra: arbitrajni aniqlash uchun chiziqli algebra
"Fyucherslar va spot o'rtasidagi murakkab arbitraj zanjirlari" turkumining 4-qismi
Yuzlab treyderlar bir vaqtning o'zida valyuta almashtirayotgan katta zalni tasavvur qiling. Har birining o'z kursi, komissiyasi va o'ziga xos xususiyatlari bor. Siz markazda daftar bilan turib, foyda keltiruvchi almashuv marshrutini qidiryapsiz: dollardan yevroga, yevrodan yenaga, yenadan yana dollarga—va boshlagandan ko'proq bilan chiqish. Adashib qolish oson. Ammo barcha kurslarni jadvalga—matritsaga—yozsangiz, tartibsizlik birdaniga tuzilishga ega bo'ladi. Ushbu matritsaning xos qiymatlari arbitraj bor-yo'qligini aytadi. Tropik algebra optimal marshrutni topadi. Tenzor dekompozitsiyalari esa oddiy ko'z bilan ko'rinmaydigan naqshlarni ochib beradi.
Ushbu maqolada biz oddiy almashuv kursi jadvalidan murakkab ko'p o'lchovli tahlil usullariga qadar yo'l bosib o'tamiz—va har bir qadam Rust tilidagi amalga oshirish bilan tasdiqlanadi.
Kriptovalyutalar o'rtasidagi almashuv kursi matritsasining vizualizatsiyasi: graf qirralari savdo juftliklarini bildiradi, ta'kidlangan sikl esa aniqlangan arbitraj imkoniyatini ko'rsatadi.

1. Almashuv kursi matritsasi: asos
1.1 Tartibsizlikdan jadvalgacha
Bizda n ta aktiv bor deylik: BTC, ETH, USDT, SOL va boshqalar. Har bir juftlikni ma'lum bir kursda almashtirish mumkin. Almashuv kursi matritsasi R — bu n × n jadval bo'lib, unda R[i][j] elementi i aktivining bir birligi uchun j aktivining necha birligini olishimizni ko'rsatadi.
To'g'ri shakllangan matritsaning xususiyatlari:
- Diagonal:
R[i][i] = 1—aktivni o'ziga almashtirish hech narsani o'zgartirmaydi. - Musbatlik: barcha juftliklar uchun
R[i][j] > 0. - O'zaro mutanosiblik (reciprocity) (ideal bozorda):
R[i][j] * R[j][i] = 1.
Rustda buni nalgebra yordamida ifodalashimiz mumkin:
use nalgebra::DMatrix;
/// Builds an exchange rate matrix from a set of trading pairs
fn build_exchange_rate_matrix(
assets: &[&str],
rates: &[((usize, usize), f64)],
) -> DMatrix<f64> {
let n = assets.len();
let mut matrix = DMatrix::from_element(n, n, 0.0);
// Diagonal: exchange for self = 1
for i in 0..n {
matrix[(i, i)] = 1.0;
}
// Fill known rates
for &((i, j), rate) in rates {
matrix[(i, j)] = rate;
// Reciprocal rate (if there is no direct one)
if matrix[(j, i)] == 0.0 {
matrix[(j, i)] = 1.0 / rate;
}
}
matrix
}
1.2 Arbitrajsizlik sharti
Mana, qolgan hamma narsa qurilgan asosiy teorema.
Teorema. Bozor faqat va faqat aktivlarning har qanday sikli (i₁, i₂, ..., iₖ, i₁) uchun sikl bo'ylab almashuv kurslarining ko'paytmasi birga teng bo'lgandagina arbitrajdan xoli bo'ladi:
R[i₁][i₂] * R[i₂][i₃] * ... * R[iₖ][i₁] = 1
Ekvivalent ta'rif: R matritsasi faqat va faqat uning rangi 1ga teng bo'lgandagina (multiplikativ ma'noda) arbitrajdan xoli bo'ladi. Bu shuni anglatadiki, quyidagi shartni qanoatlantiruvchi narx vektori p = (p₁, p₂, ..., pₙ) mavjud:
R[i][j] = pj / pi barcha i, j uchun
R matritsasi tashqi ko'paytma R = (1/p) * pᵀ sifatida yoyiladi—va bu 1-rangli matritsa. Agar haqiqiy matritsa 1-rangdan chetlansa—qayerdadir arbitraj imkoniyati yashiringan bo'ladi.
2. Xos qiymat usuli: O(n³) da arbitraj
2.1 Ming Ma teoremasi
Arbitrajni aniqlashning eng nafis usullaridan biri 2007-yilda Ming Ma tomonidan taklif qilingan. G'oya ajoyib darajada sodda.
Teorema (Ming Ma). R — n × n almashuv kursi matritsasi bo'lsin. Agar bozor arbitrajdan xoli bo'lsa, u holda:
- Eng katta xos qiymat
λ_max = n. - Qolgan barcha xos qiymatlar nolga teng.
- Mos keluvchi xos vektor
vmuvozanat narxlarini ifodalaydi.
Nega bu ishlaydi? Arbitrajdan xoli matritsaning rangi 1ga teng, va uning izi (diagonal elementlar yig'indisi) nga teng (chunki har bir R[i][i] = 1). 1-rangli matritsa uchun nolga teng bo'lmagan yagona xos qiymat izga teng. Shuning uchun λ_max = n.
Arbitraj mezoni: arbitraj faqat λ_max > n bo'lgandagina mavjud. δ = λ_max - n og'ishi arbitraj imkoniyatining miqyosini miqdoriy baholaydi.

3. Tropik (max-plus) algebra: eng nafis usul
3.1 Qo'shish maksimumga aylanganda
Bu, ehtimol, bizning tadqiqotimizning eng go'zal kashfiyoti. Tropik algebra — tanish amallar qayta belgilanadigan algebraik tizim:
- "Qo'shish":
a ⊕ b = max(a, b) - "Ko'paytirish":
a ⊗ b = a + b
Ushbu algebrada matritsalarni ko'paytirish avtomatik ravishda og'irliklarning maksimal yig'indisiga ega yo'lni qidiradi. Bu aynan eng foydali arbitraj siklini topish uchun kerak bo'lgan narsa.
3.2 Tropik xos qiymat va arbitraj
Kurslarning log-matritsasini olaylik: L[i][j] = ln(R[i][j]). L matritsasining tropik xos qiymati λni hisoblang.
Teorema. λ > 0 faqat arbitraj mavjud bo'lgandagina bajariladi. Bundan tashqari, exp(λ) — eng yaxshi siklning foyda ko'paytiruvchisi.
/// Tropical (max-plus) matrix multiplication
fn tropical_matmul(a: &DMatrix<f64>, b: &DMatrix<f64>) -> DMatrix<f64> {
let n = a.nrows();
let m = b.ncols();
let k = a.ncols();
let mut result = DMatrix::from_element(n, m, f64::NEG_INFINITY);
for i in 0..n {
for j in 0..m {
for l in 0..k {
// Tropical multiplication: max instead of sum, + instead of *
let val = a[(i, l)] + b[(l, j)];
if val > result[(i, j)] {
result[(i, j)] = val;
}
}
}
}
result
}
4. PCA va faktor modellari: statistik arbitraj
Deterministik arbitrajdan (to'g'ridan-to'g'ri narx farqlari) statistik arbitrajga—faktor modelidan sistematik og'ishlarni qidirishga—o'tamiz.
Bosh komponentlar tahlili (PCA) aktiv daromadlarini sistematik faktorlarga va idiosinkratik qoldiqlarga ajratadi:
ri(t) = αi + Σk βik * Fk(t) + εi(t)
bu yerda Fk(t) — k-chi faktor, βik — yuklama (loading), va εi(t) — qoldiq, ya'ni arbitraj signali.
4.1 Tasodifiy matritsalar nazariyasi (RMT)
Asosiy savol: nechta faktorni saqlab qolish kerak? Marchenko-Pastur taqsimoti tasodifiy kovariatsiya matritsasi uchun xos qiymatlar spektrini tavsiflaydi. Yuqori chegara dan yuqori xos qiymatlar haqiqiy signallarni olib yuradi, chegara ichidagilari esa shovqin (noise) hisoblanadi.

5. Tenzor usullari: arbitrajning uchinchi o'lchovi
Kriptovalyuta arbitraji bir vaqtning o'zida bir nechta o'lchovni o'z ichiga oladi. Kurslar matritsasi shunchaki 2D kesim. Haqiqiy manzara esa Tenzordir:
T(a, e, i) = i instrumenti uchun e birjasidagi a aktivining narxi/kursi
O'lchovlar:
- 1-rejim (Aktivlar): BTC, ETH, SOL, ...
- 2-rejim (Birjalar): Binance, Kraken, Coinbase, ...
- 3-rejim (Instrumentlar): Spot, Perpetual, Futures, ...
CP-dekompozitsiya (CANDECOMP/PARAFAC) tenzorni 1-rangli tenzorlar yig'indisiga faktorlashtiradi. T - T_approx qoldiqlari bozorning umumiy faktor tuzilmasiga nisbatan muayyan aktiv/birja/instrument kombinatsiyalari noto'g'ri narxlangan joylardagi anomaliyalarni ochib beradi.
Xulosa
Oddiy jadvallardan tortib ko'p o'lchovli tenzorlargacha, chiziqli algebra kriptovalyuta bozori uchun formal til taqdim etadi. Rust bizga ushbu murakkab modellarni HFT uchun zarur bo'lgan tezlikda bajarish imkonini beradi.
Keyingi qismda biz arbitraj uchun GNN, Transformer va RLni o'rganamiz va neyron tarmoqlar savdo qilishni qanday o'rganishini ko'rib chiqamiz.
Yuqori o'lchovli signallarni qayta ishlayapsizmi? GitHub'dagi tenzorga asoslangan Trading Engine sahifamizga 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.