19. 基差交易中的期权策略:期权平价关系、合成期货、基差与隐含波动率的关系
期权这东西,很多人觉得复杂。其实说白了,期权就是一份「选择权」的合同。但真正让期权在基差交易中大放异彩的,是它和期货之间那种精妙的数学关系。今天我们就来聊聊这个。
19.1 期权平价关系:最基础的定价锚
先问一个问题:为什么期权和期货之间能扯上关系?
答案就在期权平价关系(Put-Call Parity)里。这个公式很简单:
C + K * e^(-rT) = P + S
其中:
- C:看涨期权价格
- P:看跌期权价格
- K:行权价
- S:标的资产现价
- r:无风险利率
- T:剩余到期时间
这个公式告诉我们一件事:同一行权价、同一到期日的看涨和看跌期权,它们的价格必须满足这个等式。如果不满足,就存在套利机会。
核心理解:期权平价关系本质上是「无套利条件」。它把期权价格和标的资产价格绑定在一起,就像一根看不见的绳子。
我在项目中遇到过这样的情况:某个品种的期权市场突然出现大幅偏离平价关系的情况。当时我第一反应不是去套利,而是去检查是不是有分红、拆股或者流动性问题。嗯,很多时候看似是套利机会,其实是数据错误。
19.2 合成期货:用期权复制期货头寸
既然期权平价关系成立,那我们就可以用期权来「合成」一个期货头寸。怎么做?
合成多头期货:买入看涨期权 + 卖出看跌期权(同一行权价、同一到期日)
合成空头期货:卖出看涨期权 + 买入看跌期权(同一行权价、同一到期日)
你想想看,这个组合的损益图,和直接持有期货几乎一模一样。唯一的区别是,合成期货需要支付/收取权利金,而期货本身是保证金交易。
实战技巧:当合成期货的价格和实际期货价格出现偏差时,就产生了基差套利机会。比如合成多头期货比实际期货便宜,那就可以买入合成期货、卖出实际期货,锁定无风险利润。
我曾经用这个策略在股指期货上做过几次。说实话,这种机会现在越来越少了,因为市场效率提高了。但在一些流动性较差的品种上,偶尔还能捡到漏。
19.3 基差与隐含波动率的关系
这里有个关键点:基差的变化会直接影响期权的隐含波动率。
为什么?因为期权定价模型(比如Black-Scholes)里,标的资产价格是输入参数之一。当基差扩大或缩小时,标的资产的远期价格发生变化,期权的内在价值和时间价值都会跟着变。
具体来说:
- 正向基差(期货升水):看涨期权会更贵,看跌期权会更便宜。因为市场预期未来价格上涨。
- 负向基差(期货贴水):看跌期权会更贵,看涨期权会更便宜。因为市场预期未来价格下跌。
但这里有个陷阱:隐含波动率本身也会受基差影响。当基差剧烈波动时,期权市场参与者会调整对未来的不确定性预期,导致隐含波动率曲线发生扭曲。
避坑指南:我曾经在原油期权上吃过亏。当时基差从升水快速转为贴水,我按照历史波动率去定价期权,结果隐含波动率飙升,我的对冲策略直接失效。后来我学乖了:做基差交易时,一定要同时监控隐含波动率的期限结构。
19.4 实战框架:如何捕捉基差与期权的套利机会
我个人习惯用以下步骤来识别机会:
- 计算理论基差:根据现货价格、利率、仓储成本等,算出期货的合理价格。
- 比较合成期货价格:用期权平价关系算出合成期货的价格。
- 寻找偏差:如果实际期货价格和合成期货价格偏差超过交易成本,就存在套利机会。
- 检查隐含波动率:确保偏差不是由隐含波动率异常引起的。
- 执行交易:买入便宜的、卖出贵的,锁定利润。
下面这张图展示了整个逻辑框架:
19.5 一个简单的Python示例
下面是我写的一个小工具,用来检测期权平价关系的偏离:
import numpy as np
def check_put_call_parity(call_price, put_price, spot, strike, rate, time_to_maturity):
"""
检查期权平价关系是否成立
返回:偏离值(正数表示看涨期权被高估)
"""
lhs = call_price + strike * np.exp(-rate * time_to_maturity)
rhs = put_price + spot
deviation = lhs - rhs
return deviation
# 示例数据
call = 5.20
put = 3.80
spot = 100.0
strike = 100.0
rate = 0.03
t = 0.5 # 半年到期
dev = check_put_call_parity(call, put, spot, strike, rate, t)
print(f"平价关系偏离值: {dev:.4f}")
if abs(dev) > 0.10: # 假设交易成本为0.10
print("存在套利机会!")
if dev > 0:
print("卖出合成期货,买入实际期货")
else:
print("买入合成期货,卖出实际期货")
else:
print("价格合理,无套利机会")
小提示:实际交易中,别忘了考虑保证金成本、流动性冲击和滑点。我一般会把交易成本设得比理论值高20%-30%,给自己留点安全边际。
19.6 总结一下
期权平价关系是基差交易中一个非常强大的工具。它让我们能用期权来「复制」期货头寸,从而发现定价偏差。但要注意,隐含波动率的变化会干扰这个关系,所以一定要把波动率分析纳入你的工具箱。
说白了,做基差交易不是简单地找价差,而是要理解价差背后的驱动因素。期权给了我们更多维度去捕捉这些机会,但也带来了更多复杂性。嗯,这就是交易的魅力所在。