Матрицалар, тензорлор жана тропикалык алгебра: арбитражды аныктоо үчүн сызыктуу алгебра
"Фьючерстер менен спот ортосундагы татаал арбитраж чынжырлары" сериясынын 4-бөлүмү
Жүздөгөн трейдер бир учурда валюта алмаштырган чоң залды элестетип көрүңүз. Ар бирөөнүн өз курсу, комиссиясы жана өзгөчөлүгү бар. Сиз ортодо дептер менен туруп, пайда алып келүүчү алмашуу маршрутун издеп жатасыз: доллардан еврого, еврадан иенге, иенден кайра долларга—жана баштагыдан көбүрөөк менен чыгуу. Адашуу оңой. Бирок бардык курстарды таблицага—матрицага—жазсаңыз, хаос капысынан түзүлүшкө ээ болот. Ушул матрицанын менчиктик маанилери арбитраж бар же жок экенин айтат. Тропикалык алгебра эң ыңгайлуу маршрутту табат. Ал эми тензордук декомпозициялар жөнөкөй көзгө көрүнбөгөн мыйзам ченемдүүлүктөрдү ачат.
Бул макалада биз жөнөкөй алмашуу курсунун таблицасынан татаал көп өлчөмдүү анализ ыкмаларына чейин жол басабыз—ар бир кадам Rust тилиндеги ишке ашыруу менен ырасталат.
Криптовалюталардын ортосундагы алмашуу курсунун матрицасынын визуализациясы: графтын четтери соода жуптарын билдирет, ал белгиленген цикл аныкталган арбитраж мүмкүнчүлүгүн көрсөтөт.

1. Алмашуу курсунун матрицасы: негизи
1.1 Хаостон таблицага чейин
Бизде n актив бар дейли: BTC, ETH, USDT, SOL ж.б. Ар бир жупту белгилүү бир курс боюнча алмаштырууга болот. Алмашуу курсунун матрицасы R — n × n таблица, анда R[i][j] элементи i активинин бир бирдиги үчүн j активинин канча бирдигин алаарыбызды көрсөтөт.
Туура түзүлгөн матрицанын касиеттери:
- Диагональ:
R[i][i] = 1—активди өзүнө алмаштыруу эч нерсени өзгөртпөйт. - Оңдук (positivity): бардык жуптар үчүн
R[i][j] > 0. - Өз ара дал келүү (reciprocity) (идеалдуу рынокто):
R[i][j] * R[j][i] = 1.
Rust тилинде муну nalgebra аркылуу көрсөтсө болот:
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 Арбитражсыздык шарты
Мына калгандын баары түзүлгөн негизги теорема.
Теорема. Рынок активдердин каалаган цикли (i₁, i₂, ..., iₖ, i₁) үчүн цикл боюнча алмашуу курстарынын көбөйтүндүсү бирге барабар болгондо гана арбитражсыз болот:
R[i₁][i₂] * R[i₂][i₃] * ... * R[iₖ][i₁] = 1
Барабар туюнтма: R матрицасы анын рангы 1ге барабар болгондо гана (мультипликативдик мааниде) арбитражсыз болот. Бул төмөнкүдөй баа вектору p = (p₁, p₂, ..., pₙ) бар дегенди билдирет:
R[i][j] = pj / pi бардык i, j үчүн
R матрицасы сырткы көбөйтүндү R = (1/p) * pᵀ түрүндө жиктелет—бул 1-ранг матрицасы. Эгер чыныгы матрица 1-рангдан четтесе—кайдадыр арбитраж мүмкүнчүлүгү жашырылган.
2. Менчиктик маани ыкмасы: O(n³) убакытында арбитраж
2.1 Мин Ма теоремасы
Арбитражды аныктоонун эң сулуу ыкмаларынын бирин 2007-жылы Мин Ма сунуштаган. Идея өтө жөнөкөй.
Теорема (Мин Ма). R — n × n алмашуу курсунун матрицасы болсун. Эгер рынок арбитражсыз болсо, анда:
- Эң чоң менчиктик маани
λ_max = n. - Калган бардык менчиктик маанилер нөлгө барабар.
- Тиешелүү менчиктик вектор
vтең салмактуулук баасын билдирет.
Эмне үчүн бул иштейт? Арбитражсыз матрицанын рангы 1ге барабар, ал эми анын изи (диагональ элементтеринин суммасы) nге барабар (себеби ар бир R[i][i] = 1). 1-ранг матрицасы үчүн жалгыз нөлгө барабар эмес менчиктик маани изге барабар. Ошондуктан λ_max = n.
Арбитраж критерийи: арбитраж λ_max > n болгондо гана бар. δ = λ_max - n четтөөсү арбитраж мүмкүнчүлүгүнүн масштабын сандык жактан баалайт.

3. Тропикалык (max-plus) алгебра: эң сулуу ыкма
3.1 Кошуу максимумга айланганда
Бул, балким, биздин изилдөөбүздүн эң сулуу табылгасы. Тропикалык алгебра — тааныш операциялар кайра аныкталган алгебралык система:
- "Кошуу":
a ⊕ b = max(a, b) - "Көбөйтүү":
a ⊗ b = a + b
Бул алгебрадагы матрицаны көбөйтүү автоматтык түрдө салмактардын максималдуу суммасы бар жолду издейт. Так ушул эң пайдалуу арбитраж циклин табуу үчүн керек.
3.2 Тропикалык менчиктик маани жана арбитраж
Курстардын лог-матрицасын алалы: L[i][j] = ln(R[i][j]). L матрицасынын тропикалык менчиктик маанисин λ эсептеңиз.
Теорема. λ > 0 арбитраж бар болгондо гана аткарылат. Мындан тышкары, exp(λ) — эң мыкты циклдин пайда көбөйткүчү.
/// 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 жана факторлук моделдер: статистикалык арбитраж
Детерминисттик арбитраждан (түз баа айырмачылыктары) статистикалык арбитражга—факторлук моделден системалуу четтөөлөрдү издөөгө—өтөбүз.
Негизги компоненттер анализи (PCA) актив кирешелерин системалуу факторлорго жана идиосинкратикалык калдыктарга жиктейт:
ri(t) = αi + Σk βik * Fk(t) + εi(t)
мында Fk(t) — k-чи фактор, βik — жүктөм (loading), ал εi(t) — калдык, тактап айтканда арбитраж сигналы.
4.1 Кокустук матрицалар теориясы (RMT)
Негизги суроо: канча фактор калтыруу керек? Марченко-Пастур бөлүштүрүүсү кокустук ковариациялык матрицанын менчиктик маанилер спектрин сүрөттөйт. Жогорку чектен жогору менчиктик маанилер чыныгы сигналдарды алып жүрөт, ал эми чектин ичиндегилер—шоокум (noise).

5. Тензордук ыкмалар: арбитраждын үчүнчү өлчөмү
Криптовалюта арбитражы бир эле мезгилде бир нече өлчөмдү камтыйт. Курстардын матрицасы болгону 2D кесинди. Чыныгы сүрөт—тензор:
T(a, e, i) = a активинин e биржасындагы i инструменти үчүн баасы/курсу
Өлчөмдөр:
- 1-режим (Активдер): BTC, ETH, SOL, ...
- 2-режим (Биржалар): Binance, Kraken, Coinbase, ...
- 3-режим (Инструменттер): Spot, Perpetual, Futures, ...
CP-декомпозиция (CANDECOMP/PARAFAC) тензорду 1-ранг тензорлорунун суммасына жиктейт. T - T_approx калдыктары рынок жалпы факторлук түзүлүшүнө карата белгилүү бир актив/биржа/инструмент айкалыштарынын туура эмес бааланганын көрсөткөн четтөөлөрдү ачат.
Корутунду
Жөнөкөй таблицалардан баштап көп өлчөмдүү тензорлорго чейин, сызыктуу алгебра криптовалюта рыногу үчүн формалдуу тил берет. Rust бизге бул татаал моделдерди HFT үчүн керектүү ылдамдык менен аткарууга мүмкүндүк берет.
Кийинки бөлүмдө биз арбитраж үчүн GNN, Transformer жана RL темасын карайбыз, нейрондук тармактар соода кылууну кантип үйрөнөрүн көрөбүз.
Жогорку өлчөмдүү сигналдарды иштетип жатасызбы? GitHub'догу тензорго негизделген Trading Engine баракчабызды караңыз.
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.