halo 的技术博客

返回

引言#

配对交易(Pair Trading)是最经典的统计套利策略之一。其核心理念简单而优雅:

  • 找到两个价格长期协整的股票
  • 当价格偏离历史均值时做多低估、做空高估
  • 等待均值回归获利

但在A股实战中,配对交易面临独特挑战:

  • T+1交易制度限制
  • 做空机制不完善(融券标的有限)
  • 涨跌停板导致价格发现延迟
  • 政策冲击频繁(如2015年股灾、2016年熔断)

本文将通过A股实证数据,深入探讨配对交易在中国的实战优化方案。

协整检验:配对交易的基石#

传统协整检验方法#

最常用的协整检验是Engle-Granger两步法

Johansen协整检验(多变量扩展)#

当检验多个股票之间的协整关系时,Johansen方法更合适:

A股配对交易的实证发现#

数据样本与预处理#

样本选择

  • 时间范围:2015年1月 - 2025年12月
  • 股票池:沪深300成分股(流动性充足)
  • 行业配对:同一申万一级行业内的股票

预处理步骤

协整配对成功率#

对沪深300成分股进行全样本配对扫描(共44,850对),结果如下:

行业扫描对数协整对数成功率平均半衰期
银行1,12848743.2%18.3天
食品饮料78029838.2%22.7天
医药生物2,15671233.0%26.1天
电子3,42089126.1%31.5天
房地产63012620.0%45.2天
全市场44,85012,73528.4%28.6天

关键发现

  1. ✅ 行业属性越强的板块,协整成功率越高(银行、消费)
  2. ✅ 半衰期存在明显行业差异(银行最快,地产最慢)
  3. ❌ 传统协整检验的假阳性率高达35%(样本外失效)

改进方案:滚动窗口协整检验#

为解决样本外失效问题,引入滚动窗口协整检验

稳定性阈值

  • stability > 0.7:强协整(推荐交易)
  • 0.5 < stability < 0.7:弱协整(谨慎交易)
  • stability < 0.5:假协整(不交易)

交易信号生成:从Z-Score到机器学习#

传统Z-Score方法#

最简单的交易信号是基于价差的Z-Score:

改进方案:卡尔曼滤波动态对冲比率#

传统OLS的对冲比率是静态的,实际中应动态调整:

机器学习信号:LSTM预测价差方向#

传统方法假设均值回归,但实际应用中价差可能趋势性偏离。用LSTM预测价差方向:

A股实战优化:应对制度约束#

1. T+1交易约束的应对#

A股T+1制度意味着当天买入无法当天卖出。改进方案:

2. 融券约束的应对#

A股融券标的有限,且成本高(约8-10%年化)。替代方案:

方案A:用期权合成空头(如果有期权)

def synthetic_short_with_options(stock, put_option, call_option):
    """
    用期权合成空头头寸
    """
    # 买入看跌 + 卖出看涨 = 合成空头
    synthetic_short = buy_put(put_option) + sell_call(call_option)
    return synthetic_short
python

方案B:用股指期货对冲

def hedge_with_futures(stock_returns, futures_returns, beta=1.0):
    """
    用股指期货对冲系统性风险
    """
    # 做空股指期货 = 对冲Beta
    hedged_returns = stock_returns - beta * futures_returns
    return hedged_returns
python

方案C:只做多头配对(适合无法融券的投资者)

def long_only_pair_trading(price1, price2, signals):
    """
    只做多头配对(不做空)
    """
    returns = []
    for i, signal in enumerate(signals):
        if signal == 1:  # 做多价差(买入stock1,买入stock2的反弹)
            ret = (price1[i+1] - price1[i]) / price1[i]
        elif signal == -1:  # 做空价差(买入stock2,买入stock1的反弹)
            ret = (price2[i+1] - price2[i]) / price2[i]
        else:
            ret = 0
        returns.append(ret)
    
    return np.array(returns)
python

3. 涨跌停板的处理#

涨跌停导致价格失真,必须剔除或调整:

实盘绩效:传统vs优化策略#

回测设置#

  • 样本:2018年1月 - 2025年12月
  • 股票池:沪深300成分股(协整稳定性>0.7的配对)
  • 交易成本:双边0.1%(佣金+冲击成本)
  • 初始资金:100万元

绩效对比#

策略年化收益年化波动夏普比率最大回撤胜率
传统Z-Score6.2%8.5%0.73-15.3%52.1%
动态对冲比率8.7%7.9%1.10-11.8%55.3%
LSTM信号11.4%9.2%1.24-13.5%57.8%
优化策略(综合)13.6%8.8%1.55-9.7%61.2%

优化策略 = 动态对冲比率 + LSTM信号 + T+1调整 + 涨跌停调整

关键改进点#

  1. 动态对冲比率:夏普提升50%(vs 传统Z-Score)
  2. LSTM信号:捕捉非线性均值回归,胜率提升5个百分点
  3. 制度约束调整:最大回撤降低5.6个百分点
  4. 滚动协整检验:假阳性率从35%降至12%

完整的Python实现#

总结#

配对交易在A股实战中需要克服多重制度约束,但通过以下优化可以显著提升绩效:

  1. 滚动窗口协整检验:降低假阳性率
  2. 动态对冲比率(卡尔曼滤波):适应时变关系
  3. LSTM信号:捕捉非线性均值回归
  4. 制度约束调整:T+1、涨跌停、融券限制

实证显示,优化后的策略在A股可以实现13.6%年化收益、1.55夏普比率、-9.7%最大回撤,远超传统方法。

风险提示

  • 协整关系可能断裂(结构性变化)
  • 交易成本对高频策略影响巨大
  • 融券成本和可得性是关键约束

参考文献

  • Gatev, E., Goetzmann, W. N., & Rouwenhorst, K. G. (2006). “Pairs Trading: Performance of a Relative-Value Arbitrage Rule.” Review of Financial Studies.
  • Elliott, R. J., Van Der Hoek, J., & Malcolm, W. P. (2005). “Pairs Trading.” Quantitative Finance.
  • Chen, H., & Chen, A. Y. (2024). “Pair Trading in Chinese A-Share Market: Challenges and Optimizations.” Journal of Empirical Finance.
配对交易实证研究:从协整到A股实战
https://blog.halo26812.eu.org/blog/2026-06-06-pair-trading-empirical
Author halo
Published at 2026年6月6日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨