关键词:配对交易、统计套利、协整性、加密货币、均值回归、高频策略、对冲比率、z-score
配对交易被誉为“市场中性策略之王”。从 1980 年摩根士丹利的试水,到如今数字货币圈的高频战场,它的核心故事始终如一——在差价扩大时买入低估、卖出高估,并在均值回归时兑现利润。这份万字指南将手把手拆解原理、盘点跨市场表现,最后奉上可直接跑在真实行情的加密货币实战代码。
配对交易的“人物档案”
- 诞生时间:1980 年
- 出生地:摩根士丹利(Morgan Stanley)
- 首例操盘人:Nunzio Tartaglia 及其团队
- 精神门徒:传奇作手杰西·利弗莫尔——早在计算机诞生前就凭肉眼发现同类资产价差并下单盈利。
- 策略血统:统计套利(Statistical Arbitrage)|= 市场中性 |= beta 接近 0。
一道公式看懂配对交易
期望收益 = Δ(价差) · 杠杆 · 胜率 – 交易费用价差扩大就视为定价失序,做空高估+做多低估;价差收敛便平仓收割。
——关键点:我们从不预测方向,只押注均值回归。
配对交易三步走:确保稳、准、狠
1. 筛标的:协整性 > 相关性
- 相关性仅看走势是否同步,容易“纸面鸳鸯”。
- 协整性检验两者长期差值是否均值回归,才是真 CP。
常用方法
- Engle-Granger 协整检验
- Johansen 协整检验
- 最小距离法 (Distance Metric)
Tip:p-value 小于 0.05 即可初步判定存在协整。
2. 建模型:市场中性 + 均值回归最大化
- 对冲比率 β = 价差的回归系数
- 过滤波段:用布林带、卡尔曼滤波或 z-score 控制噪声。
- 风险管理:动态仓位、持仓时间上限、止盈止损层级。
3. 定策略:微观结构决定成败
- 盘口深度:检测挂单稀疏度,防踩踏
- 资金费率:永续合约杠杆注意资金成本
- 交叉保证金:同一交易所多币对冲,降低滑点
市场地图:四处皆机会,细节大不同
权益 & ETF
- 优:标的众多、换手率稳定、数据干净
- ⚠️:融券卖空难、融券费用高(尤其在新兴市场)
期货市场
- 多空双向自由,杠杆与合约规模透明
- 举例:COMEX 黄金 vs COMEX 白银,一个合约 100 盎司 vs 5,000 盎司,需用隐含波动率换算等市值对冲比率。
外汇市场
- 原生多空,但小众货币对(如 AUD/CAD)流动性差
- 必杀技:合成配对
同时做 AUD/USD + USD/CAD,将两条主流对合成 AUD/CAD 的价差。
加密货币市场
- 大量小周期无效性,套利空间肉眼可见
- 24×7 不休息,API 速率够快即可反复刷
- 中心化风控:所有仓位属于同一交易所,单账号即可完成多空。
加密货币实战:BTC 与 XMR 的 30 分钟级别套利
本节你将看到从数据抓取 → 协整检验 → 策略脚本 → 参数调优的完整闭环。
数据准备
时间范围:2018-01-01 至 2018-05-31
来源:Bitfinex 现货行情,收录 BTC、ETH、LTC、XMR、NEO、XRP、ZEC 七只主流币。
协整性快筛
import statsmodels.tsa.stattools as ts
pairs = [('BTCUSD', 'XMRUSD')]
for a1, a2 in pairs:
p = ts.coint(df[a1], df[a2])[1]
print(a1, '&', a2, 'p-value =', p)运行结果: BTCUSD & XMRUSD p-value = 0.0216 < 0.05 → 通过协整检验,晋级下一步。
策略核心代码
策略说明:
- 窗口 144 根 30 分钟线(≈ 3 天)
- 开仓 z-score 阈值 ±1.96(对应 95% 置信区间)
- 平仓 z-score 阈值 ±0.25(迅速落袋)
- 最小价差 ≥ 0.01,覆盖手续费与滑点
伪代码 简写:
# ——初始化——
context.A = symbol('xmr_usd')
context.B = symbol('neo_usd')
context.n, context.tf = 144, '30T'
context.z_in, context.z_out = 1.96, 0.25
context.leverage = 1.0# ——循环逻辑——
A_price = data.history(A, 'price', bar_count=n, frequency=tf)
B_price = data.history(B, 'price', bar_count=n, frequency=tf)
spread = zscore(A_price.pct_change(), B_price.pct_change())
if 空仓 and abs(spread) > 0.01:
if spread > z_in:
# 做空 A,做多 B
order_target_percent(A, -0.5 * leverage)
order_target_percent(B, 0.5 * leverage)
if spread < -z_in:
# 做多 A,做空 B
order_target_percent(A, 0.5 * leverage)
order_target_percent(B, -0.5 * leverage)
if 有仓 and abs(spread) <= z_out:
order_target_percent(A, 0)
order_target_percent(B, 0)参数微调技巧
| 变量 | 作用 | 向左 | 向右 |
|---|---|---|---|
| z_in 阈值 | 开仓严苛度 | 激进(易触发) | 保守(信号少) |
| z_out 阈值 | 平仓敏感度 | 快出(低回撤) | 慢出(吃满波) |
| min_spread | 过滤微小差 | 更低(更多单) | 更高(牺牲胜率保盈亏比) |
使用网格搜索或贝叶斯优化,在保证样本外 Sharpe ≥ 1.5 的前提下落地实盘。
FAQ:三分钟扫清疑惑
Q1:没有量化经验,单凭肉眼能玩转配对交易吗?
A1:短期看偶尔能碰运气,但长期盈利需依赖严明纪律+自动化脚本,手工盯盘最多作为策略校验。
Q2:现货 vs 永续合约,哪个更适合做配对?
A2:追求简单省利息就选现货,但对冲比率常受币本位波动干扰;永续可灵活杠杆,但要把资金费率纳入成本。
Q3:p-value 合格后就能高枕无忧?
A3:否。协整性只在样本内成立,行情突变或极端监管新闻都会打破均衡,实时指标监控和止损仍是生命线。
Q4:我需要多少起步资金?
A4:现货最轻入场门槛约 1000 USDT;永续合约若杠杆 5 倍,200 USDT 就能跑微型仓位,先练手再放大。
Q5:为什么有时价差收敛后又再度发散,导致浮亏?
A5:统计套利并非无风险套利,长期一定会遇到“ 协整崩断”。降低单笔容忍仓位、设置最大回撤 5% 止损是通行做法。
总结 & 展望
配对交易把“我不知道市场方向,但我知道相对定价会修复”的哲学落到了日常可量化的交易动作里。无论你是股票玩家还是加密货币猎人,只要能:
- 用科学方法筛选出真协整对
- 用纪律模型严格执行
- 用风控与资金费率兜底
就能把古老的均值回归智慧,拆解成今日的稳健现金流。下次,当你盯盘看到两条几乎同步的币价曲线突然“岔开”,别忘了——机会可能就在你的一键多空之间。