策略 · 交易策略

统计套利:均值回归的数学化交易方法详解

统计套利利用价格偏离历史均值后的回归倾向获利。本文详解Z-Score计算、入场出场参数、半衰期判断、平稳性检验与均值回归风险管理。

📅 2026-07-12 · ✍️ 帝门交易

统计套利的核心原理

统计套利(Statistical Arbitrage)是量化交易中最经典的方法之一。它的底层逻辑是均值回归(Mean Reversion):当一个资产的价格偏离其历史均值足够远时,它大概率会回归均值。

这和传统的”低买高卖”理念一致,但统计套利将其数学化:

  • 不依赖主观判断”够低了”还是”够高了”
  • 用统计指标(Z-Score)量化偏离程度
  • 用历史数据确定入场和出场阈值
  • 用概率而非直觉指导交易决策

均值回归的统计学基础

假设BTC的30日均价为60,000 USDT,标准差为3,000 USDT。当前价格跌至54,000 USDT。

计算Z-Score:

Z = (当前价格 - 均值) / 标准差
Z = (54,000 - 60,000) / 3,000 = -2.0

Z-Score为-2意味着当前价格低于均值2个标准差。根据正态分布,价格低于均值2个标准差的概率约2.3%,即价格处于极端偏低位置。

统计套利的假设:极端偏低后大概率回归均值,因此是买入时机。

关键参数详解

1. 均值计算窗口

窗口类型窗口长度适用场景特点
短期均值5-20日日内/短线交易对近期变化敏感
中期均值20-60日波段交易平衡灵敏度和稳定性
长期均值60-200日中长线交易稳定但反应慢

建议使用20日或30日窗口作为主要均值,60日窗口作为辅助参考。

2. Z-Score入场阈值

阈值含义偏离概率适用风格
±1.01个标准差31.7%保守,频繁交易
±1.51.5个标准差13.4%中等
±2.02个标准差4.6%激进,少交易高利润
±2.52.5个标准差1.2%极端情况

推荐阈值组合

  • 入场:Z-Score达到±2.0时开仓
  • 出场:Z-Score回归到±0.5时平仓止盈
  • 止损:Z-Score继续偏离到±3.0时止损出场

3. 标准差计算

使用滚动标准差(Rolling Standard Deviation)而非固定值:

import numpy as np

def rolling_stats(prices, window=30):
    mean = np.mean(prices[-window:])
    std = np.std(prices[-window:])
    z_score = (prices[-1] - mean) / std if std > 0 else 0
    return mean, std, z_score

注意:标准差随时间变化,在低波动期标准差小,Z-Score更容易触发;在高波动期标准差大,需要更大的偏离才能触发。这正是我们想要的——低波动期交易更频繁(小利润),高波动期交易更少(大利润)。

4. 半衰期参数

均值回归的速度用半衰期衡量——价格偏离均值后回归一半所需的时间:

import numpy as np
from statsmodels.regression.linear_model import OLS

def calc_half_life(series):
    lag = series.shift(1).dropna()
    diff = (series - series.shift(1)).dropna()
    model = OLS(diff, lag).fit()
    hl = -np.log(2) / model.params[0]
    return hl

半衰期决定了持仓时间:

  • 半衰期5天 → 预期5天内价格回归一半
  • 半衰期20天 → 需要20天,交易周期更长
  • 半衰期>30天 → 回归太慢,不适合交易

建议:选择半衰期在5-15天的资产,交易效率最高。

5. ADF检验——平稳性判断

不是所有价格序列都适合均值回归。用ADF检验判断:

from statsmodels.tsa.stattools import adfuller

def check_stationarity(series):
    result = adfuller(series)
    p_value = result[1]
    # p < 0.05 → 拒绝非平稳假设 → 序列有均值回归特性
    return p_value < 0.05

如果p值>0.05,说明价格序列非平稳,均值回归策略不适用。

实战操作步骤

步骤1:选择适合均值回归的币种

判断标准:

  1. 平稳性检验:ADF p值<0.05
  2. 半衰期适中:5-20天之间
  3. 流动性充足:日交易量>1000万USDT
  4. 历史数据充足:至少180天的日线数据

适合的币种特征:

  • BTC在震荡期均值回归明显
  • ETH/USDT回归特性较好
  • 稳定币相关交易对波动有限但回归快

不适合的币种特征:

  • 强趋势山寨币(可能偏离后不再回归)
  • 极低流动性币种(无法有效执行)
  • 新上线币种(历史数据不足)

步骤2:计算实时Z-Score

def calculate_zscore(current_price, prices_history, window=30):
    if len(prices_history) < window:
        return None
    recent = prices_history[-window:]
    mean = np.mean(recent)
    std = np.std(recent)
    if std == 0:
        return 0
    return (current_price - mean) / std

步骤3:入场规则

IF Z-Score < -2.0 → 买入信号(价格极端偏低)
IF Z-Score > +2.0 → 卖出/做空信号(价格极端偏高)

仓位大小根据Z-Score绝对值动态调整:

def position_size(z_score, max_position_pct=0.05):
    # Z=2时开50%仓位,Z=3时开100%仓位
    if abs(z_score) < 2.0:
        return 0
    elif abs(z_score) < 3.0:
        return max_position_pct * (abs(z_score) - 2.0) / 1.0
    else:
        return max_position_pct

单笔仓位不超过总资金的5%,分散到3-5个币种时总仓位不超过15-25%。

步骤4:出场规则

IF Z-Score回归到[-0.5, +0.5]区间 → 平仓止盈
IF Z-Score继续偏离到±3.0 → 止损出场
IF 持仓超过2×半衰期 → 强制平仓(均值回归已失效)

步骤5:持续监控与参数更新

  • 每日更新均值和标准差,滚动调整参数
  • 每月回测一次策略表现
  • 根据实际效果调整Z-Score阈值
  • 当胜率低于55%时暂停策略,重新调参

风险管理框架

1. 趋势破坏风险(最大风险)

均值回归策略最大的风险:价格偏离后不再回归,而是进入新趋势。

例子:BTC从60,000跌至54,000(Z=-2),你以为会回归均值,结果BTC继续跌至40,000。

应对

  • 设置Z=±3.0止损线,绝不等待无限回归
  • 使用ADF检验定期检查平稳性
  • 在强趋势市场暂停均值回归策略
  • 限制最大持仓时间为2×半衰期

2. 参数失效风险

均值和标准差是基于历史的,市场结构变化后参数失效。

应对

  • 滚动更新均值/标准差(不要用固定值)
  • 每月回测,检查策略胜率和盈亏比
  • 当胜率低于55%或盈亏比低于1.5时暂停策略
  • 保留2-3个月的”参数冷却期”后重新优化

3. 黑天鹅风险

极端事件可能导致价格永久偏离。

应对

  • 单笔仓位不超过总资金5%
  • 分散到3-5个币种
  • 设置硬止损,不抱”总会回归”的信念
  • 保留至少30%的现金仓位应对极端情况

4. 交易成本风险

频繁交易的手续费可能吞噬利润。

应对

  • 限制入场频率(只在Z≥2时才入场)
  • 使用GT代币抵扣手续费(Gate.io)
  • 计算净利润(扣除手续费后)来评估策略
  • 目标:扣除手续费后年化收益>15%

适用场景对比

场景统计套利适用性说明
震荡市⭐⭐⭐⭐⭐最理想的环境
温和趋势⭐⭐⭐需要更严格的止损
强趋势不适用,价格不回归
高波动⭐⭐⭐⭐偏离幅度大,利润空间大
低波动⭐⭐偏离小,手续费侵蚀利润
主流币⭐⭐⭐⭐均值回归特性较好
山寨币⭐⭐趋势性强,回归不可靠

与其他策略的组合

统计套利可以和其他策略互补:

  1. 统计套利 + 趋势跟踪:震荡期用均值回归,趋势期切换为跟踪策略
  2. 统计套利 + 配对交易:用Z-Score同时判断价格偏离和价差偏离
  3. 统计套利 + 网格交易:均值回归方向提供网格中心价参考
  4. 统计套利 + DCA定投:Z-Score低时加大定投金额,Z-Score高时减少定投

参数优化清单

参数默认值优化方向注意事项
均值窗口30日20-60日过短易噪音,过长反应慢
入场Z-Score±2.0±1.5到±2.5低阈值频繁交易,高阈值利润大但机会少
出场Z-Score±0.5±0.3到±0.8过早出场利润小,过晚出场可能反转
止损Z-Score±3.0±2.5到±3.5止损太紧容易误触,太松亏损大
最大持仓时间2×半衰期1-3×半衰期超过半衰期说明回归假设失效

总结

统计套利是将”低买高卖”升级为数学化决策的方法。Z-Score提供了客观的偏离度量,但均值回归的前提——“价格终将回归”——在强趋势市场中会失效。成功的关键在于严格止损、参数滚动更新、以及只在适合均值回归的市场环境中使用此策略。对于量化交易入门者,统计套利是最好的起点——逻辑清晰、参数可量化、回测简单。

更多实战方法见帝门交易

⚠️ 风险提示:本文内容仅为站长经验分享,不构成任何投资建议。币圈波动大,请独立判断、严格止损。

同类文章推荐