第二章 套利定价原理:从一价定律到均值回归
各位同学,今天我们来聊聊套利定价的核心逻辑。说实话,很多新手一上来就盯着价差图看,觉得涨了就卖、跌了就买,这其实有点本末倒置。我个人习惯是,先搞清楚定价原理,再动手写代码。你想想看,连价格怎么来的都不清楚,怎么敢说自己在做套利?
2.1 一价定律:套利的基石
一价定律,说白了就是「同一个东西,不能有两个价」。比如同一吨螺纹钢,在上海卖3500,在杭州卖3520,那理论上就有人从上海买、杭州卖,赚这20块差价。我在项目中遇到过不少新手,觉得这太简单了,结果忽略了交割成本、运输费用,最后算下来反而亏了。
核心要点:一价定律成立的前提是——无摩擦市场。现实中,交易费用、资金成本、政策限制都会造成价差。我们做套利,本质上就是在找这些「摩擦」带来的机会。
嗯,这里要注意:一价定律不是万能的。比如豆粕和菜粕,虽然都是蛋白饲料,但替代性没那么强,价差波动就大得多。我建议你把它当作一个「理想基准」,而不是绝对真理。
2.2 持有成本模型:期货定价的锚
期货价格怎么来的?其实很简单:现货价格 + 持有成本。持有成本包括仓储费、保险费、资金利息,再减去便利收益。我刚开始做量化时,总喜欢用复杂的统计模型,后来发现,持有成本模型才是最基本的锚。
公式长这样:
F = S * e^(r + c - y) * T
其中:
- F:期货价格
- S:现货价格
- r:无风险利率
- c:仓储成本率
- y:便利收益率
- T:到期时间
举个例子,假设螺纹钢现货3500元/吨,年化资金成本5%,仓储费2%,便利收益1%,3个月后到期的期货理论价格应该是:
F = 3500 * e^(0.05 + 0.02 - 0.01) * 0.25
= 3500 * e^(0.015)
≈ 3500 * 1.0151
≈ 3552.85
如果实际期货价格是3580,那就说明市场偏贵了,可以考虑做空期货、做多现货。我曾经用这个模型抓过几次铜的期现套利机会,效果还不错。
个人经验:持有成本模型对工业品(铜、螺纹钢、PTA)比较准,对农产品(豆粕、玉米)就差一些,因为农产品有季节性、天气等不可控因素。我建议你针对不同品种,分别校准参数。
2.3 统计套利基础:从确定性到概率
一价定律和持有成本模型,讲的是「确定性」的套利。但现实中,很多价差并不严格收敛,而是呈现统计规律。这就引出了统计套利。
统计套利的核心理念是:价差虽然不严格等于某个值,但会在某个范围内波动,偏离太远就会回归。说白了,就是赌概率。
具体步骤我总结为三步:
- 找配对:找到两个相关性高的品种,比如螺纹钢和热卷、豆油和棕榈油
- 算价差:用回归或协整确定价差的均衡关系
- 设阈值:当价差偏离到一定程度时开仓,回归时平仓
举个例子,螺纹钢和热卷的价差,历史均值在100-150之间。如果价差突然扩大到250,我就做空螺纹、做多热卷,赌价差会缩小。我在项目中遇到过几次极端行情,价差偏离到300以上,但最终还是回归了——当然,也有没回归的时候,所以止损很重要。
避坑指南:我曾经犯过一个错误——只看相关性,没做协整检验。两个品种可能短期相关,但长期走势背离,这种配对做统计套利就是找死。记住:相关性 ≠ 协整性。
2.4 均值回归理论:套利的灵魂
统计套利能成立,背后靠的就是均值回归。你想想看,为什么价差不会无限扩大?因为市场有套利者,有基本面约束,有资金流动。这些力量最终会把价差拉回合理区间。
均值回归的数学表达,常用的是Ornstein-Uhlenbeck过程:
dX = θ(μ - X)dt + σdW
其中:
- X:当前价差
- μ:长期均值
- θ:回归速度(越大回归越快)
- σ:波动率
- dW:随机扰动
这个公式告诉我们三件事:
- 价差偏离均值越远,回归的「拉力」越大
- 回归速度θ决定了策略的持仓周期
- 波动率σ决定了开仓阈值应该设多宽
我习惯用这个模型来估算策略的夏普比率。如果θ大、σ小,那策略就很稳;反之,如果θ小、σ大,那就要小心了,可能等很久都不回归。
核心观点:均值回归不是万能的。趋势行情里,价差可能长期不回归。我建议你搭配趋势过滤指标,比如当两个品种都在单边上涨时,暂时别做套利。
2.5 知识体系总览
下面这张图,是我自己梳理的套利定价原理框架。你可以把它当作一个思维导图,方便理解各概念之间的关系。
这张图把四个核心概念串起来了。从左到右,从确定性到概率,从理论到实践。我个人建议你按这个顺序学习,先搞懂一价定律和持有成本,再深入统计套利和均值回归。
2.6 本章小结
好了,这一章的内容就这些。总结一下:
- 一价定律是套利的理论基础,但现实中要考虑摩擦成本
- 持有成本模型给出了期货的合理定价,是期现套利的依据
- 统计套利把套利从确定性扩展到概率领域,更灵活但也更复杂
- 均值回归是统计套利能赚钱的根本原因,但要注意趋势行情的干扰
下一章我们会讲如何用Python实现这些理论,包括数据获取、价差计算、回测框架搭建。到时候我会分享一些我踩过的坑,比如数据对齐问题、滑点处理等等。嗯,今天就到这里,有问题随时交流。