เมทริกซ์ เทนเซอร์ และพีชคณิตทรอปิคัล: พีชคณิตเชิงเส้นสำหรับการตรวจจับอาร์บิทราจ
ตอนที่ 4 ของซีรีส์ "ห่วงโซ่อาร์บิทราจที่ซับซ้อนระหว่างตลาดฟิวเจอร์สและตลาดสปอต"
จินตนาการถึงห้องโถงขนาดใหญ่ที่เทรดเดอร์หลายร้อยคนแลกเปลี่ยนสกุลเงินพร้อมกัน แต่ละคนมีอัตราแลกเปลี่ยน ค่าธรรมเนียม และลักษณะเฉพาะของตัวเอง คุณยืนอยู่กลางห้องพร้อมสมุดบันทึก พยายามค้นหาเส้นทางการแลกเปลี่ยนที่ทำกำไร: ดอลลาร์เป็นยูโร ยูโรเป็นเยน เยนกลับมาเป็นดอลลาร์—แล้วออกมาพร้อมเงินมากกว่าที่เริ่มต้น มันง่ายที่จะหลงทาง แต่ถ้าคุณเขียนอัตราทั้งหมดลงในตาราง—เมทริกซ์—ความวุ่นวายก็จะมีโครงสร้างทันที ค่าไอเกนของเมทริกซ์นี้จะบอกคุณว่ามีอาร์บิทราจหรือไม่ พีชคณิตทรอปิคัลจะหาเส้นทางที่เหมาะสมที่สุด และการแยกสลายเทนเซอร์จะเผยรูปแบบที่มองไม่เห็นด้วยตาเปล่า
ในบทความนี้ เราจะเดินทางจากตารางอัตราแลกเปลี่ยนธรรมดาสู่วิธีการวิเคราะห์หลายมิติขั้นสูง—และทุกขั้นตอนจะได้รับการสนับสนุนด้วยการนำไปใช้งานใน Rust
การแสดงภาพเมทริกซ์อัตราแลกเปลี่ยนระหว่างคริปโตเคอร์เรนซี: ขอบกราฟแทนคู่การซื้อขาย และวงจรที่เน้นสีแทนโอกาสอาร์บิทราจที่ตรวจพบ

1. เมทริกซ์อัตราแลกเปลี่ยน: รากฐาน
1.1 จากความวุ่นวายสู่ตาราง
สมมติว่าเราประกอบไปด้วยสินทรัพย์ n ชนิด: BTC, ETH, USDT, SOL และอื่นๆ แต่ละคู่สามารถแลกเปลี่ยนได้ในอัตราหนึ่ง เมทริกซ์อัตราแลกเปลี่ยน R คือตาราง n × n โดยสมาชิก R[i][j] แสดงจำนวนหน่วยของสินทรัพย์ j ที่เราได้รับต่อหนึ่งหน่วยของสินทรัพย์ i
คุณสมบัติของเมทริกซ์ที่จัดรูปแบบถูกต้อง:
- เส้นทแยงมุม:
R[i][i] = 1—การแลกเปลี่ยนสินทรัพย์กับตัวเองไม่เปลี่ยนแปลงอะไร - ค่าบวก:
R[i][j] > 0สำหรับทุกคู่ - การตอบแทนซึ่งกันและกัน (ในตลาดในอุดมคติ):
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 for all i, j
เมทริกซ์ R แยกสลายเป็นผลคูณภายนอก R = (1/p) * pᵀ—และนี่คือเมทริกซ์อันดับ 1 หากเมทริกซ์จริงเบี่ยงเบนจากอันดับ 1—จะมีโอกาสอาร์บิทราจซ่อนอยู่ที่ไหนสักแห่ง
2. วิธีค่าไอเกน: อาร์บิทราจใน O(n³)
2.1 ทฤษฎีบทของ Ming Ma
แนวทางที่สง่างามที่สุดวิธีหนึ่งในการตรวจจับอาร์บิทราจถูกเสนอโดย Ming Ma ในปี 2007 ความคิดนี้งดงามอย่างเหลือเชื่อ
ทฤษฎีบท (Ming Ma). ให้ 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 คือค่าน้ำหนัก และ εi(t) คือส่วนที่เหลือ—สัญญาณอาร์บิทราจ
4.1 ทฤษฎีเมทริกซ์สุ่ม (RMT)
คำถามสำคัญ: จะคงปัจจัยกี่ตัว? การแจกแจง Marchenko-Pastur อธิบายสเปกตรัมของค่าไอเกนสำหรับเมทริกซ์ความแปรปรวนร่วมสุ่ม ค่าไอเกนที่สูงกว่าขอบเขตบน มี สัญญาณจริง ในขณะที่ค่าที่อยู่ภายในขอบเขตคือ สัญญาณรบกวน

5. วิธีเทนเซอร์: มิติที่สามของอาร์บิทราจ
อาร์บิทราจคริปโตเคอร์เรนซีเกี่ยวข้องกับหลายมิติพร้อมกัน เมทริกซ์ของอัตราเป็นเพียงส่วนตัดขวาง 2D ภาพที่แท้จริงคือ เทนเซอร์:
T(a, e, i) = price/rate for asset a on exchange e for instrument i
มิติ:
- โหมด 1 (สินทรัพย์): BTC, ETH, SOL, ...
- โหมด 2 (ตลาดแลกเปลี่ยน): Binance, Kraken, Coinbase, ...
- โหมด 3 (เครื่องมือ): Spot, Perpetual, Futures, ...
CP-Decomposition (CANDECOMP/PARAFAC) แยกสลายเทนเซอร์เป็นผลรวมของเทนเซอร์อันดับ 1 ส่วนที่เหลือ T - T_approx เผยความผิดปกติที่ราคา/ตลาดแลกเปลี่ยน/เครื่องมือเฉพาะเจาะจงมีราคาผิดพลาดเมื่อเทียบกับโครงสร้างปัจจัยตลาดโดยรวม
บทสรุป
จากตารางธรรมดาไปจนถึงเทนเซอร์หลายมิติ พีชคณิตเชิงเส้นให้ภาษาทางการสำหรับตลาดคริปโตเคอร์เรนซี Rust ช่วยให้เราสามารถรันโมเดลที่ซับซ้อนเหล่านี้ด้วยความเร็วที่จำเป็นสำหรับ HFT
ในส่วนถัดไป เราจะสำรวจ GNN, Transformers และ RL สำหรับอาร์บิทราจ โดยดูว่าเครือข่ายประสาทเทียมเรียนรู้การเทรดอย่างไร
กำลังวิเคราะห์สัญญาณหลายมิติอยู่ใช่ไหม? ดู Tensor-Based Trading Engine บน GitHub ของเรา
ผู้เขียน
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.