11. 蝶式套利识别:如何识别同一到期日不同行权价之间的套利机会
蝶式套利,说白了就是利用期权价格在行权价上的「凹凸不平」来赚钱。
我刚开始做期权量化那会儿,觉得这玩意儿挺玄乎。后来自己动手算了几次,发现其实逻辑特别简单——就是看三个行权价之间的价格关系是否合理。
什么是蝶式套利?
蝶式套利,本质上是一个做多波动率或者做空波动率的组合策略。但今天我们聊的不是策略构建,而是如何识别套利机会。
核心逻辑就一句话:
同一到期日,三个连续行权价的期权价格,必须满足某种线性关系。
如果不满足,就存在套利空间。
蝶式价差的基本公式
假设有三个行权价:K1 < K2 < K3,且等间距(比如K1=100, K2=105, K3=110)。
对于看涨期权,蝶式价差的价格为:
蝶式价差 = C(K1) - 2 * C(K2) + C(K3)
对于看跌期权,公式类似:
蝶式价差 = P(K1) - 2 * P(K2) + P(K3)
关键点来了:
- 如果蝶式价差 < 0,说明中间行权价的期权被高估了(或者两边被低估了)
- 如果蝶式价差 > 某个上限(理论上应该为0),说明中间行权价的期权被低估了
嗯,这里要注意:理论上,蝶式价差不应该为负。因为你可以通过买入蝶式组合来锁定无风险收益。
实际识别步骤
我个人习惯按以下三步走:
- 筛选连续行权价:找到同一到期日、行权价等间距的三个合约
- 计算蝶式价差:用上面公式算一下数值
- 判断套利方向:如果为负,做多蝶式(买入两边、卖出中间);如果为正且过大,做空蝶式
实战经验:
我在项目中遇到过一种情况:某只股票在财报前,中间行权价的期权被大量买入,导致蝶式价差变成-0.8。当时我算了一下,如果做多蝶式,每手能锁住0.8元的无风险收益。虽然单笔不大,但资金利用率极高。
代码示例:自动识别蝶式套利机会
下面是我常用的Python脚本片段,用来扫描全市场:
import pandas as pd
import numpy as np
def find_butterfly_arbitrage(option_chain, expiry):
"""
识别同一到期日的蝶式套利机会
option_chain: DataFrame,包含 strike, call_price, put_price
expiry: 到期日
"""
# 筛选指定到期日
chain = option_chain[option_chain['expiry'] == expiry].copy()
chain = chain.sort_values('strike')
opportunities = []
# 遍历连续三个行权价
for i in range(len(chain) - 2):
k1 = chain.iloc[i]
k2 = chain.iloc[i+1]
k3 = chain.iloc[i+2]
# 检查是否等间距
if (k2['strike'] - k1['strike']) != (k3['strike'] - k2['strike']):
continue
# 计算看涨蝶式价差
call_butterfly = k1['call_price'] - 2*k2['call_price'] + k3['call_price']
# 判断套利机会
if call_butterfly < -0.01: # 考虑交易成本
opportunities.append({
'strikes': f"{k1['strike']}/{k2['strike']}/{k3['strike']}",
'type': 'call',
'value': call_butterfly,
'action': 'BUY butterfly (long wings, short body)'
})
return pd.DataFrame(opportunities)
避坑指南
我曾经踩过的坑:
- 忽略买卖价差:理论价格和实际成交价是两码事。我建议用中间价计算,但实际交易要用对手价
- 忘记保证金:蝶式套利虽然风险有限,但保证金占用可能不低。尤其是做空蝶式时
- 流动性陷阱:有些行权价挂单很薄,你看到的价差可能瞬间消失
蝶式套利识别流程图
下面这张图是我自己总结的识别流程,你想想看,其实每一步都不复杂:
一个真实案例
我记得有一次做50ETF期权,发现某个到期日的蝶式价差是-0.35。当时我算了一下:
| 行权价 | 看涨期权价格 | 看跌期权价格 |
|---|---|---|
| 3.00 | 0.120 | 0.080 |
| 3.10 | 0.065 | 0.115 |
| 3.20 | 0.035 | 0.175 |
看涨蝶式价差 = 0.120 - 2*0.065 + 0.035 = 0.025
看跌蝶式价差 = 0.080 - 2*0.115 + 0.175 = 0.025
两个都是正数,且大于0。这说明中间行权价(3.10)的期权被低估了。这时候应该做空蝶式——卖出两边,买入中间。
小技巧:
我个人习惯同时看涨和看跌的蝶式价差。如果两者都指向同一个方向,那套利机会就更可靠。如果方向相反,说明市场可能存在其他因素(比如分红、利率等),这时候要谨慎。
总结一下
蝶式套利识别,说白了就是三个字:算差值。
你不需要复杂的数学模型,也不需要高频数据。只要把同一到期日、连续三个行权价的期权价格拉出来,套进公式算一下,机会就出来了。
嗯,最后提醒一句:别贪。蝶式套利的利润通常很薄,但胜在稳定。我见过有人为了追求大收益,把杠杆加得很高,结果一次流动性危机就爆仓了。稳扎稳打,才是长期生存之道。
公众号:蓝海资料掘金营,微信deep3321