第二章 套利的基本原理
一价定律:套利的基石
聊套利,绕不开一个最根本的东西——一价定律。
说白了就是:同一资产,在同一时间,不同市场上,价格应该一样。
你想想看,如果同一个苹果,左边摊位卖5块,右边摊位卖10块,傻子都知道去左边买。套利就是这个道理。只不过我们交易的不是苹果,是股票、期货、ETF这些金融产品。
我在2015年那会儿,做过一段时间的跨境ETF套利。同一只ETF,在A股市场和港股市场同时挂牌,价格经常不一样。为什么?因为两个市场的投资者情绪不同、交易时间不同、汇率波动也不同。但最终,它们必须回归到同一个合理价格——这就是一价定律在起作用。
无风险套利 vs 统计套利
套利分两种,我习惯把它们叫做「确定性的钱」和「概率性的钱」。
无风险套利
无风险套利,就是锁定利润,没有亏损的可能。听起来很美好,对吧?
举个例子:
- 某只股票在A市场报价100元
- 同一只股票在B市场报价102元
- 你在A市场买入,B市场卖出,锁定2元利润
这就是最经典的无风险套利。但现实中,这种机会转瞬即逝。我做过统计,在流动性好的市场上,无风险套利窗口平均只持续0.3到0.8秒。你手动操作根本来不及,必须靠程序。
统计套利
统计套利就不一样了。它不追求100%确定,而是追求大概率赚钱。
核心逻辑是:两个高度相关的资产,价差会围绕一个均值波动。当价差偏离均值时,你赌它会回归。
比如,贵州茅台和五粮液,历史上它们的价格走势高度相关。如果某天茅台突然大涨,五粮液没跟上,价差拉大了。这时候你可以做多五粮液、做空茅台,赌价差回归。
统计套利的关键在于:
- 找到真正相关的资产对(不是伪相关)
- 确定合理的均值回归区间
- 控制好止损
套利机会的识别
怎么找到套利机会?我总结了三步法:
- 扫描价差——实时监控两个或多个相关资产的价格差异
- 判断合理性——这个价差是暂时的,还是结构性的?
- 评估可行性——扣除交易成本后,还有没有利润空间?
举个例子,我常用的一个套利识别逻辑:
# 伪代码示例:识别ETF套利机会
def detect_arbitrage(etf_price, nav, threshold=0.005):
spread = (etf_price - nav) / nav
if spread > threshold:
print(f"溢价套利机会:溢价{spread*100:.2f}%")
# 卖出ETF,买入一篮子股票
elif spread < -threshold:
print(f"折价套利机会:折价{spread*100:.2f}%")
# 买入ETF,卖出一篮子股票
else:
print("无套利机会")
这个逻辑看着简单,但实际跑起来,你要处理的事情多了去了:实时行情、交易成本、冲击成本、最小交易单位……每一个细节都可能吃掉你的利润。
套利空间的计算
套利空间不是简单的「B价格 - A价格」。你得把各种成本算进去。
我一般用这个公式:
实际套利空间 = 理论价差 - 交易成本 - 冲击成本 - 延迟成本
来看一个具体的例子:
| 项目 | 数值 |
|---|---|
| A市场价格 | 100.00元 |
| B市场价格 | 101.50元 |
| 理论价差 | 1.50元 |
| 交易成本(双边) | 0.30元 |
| 冲击成本估计 | 0.20元 |
| 延迟成本估计 | 0.10元 |
| 实际套利空间 | 0.90元 |
你看,1.50元的理论价差,扣掉各种成本后只剩0.90元。如果资金量小,这点利润还不够塞牙缝的。但如果你有1000万资金,0.90元/股的利润,乘以交易量,就很可观了。
知识体系总览
下面这张图,是我自己梳理的套利原理知识框架。你看一眼,就能把今天讲的内容串起来:
这张图把今天讲的核心内容串起来了。从一价定律出发,分出无风险套利和统计套利两条路,再到具体的套利空间计算和机会识别。你把这个框架记在脑子里,后面讲具体策略的时候,就知道每个策略属于哪个位置了。