一、配对交易概述
1.1 什么是配对交易
配对交易,说白了就是找两只走势相似的股票。
一只涨了,另一只没跟上,我就做空涨的那只,做多没跟上的那只。等它们价格回归正常,两边一平仓,赚的就是差价。
嗯,听起来是不是有点像套利?没错,它本质上就是一种市场中性策略。
我刚开始做量化那会儿,总觉得这玩意儿太简单。后来踩过几次坑才明白——简单背后藏着不少门道。
核心思想:两只相关性高的资产,价格差会围绕某个均值波动。偏离大了,就会回归。
1.2 配对交易的历史与哲学基础
配对交易最早可以追溯到20世纪80年代。
当时华尔街有一群量化天才,比如摩根士丹利的量化团队。他们发现,有些股票天生就是"双胞胎"——比如可口可乐和百事可乐,走势几乎一模一样。
如果某天可口可乐突然涨了5%,百事只涨了1%,他们就做空可口可乐,做多百事。等两者价差回归,两边都赚钱。
这背后的哲学是什么?
其实就是均值回归思想。金融市场里,价格短期会偏离,但长期一定会回归合理区间。配对交易赌的就是这个"回归"。
我记得2015年A股大波动那会儿,很多配对策略都失效了。为什么?因为市场情绪太极端,价差偏离后根本不回归,反而越走越远。所以啊,配对交易不是万能的,它需要一个相对理性的市场环境。
1.3 配对交易的核心逻辑
配对交易的逻辑链条其实很清晰:
- 找配对——找到两只相关性高的股票
- 算价差——计算它们的价格差或比值
- 设阈值——设定开仓和平仓的价差阈值
- 执行交易——价差偏离到阈值就开仓,回归就平仓
- 风险控制——设置止损,防止价差一去不返
你想想看,这其实跟做套利很像。但区别在于,套利是无风险的,配对交易是有风险的——因为价差可能不回归。
我的经验:选配对时,别只看相关系数。我见过相关系数0.9以上的两只股票,某天突然就"分手"了。为什么?因为基本面变了。所以一定要看行业、看业务、看财务结构是否相似。
1.4 盈利模式
配对交易的盈利模式,说白了就是赚"价差回归"的钱。
具体来说:
- 开仓信号:价差偏离到2倍标准差以上
- 平仓信号:价差回归到0附近
- 止损信号:价差偏离到3倍标准差以上且继续扩大
举个例子:
假设A和B两只股票,历史价差均值是10元,标准差是2元。某天价差变成14元(偏离2倍标准差),我就开仓——做空A,做多B。等价差回到10元附近,平仓,赚4元差价。
听起来很美好对吧?但现实中,价差可能从14元继续扩大到18元、20元。这时候如果不止损,亏损会很大。
避坑指南:我曾经做过一个配对,价差偏离到3倍标准差还没回归。我硬扛了两个月,最后亏了15%才割肉。后来复盘发现,那两只股票的基本面已经变了——一家公司换了CEO,战略方向完全不同了。所以啊,配对交易一定要关注基本面变化,不能只看统计指标。
1.5 配对交易的知识体系
下面这张图,是我自己整理的配对交易知识体系。你看一眼,就能明白整个框架:
这张图里,最核心的就是"行业中性化"——这也是我们这门课的重点。为什么?因为很多配对策略亏钱,就是亏在行业风险上。
举个例子:你配对了银行股和保险股,结果央行突然降息,银行股大跌,保险股大涨。你的配对策略两边都亏——因为行业风险没对冲掉。
行业中性化,就是要把这种行业层面的风险剔除掉,让配对策略只赚"价差回归"的钱。
1.6 一个简单的配对交易示例
下面我用Python写一个最简单的配对交易逻辑。别担心,代码不难:
# 简单的配对交易示例
import numpy as np
# 假设两只股票的历史价格
stock_a = np.array([100, 102, 101, 103, 105, 104, 106])
stock_b = np.array([50, 51, 50.5, 51.5, 52.5, 52, 53])
# 计算价差
spread = stock_a - 2 * stock_b # 假设对冲比例是1:2
# 计算均值和标准差
mean_spread = np.mean(spread)
std_spread = np.std(spread)
# 设定阈值
upper_threshold = mean_spread + 2 * std_spread
lower_threshold = mean_spread - 2 * std_spread
print(f"价差均值: {mean_spread:.2f}")
print(f"价差标准差: {std_spread:.2f}")
print(f"上阈值: {upper_threshold:.2f}")
print(f"下阈值: {lower_threshold:.2f}")
# 判断开仓信号
current_spread = spread[-1]
if current_spread > upper_threshold:
print("做空A,做多B")
elif current_spread < lower_threshold:
print("做多A,做空B")
else:
print("不开仓,等待价差回归")
这段代码虽然简单,但已经包含了配对交易的核心逻辑。实际项目中,你还需要考虑交易成本、滑点、持仓时间等因素。
我的建议:刚开始做配对交易,别急着上实盘。先用历史数据回测,看看你的策略在不同市场环境下的表现。我见过太多人,回测曲线漂亮得不行,一上实盘就亏钱。为什么?因为回测时没考虑交易成本和滑点。
1.7 配对交易的适用场景
配对交易不是万能的。它适合:
- 震荡市:价格来回波动,价差容易回归
- 高流动性:股票流动性好,开平仓成本低
- 同行业:两只股票业务相似,基本面联动性强
它不适合:
- 单边大行情:比如牛市里,所有股票都在涨,价差可能越拉越大
- 低流动性:小盘股一买就涨,一卖就跌,滑点吃掉利润
- 基本面突变:比如公司被收购、行业政策突变
嗯,说到这儿,你应该对配对交易有了一个整体的认识。下一章,我们会深入讲"行业中性化"的具体方法——这才是这门课的核心。
公众号:蓝海资料掘金营,微信deep3321