統計套利 2026年2月16日 · 閱讀時間 20 分鐘

統計套利:配對交易原理詳解

從協整檢驗到信號生成,教你把「均值回歸」的統計優勢變成可執行的交易邏輯,並提供一個可交互的 ROCK 檢查表快速自測配對質量。

配對交易(Pairs Trading)是最經典的統計套利策略之一:找出長期協整的兩個標的,利用價差偏離均值時的回歸趨勢獲利。本文用一個可交互的檢查表,帶你理解「岩石原理(ROCK)」——挑選配對時最重要的四個維度:Robustness、Orthogonality、Cointegration、Kinetics(均值回復速度)。

什麼是配對交易?用生活比喻來理解

🏠 房價配對的例子

想像你住在一個社區,有兩棟相鄰的公寓 A 和 B。它們戶型相同、年代相近、地段一樣,所以房價通常很接近。如果某天你發現 A 房突然比 B 房貴了 50 萬,而沒有明顯原因(比如裝修、學區變化),你可能會覺得:

  • • A 房被高估了,應該會跌
  • • B 房被低估了,應該會漲
  • • 最終兩者會回到合理的價差範圍

這就是配對交易的核心邏輯:兩個基本面相似的資產,短期價差偏離時會回歸到長期均值。

📈 股票配對的實際操作

假設蘋果(AAPL)和微軟(MSFT)這兩家科技巨頭,歷史上股價走勢高度相關。正常情況下,AAPL 比 MSFT 貴 20%。但某天你發現這個價差突然變成了 40%:

🍎 AAPL: $200 (上漲 15%)
🪟 MSFT: $143 (下跌 5%)
價差: +40% (偏離!!)

配對交易者會:做空 AAPL、做多 MSFT,賭這個異常價差會收斂回 20% 的歷史均值。這就是「市場中性」策略——不賭整個科技股的漲跌,只賭兩者的相對強弱。

為什麼配對交易受歡迎?

相比單純做多做空,配對交易的優勢是「市場中性」——即使整個市場大跌,只要兩個股票的相對價差按預期收斂,你依然能賺錢。這降低了系統性風險,讓策略在各種市況下都有獲利機會。

1 岩石原理(ROCK)可交互檢查表

ROCK 四要素
AAPL / MSFT
  • R • Robustness:產業鏈共振,業績高度相關
  • O • Orthogonality:對市場指數 Beta 差值低
  • C • Cointegration:協整 p 值 < 0.05
  • K • Kinetics:半衰期 < 10 天,均值回復快
價差 Z-Score -1.2
相關係數 0.92
半衰期 (天) 8
協整 p 值 0.012
Beta 差異 0.08

提示:選擇不同配對,快速檢查 ROCK 四要素是否滿足;協整 p 值越低、半衰期越短,均值回復越可靠。

2 配對交易的核心流程

📚 核心流程白話解釋

配對交易看似複雜,但步驟很清楚:①找朋友(挑選相關性高的股票對)→ ②做體檢(統計檢驗確認長期關係穩定)→ ③等機會(價差偏離時建倉)→ ④賺差價(價差收斂時平倉獲利)。就像等兩個好朋友吵架後和好,從中賺取「和解費」。

Step 1
標的池 → 候選對

生成候選配對

  • • 行業/供應鏈相近(避免結構性分叉)
  • • 市值/流動性相當(可執行)
  • • 先做相關係數排名,再做協整檢驗

通俗理解:就像找結婚對象,要門當戶對、性格相合。股票也是,同行業、同體量的更容易「長相廝守」,價格走勢才會高度相關。

Step 2
協整 → 半衰期

檢驗與打分

  • • ADF / PP / KPSS 協整檢驗
  • • Ornstein-Uhlenbeck 拟合半衰期
  • • 估 Beta、殘差,計算 Z-Score

通俗理解:協整檢驗就像「婚姻穩定性測試」——兩個人短期會吵架,但長期會和好嗎?半衰期告訴你「吵架後多久和好」,越短代表關係越穩定。p 值 < 0.05 表示通過測試。

Step 3
信號 → 執行

下單與監控

  • • |Z| > 2 開倉,回到 0 平倉
  • • 每腿金額對沖,保持市場中性
  • • 監控滑點、成交量、費率

通俗理解:Z-Score 像「吵架激烈程度」,|Z| > 2 表示吵得很凶,是入場時機;回到 0 表示和好了,該獲利了結。「金額對沖」確保你賭的是相對強弱,不是整體漲跌。

3 信號構造:Z-Score + 半衰期

Z-Score 深度解析:為什麼它是配對交易的核心?

📏 標準化偏離

就像身高有高矮,但「比平均高 2 個標準差」是統一的衡量標準。Z-Score 把不同股票對的價差偏離程度,轉換成可比較的數值。

🎯 進出場信號

|Z| > 2 意味著「99.7% 的時間都不會這麼極端」,是很好的建倉時機。Z 回歸 0 代表價差恢復正常,該獲利了結。

⏱️ 時間維度

半衰期告訴你「價差偏離後,平均多久會回到一半的位置」。越短越好,意味著你不用等太久就能獲利。

為什麼用 Z-Score?

對殘差標準化,讓不同配對的偏離程度可比較。常見規則:|Z| > 2 建倉,Z 回到 0 平倉;也可用 1 / 1.5 作為分級開倉。

🔢 實際例子

假設 AAPL-MSFT 的價差歷史均值是 $20,標準差是 $5。某天價差變成 $30:
Z = (30-20) / 5 = 2.0
這意味著當前偏離「很極端」,是建倉信號。

均值回復假設:殘差遵循 OU 過程,dX = -k(X-μ)dt + σdW。半衰期 τ = ln(2)/k,越小代表回復越快。
信號模板
spread = y - beta * x
zscore = (spread - spread.mean()) / spread.std()

if zscore > 2:    # 做空 y,做多 x
    target = -1
elif zscore < -2: # 做多 y,做空 x
    target = 1
elif abs(zscore) < 0.5:
    target = 0   # 平倉

提示:回測時需加入交易成本、借券費率、成交量過濾。

4 風控與實盤落地清單

⚠️ 配對交易的「隱藏成本」陷阱

很多新手看回測結果很美好,實盤卻虧錢,原因就是忽略了交易成本。配對交易需要同時買賣兩個標的,成本是普通策略的兩倍。而且因為要做空,還有借券費用。一個看似 2% 年化收益的策略,扣除成本後可能只剩 0.5%。

💸 成本清單(必須考慮)

• 買入手續費(通常 0.1%-0.3%)
• 賣出手續費(同上)
• 做空借券費(年化 1%-5%)
• 滑點損失(市價單的隱性成本)

交易成本與滑點

配對策略勝率高但單筆利潤薄,滑點/費率會侵蝕優勢。回測務必加入「買賣雙邊手續費 + 借券利率 + 成交量閾值」。

經驗法則:預期年化收益率至少要達到總交易成本的 3 倍,實盤才有意義。

斷聯風險

公司基本面分叉(併購、業務轉型)可能讓協整失效。用滾動窗口重估 beta 和協整,p 值失效立即下架該配對。

真實案例:2020 年疫情期間,Zoom 和傳統科技股「斷聯」,很多 ZM 配對策略都爆倉了。

倉位與槓桿

建議每腿金額對沖,總倉位不超過帳戶淨值的 60%-70%。槓桿提高收益也放大借券與強平風險。

計算公式:如果 AAPL $200,MSFT $100,要做 $10000 的配對,應該做空 $5000 AAPL + 做多 $5000 MSFT。

監控與告警

實盤需監控:當前 Z-Score、半衰期漂移、成交量是否萎縮、券源可借數量。設置閾值推送通知。

監控清單:Z-Score > 3(極端偏離)、半衰期 > 20天(回復變慢)、成交量 < 平均50%(流動性下降)。

5 過擬合陷阱:配對交易的頭號殺手

⚠️ 過擬合:配對交易最大的敵人

很多人回測配對交易年化收益 50%+,實盤卻虧損慘重。罪魁禍首就是過擬合——模型在歷史數據上表現完美,但對未來失效。這就像背答案考高分,真正考試時卻一敗塗地。

🏠 生活化例子:房價配對的「幻象」

假設你發現市中心豪宅 A 和郊區別墅 B 的價格「高度相關」,歷史上 A 貴 100 萬時,B 就會在 3 個月內漲到差不多價格。於是你制定策略:A 比 B 貴 150 萬就賭 B 會追上。

但現實是:2020 年疫情改變了一切,遠程工作讓郊區更香,歷史的「黏合關係」徹底破裂。你的模型基於過去 10 年數據,卻無法預測結構性變化。

過擬合的數學本質

偏差-方差權衡:

總誤差 = 偏差² + 方差 + 噪音²

模型越複雜,偏差越低但方差越高

樣本外誤差:

E[L(test)] = E[L(train)] + 複雜度懲罰

訓練誤差低不代表泛化能力強

配對交易中的過擬合表現

1

參數過度調優

Z-Score 閾值調成 1.87、止損設在 3.24,為了「完美貼合」歷史

2

窗口長度依賴

滾動窗口剛好 247 天效果最佳,但換個時期就失效

3

多重共線性忽略

多個配對同時建倉,看似分散但實際高度相關

防過擬合實用清單

📊 數據分割
  • • 訓練:驗證:測試 = 6:2:2
  • • 時間序列用前向驗證
  • • 絕不偷看測試集結果
🔧 參數控制
  • • 只調核心參數(Z 閾值)
  • • 用網格搜索 + 交叉驗證
  • • 設定合理參數範圍
⏰ 穩健性檢驗
  • • 滾動窗口回測
  • • 不同市場環境測試
  • • 蒙特卡羅模擬

防過擬合的代碼框架

# 1. 嚴格的數據分割
train_end = '2020-12-31'
val_end = '2022-06-30' 
test_start = '2022-07-01'

# 2. 參數網格搜索(只在訓練+驗證集)
z_thresholds = [1.5, 2.0, 2.5]
for z_thresh in z_thresholds:
    # 訓練集擬合,驗證集評估
    
# 3. 最終測試(一次性,不重複)
best_params = grid_search_result
final_performance = test_on_holdout(best_params)

# 警告:如果測試集表現差很多,說明過擬合了!

6 給 AI 的 Prompt 模板

把下面 Prompt 丟給你慣用的模型(Claude / GPT),快速生成配對交易回測腳本:

我想用 Python 回測「配對交易」策略,請給完整可執行代碼:

數據:用 yfinance 下載 AAPL, MSFT 日線收盤價,近 5 年。
步驟:
1) 對兩支股票做 OLS 回歸估計 beta,計算殘差與 z-score。
2) 協整檢驗:ADF / PP / KPSS,打印 p 值。
3) OU 半衰期估計,打印半衰期(天)。
4) 交易規則:|z|>2 開倉,|z|<0.5 平倉;雙邊倉位金額對沖。
5) 回測結果:總收益、年化、勝率、最大回撤、交易次數,並繪製價差與 z-score 曲線。
6) 代碼需加入手續費假設(每股 0.003 美元)。
江景哲

江景哲

量化專家

Zero2Quant 創始人 · 全職量化交易者 · 前對沖基金策略開發

擁有 8 年量化交易經驗,專精統計套利和機器學習策略。曾在知名對沖基金負責多空策略開發,管理資金規模超過 2 億美元。現專注於量化教育,已幫助 500+ 學員建立自己的交易系統。

|
500+ 學員 8年經驗

相關文章

想要更系統地學習量化交易?

10節實戰課程,AI 輔助教學,從零基礎到自動化交易系統

了解完整課程 →