加密貨幣中的統計套利 — 配對交易與均值回歸

統計套利利用價格暫時偏離均衡的機會。當兩個通常同步移動的資產出現分歧時,統計套利交易者會買入表現較差的資產並賣空表現較好的資產,押注於它們的收斂。在加密貨幣中,這種策略尤其有效,因為資產之間存在相關性但並非完全相關,從而創造了盈利機會。

範例: BTC 和 ETH 的相關性為 0.85。當 ETH 在 1 小時內表現落後 BTC 3%(異常情況)時,統計套利交易者會賣空 BTC 並買入 ETH。歷史數據顯示,它們會在 4-8 小時內收斂,鎖定約 1-1.5% 的利潤。

配對交易基礎

選擇配對

並非所有配對都有效。你需要:

Python — 配對選擇
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:]:
# 計算相關性
corr, p_value = pearsonr(data[sym1], data[sym2])
if corr > 0.75:
# 測試共整合(Engle-Granger 檢驗)
residuals = data[sym1] - (data[sym2] * corr)
adf_stat = adf_test(residuals) # 平穩性
if adf_stat < 0.05: # 平穩
candidates.append((sym1, sym2, corr))
return candidates

共整合分析

什麼是共整合?

如果兩個非平穩序列的線性組合是平穩的,則它們是共整合的。簡單來說:它們隨時間一起移動,並且偏離這種關係的情況最終會回歸。

對於 BTC 和 ETH:

尋找對沖比率

使用普通最小二乘回歸來找到最佳比率:

Python — 對沖比率計算
from sklearn.linear_model import LinearRegression
def get_hedge_ratio(price1, price2):
# 將 price1 對 price2 進行回歸以找到 beta(對沖比率)
X = price2.reshape(-1, 1)
y = price1
model = LinearRegression().fit(X, y)
hedge_ratio = model.coef_[0]
intercept = model.intercept_
return hedge_ratio, intercept
# 價差 = price1 - (hedge_ratio × price2) + intercept
beta, alpha = get_hedge_ratio(btc_prices, eth_prices)
spread = btc - (beta * eth)

均值回歸策略

使用 Z 分數

標準化價差以檢測極端情況。當 z 分數 > 2 時,價差異常寬(交易機會):

Python — 均值回歸交易
def mean_reversion_signal(spread, lookback=20):
# 計算滾動均值和標準差
mean = spread.rolling(window=lookback).mean()
std = spread.rolling(window=lookback).std()
# Z 分數:距離均值多少個標準差
z_score = (spread - mean) / std
# 交易信號
if z_score[-1] > 2.0:
return "LONG_SPREAD" # 價差過寬,買入表現較差的資產
elif z_score[-1] < -2.0:
return "SHORT_SPREAD" # 價差過窄,賣空表現較差的資產
else:
return "NEUTRAL"

退出規則

當價差回歸均值(z 分數 → 0)或達到損失閾值(在 z 分數反轉時止損)時平倉:

Python — 退出邏輯
def check_exit(entry_z_score, current_z_score, entry_price):
# 止盈:價差收斂至均值的一半
if abs(current_z_score) < abs(entry_z_score) * 0.5:
return 退出, profit_target
# 停損條件:z分數反向移動超過1
if (entry_z_score > 0 and current_z_score < entry_z_score + 1.0):
return 退出, stop_loss
elif (entry_z_score < 0 and current_z_score > entry_z_score - 1.0):
return 退出, stop_loss
return 持有, None

統計套利策略回測

統計套利關鍵指標:

Python — 配對交易回測
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)):
if position is None:
if 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]
if exit_reason:
pnl = position["entry"] - spread[i]
trades.append({"pnl": pnl, "reason": exit_reason})
position = None
return pd.DataFrame(trades)

整合Smart Money數據

用Smart Money信號過濾配對交易:

Python — 智能配對策略
def smart_money_pairs_strategy(symbol1, symbol2, z_score):
# 檢查配對的Smart Money信號
sm1 = get_smart_money_signal(symbol1)
sm2 = get_smart_money_signal(symbol2)
# 當一方極度看漲,另一方極度看跌 = 強烈背離
# 最佳交易時機
divergence_score = abs(sm1["composite"] - sm2["composite"])
if z_score > 2.0 and divergence_score > 0.3 and sm1["confidence"] != "VETO":
return "交易" # 高置信信號
else:
return "跳過" # 等待信號一致

用Smart Money強化統計套利

結合鯨魚共識與衍生品數據過濾均值回歸交易。我們的API將配對背離驗證準確率提升62%。

開始配對交易 →