← Makalelere geri dön
February 28, 2026
5 dakikalık okuma

Rust ile Karmaşık Arbitraj Yürütme: Nanosaniyelerden Atomik Çok Bacaklı İşlemlere

Rust ile Karmaşık Arbitraj Yürütme: Nanosaniyelerden Atomik Çok Bacaklı İşlemlere
#Rust
#arbitraj
#HFT
#düşük-gecikme
#kilitsiz
#SIMD
#algo-trading
#çok bacaklı
#emir yürütme

"Vadeli İşlemler ve Spot Arasındaki Karmaşık Arbitraj Zincirleri" serisinin 6. bölümü

Beş borsayı aynı anda yöneten bir orkestra şefi hayal edin. Her enstrüman kendi partisini çalar ve ilk nota ile son nota arasında yalnızca birkaç milisaniye geçmelidir. Tek bir yanlış nota—ve bir arbitraj fırsatı kayba dönüşür: bir borsada doldurulan bir bacak ve başka bir borsada kaybolan bir fiyat.

Bu, "Vadeli İşlemler ve Spot Arasındaki Karmaşık Arbitraj Zincirleri" serisinin altıncı ve en pratik bölümüdür. Bayt, önbellek satırı ve atomik işlemler düzeyine iniyoruz.

Rust'ta Arbitraj Yürütme Çok bacaklı arbitraj için ultra düşük gecikmeli yürütme sisteminin mimarisi: piyasa verisi alımından emir gönderimine 2-6 ms içinde.

1. Gecikme Optimizasyonu: Çekirdeğin Ötesine

Milisaniyenin altında hassasiyet elde etmek için geleneksel darboğazları aşmamız gerekir.

1.1 io_uring ve Ağ Atlatma

io_uring, kullanıcı alanı ile çekirdek arasındaki paylaşımlı bellek halkaları aracılığıyla asenkron I/O sağlar. Bir kez başlatıldığında, birden fazla WebSocket'ten okuma gibi işlemler sıfır sistem çağrısı gerektirir.

use io_uring::IoUring;

struct UringReader {
    ring: IoUring,
    buffers: Vec<Vec<u8>>, // Önceden ayrılmış tamponlar: borsa başına bir tane
}

1.2 simd-json ve Sıfır Kopyalamalı Seri Dışı Bırakma

Çoğu borsa JSON kullanır. simd-json, paralel ayrıştırma için SIMD talimatları kullanır ve standart ayrıştırıcılara kıyasla 2-4 kat hız artışı sağlar.

2. Kilitsiz Emir Defterleri: Mutex Yok

Bir HFT ortamında, bir emir defterindeki Mutex büyük bir darboğazdır. Kilit olmadan O(logn)O(\log n) arama için crossbeam-skiplist kullanırız:

use std::sync::atomic::{AtomicU64, Ordering};
use crossbeam_skiplist::SkipMap;

struct PriceLevel {
    price: AtomicU64,
    total_qty: AtomicU64,
}

struct LockFreeOrderBook {
    bids: SkipMap<Reverse<u64>, PriceLevel>,
    asks: SkipMap<u64, PriceLevel>,
}

3. LMAX Disruptor: Kilitsiz Halka Tamponu

Önbellek satırı hizalamasıyla (64 bayt) önceden ayrılmış bir halka tamponu, yürütme hattının kalbidir. Piyasa verilerinin OrderBook Updater, Strategy Engine ve Risk Monitor arasında sıfır kopyayla paralel olarak akmasını sağlar.

4. Kayma Modellemesi: Kesinlik Katmanları

Kaymayı üç katman kullanarak modelliyoruz:

  1. Anlık LOB Analizi: Limit Emir Defterinin gerçek zamanlı analizi (mikrosaniyeler).
  2. Kyle'ın Lambdası: Emir akışı birimi başına fiyat etkisi (milisaniyeler).
  3. Amihud ILLIQ: Uzun vadeli likidite izleme (günler).

5. Atomik Çok Bacaklı Yürütme: Tip-Durum Deseni

Çok bacaklı bir arbitraj stratejisi hiçbir zaman atomik değildir. Bir bacak dolarken diğerleri başarısız olabilir. Geçersiz durum geçişlerini derleme zamanında hata haline getirmek için Rust'ın Tip-Durum Desenini kullanırız.

// Tipler olarak durumlar. Geçersiz geçişler derlenmez.
struct Idle;
struct Validating;
struct ExecutingLeg;
struct FullyFilled;
struct RollingBack;

struct Execution<State> {
    trade_id: u64,
    legs: Vec<TradeLeg>,
    _state: PhantomData<State>,
}

6. Risk Yönetimi: Acil Durdurma ve Devre Kesiciler

Üç seviyeli devre kesici, sistemi felaket niteliğindeki piyasa hareketlerinden korur:

  1. Duraklatıldı: Yerel volatilite artışları için 5 dakikalık duraklama.
  2. Durduruldu: Büyük 1 saatlik düşüşler için 15 dakikalık durdurma.
  3. Kapatma: BTC 24 saatte %20 düşerse tam sistem kapatması.

7. Performans Bütçesi

Optimize edilmiş Rust kodu ile gecikme bütçemiz şu şekilde görünür:

  • Gelen Ağ (AWS ap-northeast-1): 0.5 - 2 ms
  • Ayrıştırma/Emir Defteri: 2 - 10 μs
  • Strateji/Risk: 5 - 15 μs
  • Giden Ağ: 0.5 - 2 ms TOPLAM: 2 - 6 ms

Sonuç

Rust, karmaşık arbitraj yürütme için mükemmel bir dildir. C++'ın düşük seviye kontrolünü, finans sistemleri için gereken güvenlik garantileriyle birlikte sunar.

Bu, "Karmaşık Arbitraj Zincirleri" serimizin sonucudur. Grafik algoritmalarından ve copula'lardan makine öğrenimine ve nanosaniye yürütmeye kadar, profesyonel düzeyde bir kripto para arbitraj sistemi inşa etmek için gereken planınız artık elinizde.


Büyük ölçekte yürütmeye hazır mısınız? GitHub'daki HFT Yürütme Motoru'nu klonlayın.

Sorumluluk Reddi: Bu makalede sağlanan bilgiler yalnızca eğitim ve bilgilendirme amaçlıdır ve finansal, yatırım veya ticaret tavsiyesi niteliği taşımaz. Kripto para ticareti önemli bir kayıp riski içerir.

Yazarlar

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

Piyasanın Önünde Olun

Özel yapay zeka ticaret içgörüleri, piyasa analizi ve platform güncellemeleri için bültenimize abone olun.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.