← 返回文章列表
February 26, 2026
5 分鐘閱讀

矩陣、張量與熱帶代數:用於套利檢測的線性代數

矩陣、張量與熱帶代數:用於套利檢測的線性代數
#套利
#線性代數
#熱帶代數
#矩陣
#張量
#rust
#加密貨幣
#最佳化
#PCA
#特徵值
🔗
Part 3 of 6 · Collection
Complex Arbitrage in Rust

《期貨與現貨之間的複雜套利鏈》系列第 4 部分

想像一個巨大的大廳,數百名交易員同時交換貨幣。每個人都有自己的匯率、手續費和習慣。你站在中心,手裡拿著筆記本,試圖找到一條能帶來利潤的兌換路線:美元兌換歐元,歐元兌換日元,日元兌換回美元——最後帶走的錢比開始時多。這很容易迷失方向。但如果你把所有的匯率寫在一張表裡——一個矩陣中——突然間,混亂就有了結構。這個矩陣的特徵值(Eigenvalues)會告訴你是否存在套利機會。熱帶代數(Tropical Algebra)會找到最佳路徑。而張量分解(Tensor decompositions)將揭示肉眼不可見的模式。

在本文中,我們將從簡單的匯率表出發,探討高階多維分析方法——每一步都將由 Rust 實現支援。

匯率矩陣與套利迴圈 加密貨幣匯率矩陣的視覺化:圖中的邊代表交易對,突出顯示的迴圈代表檢測到的套利機會。

匯率矩陣與特徵值譜分解

1. 匯率矩陣:基礎

1.1 從混亂到表格

假設我們有 n 個資產:BTC、ETH、USDT、SOL 等。每對資產都可以以一定的匯率進行交換。匯率矩陣 R 是一個 n × n 的表格,其中元素 R[i][j] 表示用一個單位的資產 i 可以換取多少單位的資產 j

一個格式良好的矩陣具有以下屬性:

  • 對角線R[i][i] = 1——將一種資產兌換成它自己不會改變任何東西。
  • 正性:對於所有交易對,R[i][j] > 0
  • 互惠性(在理想市場中):R[i][j] * R[j][i] = 1

在 Rust 中,我們可以使用 nalgebra 來表示它:

use nalgebra::DMatrix;

/// 从一组交易对构建汇率矩阵
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);

    // 对角线:兑换自己 = 1
    for i in 0..n {
        matrix[(i, i)] = 1.0;
    }

    // 填充已知汇率
    for &((i, j), rate) in rates {
        matrix[(i, j)] = rate;
        // 如果没有直接汇率,则计算互惠汇率
        if matrix[(j, i)] == 0.0 {
            matrix[(j, i)] = 1.0 / rate;
        }
    }

    matrix
}

1.2 無套利條件

這是構建所有其他內容的關鍵定理。

定理。 當且僅當對於任何資產迴圈 (i₁, i₂, ..., iₖ, i₁),沿該迴圈的匯率乘積等於 1 時,市場不存在套利機會:

R[i₁][i₂] * R[i₂][i₃] * ... * R[iₖ][i₁] = 1

等價表述:矩陣 R 無套利當且僅當其秩(Rank)為 1(在乘法意義上)。這意味著存在一個價格向量 p = (p₁, p₂, ..., pₙ),使得:

R[i][j] = pj / pi   对于所有 i, j

矩陣 R 可以分解為外積 R = (1/p) * pᵀ——這是一個秩為 1 的矩陣。如果實際矩陣偏離了秩 1,那麼某個地方就隱藏著套利機會。

2. 特徵值方法:O(n³) 複雜度的套利檢測

2.1 Ming Ma 定理

2007 年,Ming Ma 提出了一種檢測套利機會的最優美方法。這個想法極其簡單。

定理 (Ming Ma)。Rn × n 匯率矩陣。如果市場無套利,則:

  1. 最大特徵值 λ_max = n
  2. 所有其他特徵值均等於零。
  3. 對應的特徵向量 v 代表平衡價格。

為什麼有效? 無套利矩陣的秩為 1,其追蹤(Trace,對角線元素之和)等於 n(因為每個 R[i][i] = 1)。對於秩為 1 的矩陣,唯一的非零特徵值等於其追蹤。因此,λ_max = n

套利準則:當且僅當 λ_max > n 時存在套利。 偏離程度 δ = λ_max - n 定量地估算了套利機會的規模。

熱帶(max-plus)代數視覺化

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(λ) 是最佳迴圈的利潤倍數。

/// 热带 (max-plus) 矩阵乘法
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 {
                // 热带乘法:用 max 代替 sum,用 + 代替 *
                let val = a[(i, l)] + b[(l, j)];
                if val > result[(i, j)] {
                    result[(i, j)] = val;
                }
            }
        }
    }
    result
}

4. 主成分分析 (PCA) 與因子模型:統計套利

從確定性套利(直接價格差異)轉向統計套利——尋找偏離因子模型的系統性偏差。

主成分分析 (PCA) 將資產收益分解為系統性因子和特有殘差(Idiosyncratic residuals):

ri(t) = αi + Σk βik * Fk(t) + εi(t)

其中 Fk(t) 是第 k 個因子,βik 是負載(Loading),εi(t) 是殘差——即套利訊號

4.1 隨機矩陣理論 (RMT)

關鍵問題:保留多少個因子?Marchenko-Pastur 分佈描述了隨機協方差矩陣的特徵值譜。高於上限 λ+λ_+ 的特徵值帶有真實訊號,而位於上限之內的則是噪聲

多維套利的3D張量視覺化

5. 張量方法:套利的第三個維度

加密貨幣套利同時涉及多個維度。匯率矩陣只是一個二維切片。真實的圖景是一個張量(Tensor)

T(a, e, i) = 交易所 e 上资产 a 的工具 i 的价格/汇率

維度:

  • 模式 1 (資產): BTC、ETH、SOL...
  • 模式 2 (交易所): Binance、Kraken、Coinbase...
  • 模式 3 (工具): 現貨(Spot)、永續(Perp)、期貨(Futures)...

CP 分解 (CANDECOMP/PARAFAC) 將張量分解為秩 1 張量之和。殘差 T - T_approx 揭示了特定價格/交易所/工具組合相對於整體市場因子結構被錯誤定價的異常情況。

結論

從簡單的表格到多維張量,線性代數為加密貨幣市場提供了一種正式語言。Rust 允許我們以 HFT 所需的速度執行這些複雜的模型。

在本系列的下一部分中,我們將探索用於套利的 GNN、Transformer 和 RL,瞭解神經網路如何學習交易。


正在處理高維訊號?請在 GitHub 上檢視我們的 基於張量的交易引擎

免責宣告:本文提供的資訊僅用於教育和參考目的,不構成財務、投資或交易建議。加密貨幣交易涉及重大損失風險。

Authors

Eugen Soloviov
Eugen Soloviov

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.

Newsletter

緊跟市場步伐

訂閱我們的時事通訊,獲取獨家 AI 交易見解、市場分析和平台更新。

我們尊重您的隱私。您可以隨時退訂。