配对交易策略:用一个 Z-score 把「价差回归」变成可执行的交易信号
核心结论速览
- 配对交易策略Skill 是一个专注于两个高相关标的价差(比值)均值回归的策略框架,用 Z-score 判断价差是否偏离过度,并给出反向开仓信号。
- 核心逻辑只有三步:算比值
ratio = close_A / close_B→ 算滚动均值与标准差 → 算 Z-score 并生成多空对冲信号。 - 参数极简,仅
lookback(默认 60)、entry_z(默认 2.0)、exit_z(默认 0.5)三个,改配置即可换标的、换周期。 - 天然市场中性:A 做多则 B 做空,A、B 各占 50% 资金,规避单边行情风险。
- 依赖只有
pandas与numpy,股票(如 601318.SH / 601628.SH)与加密货币(如 BTC-USDT / ETH-USDT)都能跑。
该技能叫什么?如何一键安装 AI 技能提升开发效率?
技能中文名:配对交易策略Skill 技能英文名:配对交易策略 技能 ID:14255 技能分类:strategy(策略类)
它解决什么问题
做量化的人常常卡在同一个地方:想法很清晰——“中国平安和中国人寿价差拉开太多就该回归”“BTC 和 ETH 的比价偏离均值了该做对冲”——但从想法到可运行的信号,中间隔着一整套重复劳动:数据对齐、滚动窗口计算、Z-score 归一化、多空方向映射、平仓条件判断、边界情况处理(前期 NaN 怎么办、日期错位怎么办)。
配对交易策略Skill 把这些重复劳动固化成一个标准框架:你只需要给出两个标的代码 + 时间区间,剩下的比值计算、滚动统计、Z-score 阈值判断、多空信号生成、平仓逻辑全部由技能按约定输出。它的定位不是“又一个回测引擎”,而是把一套成熟的统计套利方法论变成即插即用的策略单元。
一键安装的思路与步骤
配对交易策略Skill 的安装遵循 AI 技能平台的通用方式,具体入口与命令以官方说明为准。整体路径如下:
第一步:确认安装前提
- 已接入支持技能(Skill)调用的 AI 编程助手或策略运行环境;
- 本地或运行环境具备 Python 环境,因为该策略的依赖为
pandas与numpy; - 已注册技能市场中 ID 为
14255的「配对交易策略」技能。
第二步:安装技能本体
在技能市场/技能管理面板中搜索技能名称「配对交易策略」或技能 ID 14255,点击安装并启用。若你的平台支持命令行安装,按平台文档提供的技能安装命令执行,具体命令以官方说明为准。
第三步:安装运行依赖
技能详情明确给出的依赖安装命令是:
pip install pandas numpy
这是唯一需要手动补齐的运行依赖,安装完成后即可进行比值与滚动统计计算。
第四步:验证是否生效
最简单的验证方式是跑一次默认配置:构造一个包含两个标的代码的 config.json(下文有可直接复制的示例),提交给技能执行。若返回的信号序列中 A 与 B 方向始终相反(A 为 0.5 时 B 为 -0.5,A 为 0 时 B 也为 0),说明技能已正常生效;若两者出现同向信号,说明配置或对齐环节有问题,需回到「常见坑」排查。
该技能的主要功能和特点
- 双标的价差建模:以
ratio = close_A / close_B作为价差代理变量,避免了价差绝对值受价格量级影响的问题,同一套参数可以跨标的复用。 - 滚动统计 + Z-score 归一化:用
ratio.rolling(lookback).mean()与.std()计算动态均值与波动,再算z = (ratio - mean) / std。相比固定阈值,Z-score 会随市场波动自适应,牛熊环境下判断标准不漂移。 - 双向均值回归信号:
Z < -entry_z判定比值过低 → 做多 A、做空 B;Z > +entry_z判定比值过高 → 做空 A、做多 B;|Z| < exit_z判定已回归均值 → 平仓离场。开仓、持仓、平仓三段式逻辑完整。 - 强制多空对冲结构:A 与 B 的信号天然相反,从根本上杜绝“两边同向”这种伪配对交易,保证策略始终是市场中性敞口。
- 等权资金分配:A、B 各占 50% 资金,不做精细对冲比率(beta 中性)计算——这是刻意的简化,让策略更容易理解与复现,代价是对冲不完全对称(见下文注意事项)。
- 参数极简、易调优:只有三个可调参数,网格搜索成本低,不容易过拟合。
- 多市场数据源适配:配置中通过
source字段切换数据源,示例覆盖tushare(A 股)与okx(加密货币),同一套信号逻辑跨资产类别通用。 - 明确的信号约定:A 腿
0.5= 做多、-0.5= 做空、0= 空仓;B 腿方向与 A 相反。输出格式统一,方便直接接入回测或下单模块。
和普通工具比强在哪:用 pandas 手写这段逻辑并不难,难的是每次都记得处理日期对齐、前期 NaN、方向映射这些细节。这个技能把这些“默认正确”的部分固化下来,让你把注意力放在“选哪两个标的”这个真正决定收益的问题上。
如何使用该技能?
步骤 1:准备运行环境与依赖
pip install pandas numpy
确认 pandas、numpy 可正常导入。
步骤 2:选定一对高相关标的
配对交易的前提是两个标的存在稳定的经济联系:同行业公司(如保险板块的两只龙头)、上下游、同一指数的成分股,或者加密市场中的 BTC/ETH。技能详情中的示例即为同一行业的两只标的:601318.SH 与 601628.SH。
步骤 3:编写 config.json
A 股示例(可直接复用):
{
"source": "tushare",
"codes": ["601318.SH", "601628.SH"],
"start_date": "2023-01-01",
"end_date": "2024-12-31",
"initial_cash": 1000000,
"commission": 0.001,
"extra_fields": null
}
加密货币示例:
{
"source": "okx",
"codes": ["BTC-USDT", "ETH-USDT"],
"start_date": "2024-01-01",
"end_date": "2024-12-31",
"initial_cash": 1000000,
"commission": 0.001,
"extra_fields": null
}
关键约束:codes 数组长度必须正好为 2。第一个是 A 腿(leg1),第二个是 B 腿(leg2),顺序会决定信号的符号方向,改顺序等于把多空方向整体对调。
步骤 4:提交策略执行
通过所在平台的策略运行入口提交该配置(具体命令或按钮入口以官方说明为准),技能会按 lookback 窗口滚动计算 Z-score 并输出信号序列。
步骤 5:读取并理解输出
以默认参数(lookback=60、entry_z=2.0、exit_z=0.5)为例,你会得到两条方向相反的信号序列:
| 场景 | A 腿信号 | B 腿信号 | 含义 |
|---|---|---|---|
| 比值过低(Z < -2.0) | 0.5(做多) | -0.5(做空) | 赌比值回升 |
| 比值过高(Z > +2.0) | -0.5(做空) | 0.5(做多) | 赌比值回落 |
| 已回归(|Z| < 0.5) | 0(空仓) | 0(空仓) | 平掉双腿 |
| 窗口未填满 | 0 | 0 | 前期 Z 为 NaN,信号填 0 |
步骤 6:按需调参
lookback(默认 60):调大 → 均值更稳定、信号更少更保守;调小 → 对近期偏离更敏感,但更容易被噪声触发。entry_z(默认 2.0):调大 → 只做极端偏离,交易次数下降、单次赔率上升;调小 → 交易频繁、成本上升。exit_z(默认 0.5):决定“回归到什么程度算回归”,调大 → 更早离场、持仓时间短;调小 → 更贴近均值、但可能错过反转。
步骤 7:务必检查的四个坑
codes只能有 2 个标的,多一个少一个都不行;- 两个标的的日期索引必须对齐(用 inner join),否则比值会算错;
lookback窗口填满之前 Z-score 为NaN,信号需按 0 处理;- 绝不能给 A、B 生成同向信号——配对交易的本质就是多空对冲。
另外需要清醒认识一点:该技能采用等权分配,A、B 各 50% 资金,不做精确对冲比率计算。如果两个标的波动率差异很大(例如一个日波动 1%、一个日波动 5%),等权配置会带来残余的净敞口,这不是 bug,而是框架的明确取舍。
同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| 配对交易策略Skill(ID 14255) | 专注双标的价差均值回归的策略单元 | 比值建模、滚动 Z-score、双向对冲信号、三段式开平仓 | 低:安装技能 + pip install pandas numpy,配置 6 个字段即可跑 |
快速验证配对想法、教学演示、市场中性策略原型 | 优势:逻辑透明、参数少、天然多空对冲、跨股票/加密资产通用;不足:仅等权分配不做对冲比率优化、固定只支持两个标的 |
| 手工编写 pandas 脚本 | 自研实现 | 完全自定义 | 中:需自行实现对齐、滚动统计、NaN 处理、方向映射 | 有特殊需求(自定义对冲比率、多腿配对)的进阶用户 | 优势:自由度最高;不足:重复造轮子,细节坑(日期错位、NaN)容易出错且难以复用 |
| 通用回测框架(如 Backtrader 等) | 通用策略回测引擎 | 事件驱动回测、多品种组合、绩效分析 | 中高:需学习框架 API 与数据接入方式,配对逻辑仍需自己写 | 完整策略研发流水线、多策略组合管理 | 优势:工程能力强、绩效指标完善;不足:学习曲线陡,配对交易的信号逻辑不在框架内置范围内 |
| 在线量化研究平台 | 云端研究 + 回测环境 | 内置数据源、在线 Notebook、可视化回测 | 低到中:注册即用,但受平台数据与算力约束 | 无本地环境、想快速拿数据做验证的用户 | 优势:免部署、数据现成;不足:策略逻辑仍需自己实现,跨平台迁移成本高 |
怎么选:如果你的目标是“半小时内验证‘这两个标的能不能配对交易’”,配对交易策略Skill 的路径最短;如果最终要做精细的 beta 中性对冲、多腿统计套利,则需要回到自研或通用框架。两者并不冲突——常用做法是先用技能跑通逻辑、确认价差确实存在均值回归特性,再投入工程资源做精细化实现。
该技能的典型应用场景与实际体验情况
场景一:量化初学者第一次接触统计套利
角色:刚学完 pandas、想动手做策略的开发者。
痛点:教材上讲“价差回归”很清楚,但一动手就卡在滚动窗口、NaN、信号方向映射上,跑出来的结果自己都不敢信。
使用方式:直接套用示例配置,先跑 601318.SH / 601628.SH,观察 Z-score 曲线与信号序列的对应关系,再手动改 entry_z 看信号密度如何变化。
实际体验:上手难度低,配置即代码的思路省掉了大量脚手架;输出的信号约定(0.5 / -0.5 / 0)非常直观,能立刻建立“Z 值到仓位”的映射直觉。注意事项:一定要先确认两条价格序列的日期索引已对齐,否则比值会算出无意义的结果。
场景二:行业研究员验证“同板块两只股票是否可配对”
角色:覆盖某一行业的研究员或投资经理。 痛点:凭经验觉得某两只票走势同步,但“同步到什么程度、偏离多少算异常”缺乏量化依据。 使用方式:选取同行业两只标的,跑一段两年区间的数据,重点看 Z-score 突破 ±2 的频率与随后回归的速度。 实际体验:这个技能最有价值的地方不是“给你一个能赚钱的策略”,而是给你一把尺子——用历史 Z-score 分布判断这对标的的价差是“真均值回归”还是“结构性漂移”。注意事项:若两只标的在样本期内发生基本面重大变化(并购、主营业务切换),历史相关性会失效,需要分段检验。
场景三:加密市场 BTC/ETH 比价对冲
角色:加密资产交易者。
痛点:BTC 与 ETH 的强弱轮动频繁,单边持仓风险大,想用比价做相对价值交易。
使用方式:将 source 设为 okx,codes 填 ["BTC-USDT", "ETH-USDT"],其余字段照抄示例,按加密市场 7×24 交易特性适当缩短 lookback。
实际体验:同一套逻辑无缝迁移到加密资产是这套框架的亮点,ratio = BTC/ETH 的经济含义清晰。注意事项:加密市场波动远大于股票,默认 entry_z = 2.0 可能触发过于频繁,且手续费与滑点对高频开平仓的侵蚀更明显(示例中 commission 设为 0.001,实际应按交易所真实费率调整)。
场景四:教学与策略评审演示
角色:讲师、策略评审人或团队负责人。 痛点:需要向他人解释“什么叫市场中性”,纯文字描述抽象。 使用方式:现场跑一次配对策略,展示 A 腿与 B 腿信号永远一正一负,直观说明“无论大盘涨跌,我只赚价差回归的钱”。 实际体验:信号约定的强制反向设计让概念具象化,讲解成本大幅降低。注意事项:演示时要主动说明“等权分配 ≠ 完全对冲”,避免听众形成“无风险套利”的错误预期。
该技能能为用户带来的价值
1. 把策略搭建时间从「几天」压缩到「几十分钟」 传统路径下,从数据对齐到信号输出,即使熟练开发者也需要反复调试日期索引、滚动窗口、NaN 填充、方向映射这些琐碎环节。该技能把这些环节全部封装,你只需要写一个 6 字段的 JSON,剩下的交给框架,时间成本几乎全部转移到“选标的研究”这个真正产生价值的部分。
2. 用标准范式降低犯低级错误的概率 技能详情里列出的四个“常见坑”(标的数必须为 2、日期必须 inner join 对齐、前期 NaN 填 0、禁止同向信号),恰恰是手工实现时最容易踩的四个雷。把约束前置到框架层,相当于给每次实验都配了一个自动检查清单。
3. 让「市场中性」这个抽象概念变得可执行 A、B 各占 50% 资金、信号永远反向,这套强制结构让策略天然具备对冲属性。对于想摆脱“靠天吃饭”单边策略的投资者,这是一个低门槛的起点。
4. 跨资产类别的复用价值
同一套 Z-score 逻辑,source 换成 tushare 就是 A 股配对,换成 okx 就是加密比价交易。一次理解、多处复用,学习投入的边际收益很高。
5. 长期价值:作为策略研发的“第一道筛子” 在投入工程资源做精细对冲之前,先用这个框架快速筛掉那些“看起来相关、实际价差持续单边漂移”的伪配对标的组合。省下的不是写代码的时间,而是避免在错误标的上浪费的研发周期。
常见问题 FAQ
Q1:这个技能怎么安装?需要装什么依赖?
在技能市场搜索「配对交易策略」或技能 ID 14255 安装并启用(具体安装入口与命令以官方说明为准),然后执行 pip install pandas numpy 补齐运行依赖。验证方式:跑一次双标的配置,若 A、B 两腿信号始终方向相反,即为安装生效。
Q2:这个技能收费吗?
技能详情中未涉及任何定价信息,是否收费、是否有免费额度取决于你所在平台的技能市场规则,以官方说明为准。可以确定的是,运行依赖 pandas 与 numpy 均为开源免费的 Python 库。
Q3:为什么一定要正好两个标的?三个不行吗?
不行。该技能的信号逻辑建立在「A 与 B 的比值」之上,ratio = close_A / close_B 定义的是二元关系,codes 数组长度必须等于 2,第一个是 A 腿、第二个是 B 腿。三腿及以上的统计套利需要协整关系建模,超出本技能的框架范围。
Q4:为什么我的策略一直不交易?或者交易特别频繁?
大概率是参数与标的波动不匹配。一直不交易:entry_z = 2.0 对低波动标的可能过于苛刻,可适当调小,或检查 lookback 是否过大导致均值过于平滑。交易过于频繁:把 entry_z 调大、exit_z 调小,并确认 commission 按真实费率设置,避免忽略交易成本。另外请检查 codes 中的两个标的日期是否对齐,日期错位会导致比值异常从而产生大量无意义信号。
Q5:它和直接用回测框架自己写有什么区别?我该选哪个?
这个技能是专用策略单元,只做配对交易这一件事,但把这件事做对了:逻辑透明、参数少、约束明确,适合快速验证想法和教学演示。通用回测框架是通用引擎,工程能力和绩效分析更完善,但配对交易的信号逻辑需要你自己实现。实用建议:先用技能做第一道筛选,确认价差具有均值回归特性后,再决定是否投入资源做精细化自研。另外要记住,本技能采用等权 50/50 分配,不做精确对冲比率计算,若你需要 beta 中性对冲,需要在自研环节补上这一层。