A股配对交易回测 (Pairs Trading Backtest)
功能
输入两只A股名称或代码,自动完成以下流程:
- 配对适应性评估 — 相关性分析、协整检验(Engle-Granger)、行业匹配检查
- 配对交易回测 — 以60日交易均线为均值基准,过去一年的均值回复策略回测
- 绩效报告 — 初始资金100万,不含交易费用,计算年化回报率
- 操作建议 — 对当前价差状况给出交易建议
使用方法
@skill:pairs-trading 贵州茅台 五粮液
@skill:pairs-trading 600519 000858
输出
- 交互式HTML报告,包含:
- 交易策略详解 — 完整的策略逻辑说明(价差构建、均值计算、建仓/平仓信号、资金分配)
- 配对适应性评估结果(相关性、协整检验)
- 归一股价走势图 — 两只股票归一化对比,标注每次建仓、平仓时间点
- 对数价差与交易信号图 — 价差 + 60日均线 + ±2σ交易带 + z-score + 建仓/平仓标注
- 资产净值曲线
- 绩效指标(年化回报、最大回撤、胜率、夏普比率等)
- 当前状况与操作建议
依赖
- akshare: A股行情数据
- numpy/pandas: 数据处理
- scipy: 统计检验
- statsmodels: 协整检验
- plotly: 交互式图表
策略说明
价差构建
对两只股票的收盘价取对数 log(P_A)、log(P_B),用普通最小二乘法(OLS)回归得到对冲比率 β:
价差 = log(P_A) - (α + β·log(P_B))
均值基准
以 60日移动均线 作为价差的均值基准,计算60日滚动标准差 σ:
- 上轨 = 均线 + 2σ
- 下轨 = 均线 - 2σ
建仓信号
计算 z-score = (价差 - 均线) / σ:
- z > +2.0:价差偏高 → 做多 B(便宜),融券做空 A(贵)
- z < -2.0:价差偏低 → 做多 A(便宜),融券做空 B(贵)
平仓信号
z-score 回归穿过零轴时平仓(价差回归均值时获利了结)。回测期末仍有持仓则强制平仓。
资金分配
- 100% 资金用于做多,多头持仓作为融券做空的抵押品
- 做空端等额匹配(与多头同等金额)
- 空仓期间资金按货币基金年化 2% 计算收益
策略性质
配对交易是一种统计套利策略。基于两只高度相关股票的价差具有均值回复特性:当价差偏离历史均值时建仓,待回归时平仓获利。不对市场方向做判断,收益来源于相对价值的收敛。
Scan to join WeChat group