
量化百科|交易策略:卖出平价跨式期权与购买15%价外看跌期权

在量化交易领域,有许多策略旨在通过金融工具的组合来捕捉市场的波动。今天,我们将为大家详细介绍一份卖出平价跨式期权(At-the-money Straddle)与购买15%价外看跌期权(Out-of-the-money Put) 的量化交易策略。此策略不仅能够利用市场的波动性,通过期权溢价带来稳定的收益,还能通过购买期权作为保险对冲市场崩盘的风险。

1. 策略概述
该策略的核心思想是:每月卖出平价跨式期权(At-the-money Straddle),同时购买15%价外的看跌期权(Out-of-the-money Put) 进行保险。如果市场波动较大,期权溢价将提供额外的收益;而在市场大幅下跌时,15%价外的看跌期权将作为保护。
策略还会将剩余的现金用于购买标的资产(如SPY ETF),以便利用市场的长期上涨趋势。
2. 策略参数
以下是此策略的详细参数设置:
参数 | 数值 |
交易市场 | 股票(Equities) |
回测周期 | 1986 – 1995(来源论文的回测周期) |
策略信号的有效性 | 强(Confidence in anomaly’s validity) |
年化表现(几何年化) | 26% |
每月表现 | 1.94% |
重平衡周期 | 每月一次(Monthly Rebalancing) |
预计波动率 | 19% |
交易的标的数量 | 4个 |
最大回撤 | 未披露(Maximum Drawdown) |
策略复杂性 | 中等复杂(Moderately complex strategy) |
夏普比率(Sharpe Ratio) | 1.16 |
适用市场 | 全球市场(Global) |
金融工具 | 期货、期权、掉期(Futures, Options, Swaps) |
策略信号有效性说明
根据来源论文和回测结果,策略的信号有效性被评估为强,即该策略能够在多种市场条件下稳定地获得超额回报。回测结果显示,策略的年化表现为26%,表现非常稳定且具有较高的风险调整后收益。
回测周期和表现
回测时间段从1986年到1995年。回测数据显示,每月表现为1.94%,年化回报为26%,具有很强的持续性和稳定性。
预计波动率与最大回撤
预计波动率为19%,这意味着该策略在运行过程中,标的资产(例如SPY ETF)价格的波动范围可能会在19%左右波动。至于最大回撤,目前没有披露具体的数值,但可以推测,在极端市场环境下,策略的风险管理和期权保护会起到关键作用。
策略复杂性
该策略属于进阶复杂策略。虽然策略本身并不涉及复杂的高频交易或高杠杆使用,但需要对期权市场和波动率的运作机制有深入理解。
3. 策略操作流程
每月操作流程
-
1. 卖出平价跨式期权(At-the-money Straddle):每个月卖出一个到期日为1个月的平价跨式期权,即同时卖出看涨期权和看跌期权,并利用期权溢价带来收益。
-
2. 购买15%价外看跌期权(Out-of-the-money Put):在同一时期,购买一个15%价外的看跌期权,作为保险,以防市场崩盘的风险。
-
3. 投资标的资产:使用剩余的现金购买标的资产(如SPY ETF),并利用市场长期上涨的潜力。
风险管理
通过期权的溢价和15%价外看跌期权的保护,该策略能够在实现收益的同时有效控制潜在的市场风险。期权卖出部分通过捕捉市场的波动性来带来收益,而购买看跌期权则为市场暴跌提供保护,减轻潜在的损失。
4. 代码实现
以下是这份策略的部分代码实现,使用了Python和QuantConnect平台,适合量化交易策略的编写和回测。
策略初始化部分代码
def Initialize(self):
self.SetStartDate(2012, 1, 1) # 设置回测开始日期为2012年1月1日
self.SetCash(100000) # 设置初始现金为100,000
data = self.AddEquity("SPY", Resolution.Minute) # 添加标的资产,SPY是标准普尔500ETF
data.SetLeverage(5) # 设置杠杆为5倍
self.symbol = data.Symbol # 保存标的符号
option = self.AddOption("SPY", Resolution.Minute) # 为SPY添加期权数据
option.SetFilter(-20, 20, 25, 35) # 过滤期权链,选择行使价在标的价格上下20点之间,期限在25到35天之间的期权
self.last_day = -1 # 初始化一个变量来标记上次检查的日期
策略数据处理与期权选择部分代码
备注:完整代码论文复现请加入知识星球获取。
def OnData(self, slice):
# Check once a day.
if self.Time.day == self.last_day:
return
self.last_day = self.Time.day
for i in slice.OptionChains:
chains = i.Value # 获取当前期权链(即所有期权合约)
if not self.Portfolio.Invested:
# divide option chains into call and put options
calls = list(filter(lambda x: x.Right == OptionRight.Call, chains))
puts = list(filter(lambda x: x.Right == OptionRight.Put, chains))
...... # 如果期权链为空则跳过
underlying_price = self.Securities[self.symbol].Price # 获取标的资产当前价格
expiries = [i.Expiry for i in puts] # 获取所有看跌期权的到期时间
# determine expiration date nearly one month
...... # 选择离当前日期约1个月到期的期权
...... # 获取所有看跌期权的行使价格
# determine at-the-money strike
strike = min(strikes, key=lambda x: abs(x - underlying_price)) # 选择最接近标的资产价格的行使价
# determine 15% out-of-the-money strike
......# 选择15%价外的行使价
atm_call = [i for i in calls if i.Expiry == expiry and i.Strike == strike] # 获取平价看涨期权
atm_put = [i for i in puts if i.Expiry == expiry and i.Strike == strike] # 获取平价看跌期权
otm_put = [i for i in puts if i.Expiry == expiry and i.Strike == otm_strike] # 获取15%价外看跌期权
if atm_call and atm_put and otm_put:
options_q = int(self.Portfolio.MarginRemaining / (underlying_price * 100)) # 计算可购买的期权数量
# 卖出平价跨式期权
self.Sell(atm_call[0].Symbol, options_q)
self.Sell(atm_put[0].Symbol, options_q)
# 买入15%价外看跌期权
self.Buy(otm_put[0].Symbol, options_q)
# 购买标的资产
self.SetHoldings(self.symbol, 1)
备注:完整代码复现请加入知识星球获取。
5. 优势:
-
? 波动率溢价:通过卖出平价跨式期权,能够在市场波动时获得期权溢价收益。尤其在波动性较大的市场环境下,卖出期权会带来较为可观的现金流。这种波动性溢价是期权交易中非常重要的一部分,适合于捕捉市场波动带来的盈利机会。
-
? 市场保护:通过购买15%价外的看跌期权,能够有效对冲市场崩盘的风险。在市场发生大幅下跌时,购买的看跌期权将提供保护,减少策略的潜在损失。这一部分的保险策略能够在极端市场情况下为投资者提供稳定性,降低市场暴跌对投资组合的影响。
-
? 自动化交易:该策略基于量化平台(如QuantConnect)进行自动化执行,这意味着策略可以在全天候进行监控和调整,避免了人为情绪的干扰,确保执行的精度与一致性。自动化交易不仅能够减少人为操作失误,还可以实时响应市场变化,提高策略的执行效率。
-
? 长期增长:通过投资标的资产(如SPY ETF),该策略能够在长期上涨的市场中获得正收益。长期投资标的资产能够利用市场的自然增长趋势,从中获得资本增值。
6. 风险:
-
? 卖出期权的风险:卖出期权可能带来无限的风险,尤其是在市场剧烈波动时。例如,如果市场价格大幅偏离行使价,卖出的期权可能会导致较大的损失。为了降低这种风险,策略通过购买15%价外的看跌期权来提供保护,但在极端情况下,保护也可能无法完全对冲损失。因此,卖出期权的部分风险需要特别关注。
-
? 市场不确定性:尽管购买15%价外的看跌期权可以在市场下跌时提供一定的保护,但在极端市场环境下,保护可能不足。例如,如果市场在短时间内出现大幅下跌,且价外看跌期权未能及时发挥作用,可能会导致损失扩大。因此,市场的不确定性仍然是该策略的一个风险点。
-
? 策略的依赖性:该策略依赖于市场的波动性,因此,在极端平静的市场环境中,期权溢价会降低,可能导致策略的收益下降。尤其是在市场波动较低时,卖出期权所获得的收益将减少,而期权的购买成本则相对较高,可能影响整体的投资回报。
-
? 流动性风险:期权市场可能存在流动性不足的风险,尤其是在较为冷门的期权合约中。流动性不足可能导致期权价格偏离理论价值,甚至无法顺利平仓,影响策略的执行效果。为此,需要密切监控市场的流动性状况,并做好相应的调整。
6. 总结
这个量化交易策略结合了期权交易和指数投资,不仅能够在波动性较大的市场中获取稳定的收益,还能通过购买保护性期权(如15%价外看跌期权)来降低下行风险。策略的重平衡周期为每月一次,且可以自动化执行,因此在实时交易中能够持续监控并适时调整。
虽然该策略在历史回测中表现出色,年化回报率为26%,但在实际操作中仍然需要特别注意风险管理。特别是卖出期权的风险,需要严格的仓位控制和风险预警系统。
本文不构成投资建议,如果你对这一策略感兴趣并希望获取完整代码复现,可以加入知识星球获取更多详细信息。
备注:完整代码复现请加入知识星球获取。
知识分享社群双十一限时活动
三天不满意无条件退款



