4、配对交易策略(二):交易信号的生成与执行
上一章我们聊了怎么找配对,怎么算价差。但找到一对好基友只是第一步,真正赚钱的关键在于——什么时候进场,什么时候跑路。
说白了,信号生成就是给策略装上一双眼睛。我见过太多人,模型建得漂漂亮亮,结果信号处理得一塌糊涂,最后亏得莫名其妙。嗯,今天我们就来把这双眼睛装好。
4.1 交易信号的生成:布林带与Z-score
信号生成的核心逻辑其实很简单:价差偏离均值太多,我们就赌它会回归。但「太多」是多少?这就需要量化工具了。
4.1.1 布林带法
布林带大家应该不陌生。它由三条线组成:中轨(均值)、上轨(均值+ k倍标准差)、下轨(均值- k倍标准差)。
在配对交易里,我们直接把布林带套在价差序列上:
- 上轨:价差均值 + 2倍标准差
- 下轨:价差均值 - 2倍标准差
- 中轨:价差均值(通常用滚动窗口计算)
我个人习惯用20日滚动窗口。为什么是20?因为一个月大概20个交易日,刚好能捕捉到中短期的均值回归特征。当然,你也可以用30、60,看你的交易频率。
- 价差突破上轨 → 做空价差(卖强买弱)
- 价差跌破下轨 → 做多价差(买强卖弱)
- 价差回归中轨 → 平仓
这里有个坑,我踩过。布林带的参数k(标准差倍数)很敏感。k=2是教科书推荐值,但实际中我建议你先回测一下。有些品种波动大,k=2会频繁触发假信号;波动小的品种,k=2又可能错过机会。我曾经在股指期货配对上一开始用k=2,结果一个月被来回打脸8次……后来改成k=2.5,效果好了不少。
4.1.2 Z-score阈值法
Z-score其实就是标准化的价差。公式很简单:
Z = (当前价差 - 价差均值) / 价差标准差
Z-score的好处是——它把不同品种的价差都映射到同一个尺度上。你想想看,股票A和股票B的价差可能是0.5元,股票C和D的价差可能是50元,直接比没法比。但Z-score一标准化,大家就都在同一个坐标系里了。
我的经验是,Z-score阈值一般设在±1.5到±2.5之间。具体怎么选?
| 阈值 | 特点 | 适用场景 |
|---|---|---|
| ±1.5 | 信号多,但假信号也多 | 高波动品种,短线交易 |
| ±2.0 | 平衡型,经典配置 | 大多数配对,中线交易 |
| ±2.5 | 信号少,但胜率高 | 低波动品种,长线交易 |
4.2 开仓与平仓规则
信号有了,接下来就是怎么执行。开仓平仓的规则设计,直接决定了你的策略是赚钱还是交学费。
4.2.1 开仓规则
开仓的核心原则就一条:在价差偏离最极端的时候进场。但「最极端」怎么定义?
我常用的开仓规则:
- 阈值触发开仓:Z-score超过±2.0时开仓。这是最直接的方式。
- 连续突破开仓:价差连续N天(比如2天)突破阈值才开仓。这样可以过滤掉一些单日脉冲。
- 动量确认开仓:价差突破阈值后,再等一个反向的K线确认。比如价差突破上轨,但第二天收了一根阴线,说明回归力量开始出现。
我个人比较喜欢第二种。为什么?因为第一种太容易被打止损了。你想想看,价差突然拉一下又回来,你冲进去,结果它又拉一下……嗯,这种滋味不好受。
4.2.2 平仓规则
平仓比开仓更重要。会买的是徒弟,会卖的是师傅。
平仓规则通常有三种:
- 回归平仓:价差回到中轨(Z-score=0)时平仓。这是最基础的。
- 反向阈值平仓:价差从极端回归到某个中间位置(比如Z-score从2.0回到0.5)就平仓。这样可以锁定部分利润,避免坐过山车。
- 时间平仓:持仓超过N天(比如10天)强制平仓。防止价差长期不回归,占用资金。
4.3 止损与资金管理
止损和资金管理,是量化交易的保命符。没有这两样,再好的策略也是空中楼阁。
4.3.1 止损设置
配对交易的止损,和普通单边交易不太一样。我们赌的是价差回归,所以止损应该基于价差的「异常扩大」来设置。
常用的止损方法:
- 固定倍数止损:比如Z-score超过±3.0时止损。这意味着价差已经偏离均值3个标准差,回归的概率大大降低。
- ATR止损:用价差的平均真实波幅(ATR)来设置止损。比如止损位 = 开仓价差 ± 2倍ATR。
- 硬止损:固定亏损比例,比如每笔交易亏损不超过总资金的1%。
我曾经犯过一个错误:在螺纹钢和热卷的配对交易中,我用了固定倍数止损(Z-score=3.0),结果有一次价差直接冲到3.5,我止损了,但第二天它就回来了……你说气不气人?后来我改成ATR止损,效果好了很多。因为ATR能动态适应市场波动,不会因为一个极端值就被打掉。
4.3.2 资金管理
资金管理说白了就是:每次下多少注。
我推荐一个简单实用的方法——凯利公式的简化版:
仓位比例 = 胜率 - (1 - 胜率) / (盈亏比)
举个例子:如果你的策略胜率是60%,盈亏比是1.5,那么:
仓位比例 = 0.6 - (1 - 0.6) / 1.5 = 0.6 - 0.267 = 0.333
也就是说,每次用总资金的33%来开仓。当然,实际中我会保守一点,取一半,也就是16.5%。
4.4 核心逻辑流程图
说了这么多,我画了一张图,把整个信号生成和执行的逻辑串起来。你看一眼就明白了:
这张图把整个流程串起来了。从输入价差序列开始,到计算统计量,再到判断是否开仓,最后到持仓监控和平仓。每一步都有明确的逻辑判断,这就是量化交易的好处——不靠感觉,靠规则。
4.5 避坑指南
最后,分享几个我踩过的坑,希望能帮你省点学费:
- 不要过度优化参数:我曾经为了追求回测曲线好看,把布林带参数调了又调,结果实盘一跑就崩。记住,参数越少越稳健。
- 注意滑点:配对交易通常需要同时买卖两只股票,滑点成本比单边交易高。我一般会在回测中加0.1%的滑点,这样更接近实盘。
- 警惕价差突变:有些配对平时很乖,但遇到分红、拆股、并购等事件,价差会突然跳变。这时候你的模型就失效了。我建议定期检查配对的相关性,一旦发现异常,立即暂停交易。
好了,这一章的内容就到这里。信号生成和执行是配对交易的核心环节,把这块做扎实了,后面的路就好走了。
公众号:蓝海资料掘金营,微信deep3321