Kriptoda İstatistiksel Arbitraj — Çift İşlemleri ve Ortalama Geri Dönüş

İstatistiksel arbitraj, denge fiyatlarından geçici sapmaları değerlendirir. Normalde birlikte hareket eden iki varlık ayrıştığında, bir stat arb işlemcisi düşük performans göstereni alır ve yüksek performans göstereni kısa pozisyon açar, yakınsama üzerine bahis oynar. Kriptoda bu özellikle güçlüdür çünkü varlıklar ilişkili ancak tam olarak değildir, bu da karlı fırsatlar yaratır.

Örnek: BTC ve ETH korelasyonu 0.85. ETH, 1 saatlik sürede BTC'ye göre %3 düşük performans gösterdiğinde (olağandışı), bir stat arb işlemcisi BTC'yi kısa pozisyon açar ve ETH'yi uzun pozisyon açar. Tarihsel olarak, 4-8 saat içinde yakınsarlar ve ~%1-1.5 kar elde edilir.

Çift İşlemlerinin Temelleri

Çift Seçimi

Tüm çiftler işe yaramaz. Şunlara ihtiyacınız var:

Python — Çift seçimi
import pandas as pd
from scipy.stats import pearsonr
def find_cointegrated_pairs(symbols, data):
candidates = []
for i, sym1 in enumerate(symbols):
for sym2 in symbols[i+1:]:
# Korelasyonu hesapla
corr, p_value = pearsonr(data[sym1], data[sym2])
if corr > 0.75:
# Eşbütünleşme testi (Engle-Granger testi)
residuals = data[sym1] - (data[sym2] * corr)
adf_stat = adf_test(residuals) # durağanlık
if adf_stat < 0.05: # durağan
candidates.append((sym1, sym2, corr))
return candidates

Eşbütünleşme Analizi

Eşbütünleşme Nedir?

İki durağan olmayan seri, doğrusal kombinasyonları durağan ise eşbütünleşiktir. Basitçe: zamanla birlikte hareket ederler ve bu ilişkiden sapmalar sonunda geri döner.

BTC ve ETH için:

Hedge Oranını Bulma

Optimal oranı bulmak için en küçük kareler regresyonu kullanın:

Python — Hedge oranı hesaplama
from sklearn.linear_model import LinearRegression
def get_hedge_ratio(price1, price2):
# price1'i price2 üzerine regresyon yaparak beta (hedge oranı) bul
X = price2.reshape(-1, 1)
y = price1
model = LinearRegression().fit(X, y)
hedge_ratio = model.coef_[0]
intercept = model.intercept_
return hedge_ratio, intercept
# Spread = price1 - (hedge_ratio × price2) + intercept
beta, alpha = get_hedge_ratio(btc_prices, eth_prices)
spread = btc - (beta * eth)

Ortalama Geri Dönüş Stratejileri

Z-Skorlarını Kullanma

Spreadi standartlaştırarak aşırı uçları tespit edin. Z-skor > 2 olduğunda, spread alışılmadık derecede geniştir (işlem fırsatı):

Python — Ortalama geri dönüş işlemi
def mean_reversion_signal(spread, lookback=20):
# Yuvarlanan ortalama ve std hesapla
mean = spread.rolling(window=lookback).mean()
std = spread.rolling(window=lookback).std()
# Z-skor: ortalamadan kaç std sapma
z_score = (spread - mean) / std
# İşlem sinyalleri
if z_score[-1] > 2.0:
return "LONG_SPREAD" # spread çok geniş, düşük performans göstereni al
elif z_score[-1] < -2.0:
return "SHORT_SPREAD" # spread çok dar, düşük performans göstereni kısa pozisyon aç
else:
return "NEUTRAL"

Çıkış Kuralları

Spread ortalamaya döndüğünde (z-skor → 0) veya kayıp eşiğinde (z-skor tersine döndüğünde dur) kapatın:

Python — Çıkış mantığı
def check_exit(entry_z_score, current_z_score, entry_price):
# Kar al: spread ortalamaya yarı yarıya döndü
if abs(current_z_score) < abs(entry_z_score) * 0.5:
return "ÇIKIŞ", "kar_hedefi"
# Stop loss: z-skoru yanlış yönde >1 hareket etti
eğer (entry_z_score > 0 ve current_z_score < entry_z_score + 1.0):
return "ÇIKIŞ", "stop_loss"
değilse (entry_z_score < 0 ve current_z_score > entry_z_score - 1.0):
return "ÇIKIŞ", "stop_loss"
return "BEKLE", None

Stat Arb Stratejilerini Backtest Etme

Stat arb için temel metrikler:

Python — Çiftler stratejisini backtest etme
def backtest_pairs_strategy(price1, price2, hedge_ratio):
spread = price1 - (hedge_ratio * price2)
mean = spread.rolling(20).mean()
std = spread.rolling(20).std()
z_score = (spread - mean) / std
trades = []
position = None
for i in range(len(z_score)):
eğer position is None:
eğer z_score[i] > 2.0:
position = {"entry": spread[i], "z_entry": z_score[i], "idx": i}
else:
exit_reason = check_exit(position["z_entry"], z_score[i], spread[i])[1]
eğer exit_reason:
pnl = position["entry"] - spread[i]
trades.append({"pnl": pnl, "reason": exit_reason})
position = None
return pd.DataFrame(trades)

Akıllı Para Zekası Ekleme

Çiftler ticaretini Akıllı Para onayıyla filtreleyerek geliştirin:

Python — Filtrelenmiş çiftler stratejisi
def smart_money_pairs_strategy(symbol1, symbol2, z_score):
# Çift seviyesinde Akıllı Para onayını kontrol et
sm1 = get_smart_money_signal(symbol1)
sm2 = get_smart_money_signal(symbol2)
# Biri YÜKSEK boğa, diğeri YÜKSEK ayı ise = güçlü sapma
# Spread'i işlemek için harika zaman
divergence_score = abs(sm1["composite"] - sm2["composite"])
eğer z_score > 2.0 ve divergence_score > 0.3 ve sm1["confidence"] != "VETO":
return "TRADE" # Yüksek güvenilirlik sinyali
else:
return "SKIP" # Uyum bekleniyor

Stat arb'ı Akıllı Para çift sinyalleriyle güçlendirin

Ortalama geri dönüş işlemlerini balina konsensüsü ve türev verileriyle filtreleyin. API'mız çift sapma geçerliliğini %62 doğruluk iyileştirmesiyle onaylar.

Çiftlerle İşlemeye Başla →