备兑看涨期权策略
当投资组合是由一份基础资产的空头头寸与一份欧式看涨期权的多头头寸组成,这种期权交易策略被称为买入备兑看涨期权(long covered call)。这里看涨期权多头头寸用于对基础资产的空头头寸进行“保护”,从而使投资者免遭由于基础资产价格急剧上涨所带来的损失。
可见当ST>K时,组合收益为S0-K-C,当ST<K时,组合收益为S0-ST-C。由期权的平价公式可知,买入备兑看涨期权策略等价于一个看跌期权多头与金额为Ke-rt的零息债券空头构成的组合,因此其收益图应该类似于看跌期权多头的收益。以如下案例来说明:
A金融机构需要构建买入备兑看涨期权策略,策略构建的时间是12月28日,策略中的看涨期权是运用在3月27日到期的执行价格为2.5元的上证50ETF认购期权,期权的价格是0.0374元,基础资产是上证50ETF基金。策略构建当天1份上证50ETF基金的净值是2.289元,上证50指数点位是2293.10。A金融机构将运用10000份上证50ETF基金空头头寸和1张上证50ETF认购期权多头头寸构建买入备兑看涨期权的策略,画出收益图。
注意:为了算标的资产的收益我们需要计算基金到期时的净值,可以假设50ETF基金与其标的50ETF指数之间的跟踪误差为0,根据到期时的指数点数来换算,比如到期指数3000点,那么净值就是3000*2.289/2293.1;同时一张期权的基础资产是10000份上证50ETF基金,算期权收益时要乘10000。
import numpy as npimport matplotlib.pyplot as pltfrom pylab import mplmpl.rcParams['font.sans-serif']=['SimHei']mpl.rcParams['axes.unicode_minus']=Falsec=0.0374;K=2.5;ETF0=2.289;index0=2293.1indext=np.linspace(1500,3000,500)#由于到期指数点未知,生成指数到期点数的数组ETFt=indext*ETF0/index0#计算基金到期时的净值return_ETF=-1e4*(ETFt-ETF0)return_call=1*1e4*(np.maximum(ETFt-K,0)-c)rp=return_ETF+return_callplt.plot(indext,return_ETF,'--',label='上证50ETF空头')plt.plot(indext,return_call,'--',label='上证50ETF认购期权多头')plt.plot(indext,rp,label='买入备兑看涨期权组合收益')plt.xlabel('上证50ETF点数')plt.ylabel('组合收益金额')plt.title('买入备兑看涨期权组合收益图')plt.legend()plt.grid()
而在卖出备兑看涨期权策略中,基础资产的多头对看涨期权的空头进行保护,使得投资者免遭由于标的资产价格大幅上升而导致损失,该策略与买入策略方向相反,收益也相反,类似于看跌期权空头。
保护性看跌期权策略
当投资组合是由一个股票多头头寸与一个欧式看跌期权的多头头寸组成,该交易策略被称为买入保护看跌期权(long protective put) 策略。比如,当资本市场情绪高涨、股价虚高,但也不想清空自己的股票仓位而错失股价可能继续上升带来的收益,就可以考虑运用该交易策略,其收益图应该类似于看涨期权多头的收益。
假设认沽期权价格为0.1233元,执行价格为2.35元,其他数据同上例,B金融机构将运用10000份上证50ETF基金多头头寸和1张上证50ETF认沽期权多头头寸构建买入保护性看跌期权的策略,画出收益图。
p=0.1233;K=2.35;ETF0=2.289;index0=2293.1indext=np.linspace(1500,3000,500)#由于到期指数点未知,生成指数到期点数的数组ETFt=indext*ETF0/index0#计算基金到期时的净值return_ETF=1e4*(ETFt-ETF0)return_put=1*1e4*(np.maximum(K-ETFt,0)-p)rp=return_ETF+return_putplt.plot(indext,return_ETF,'--',label='上证50ETF多头')plt.plot(indext,return_put,'--',label='上证50ETF认沽期权多头')plt.plot(indext,rp,label='买入保护看跌期权组合收益')plt.xlabel('上证50ETF点数')plt.ylabel('组合收益金额')plt.title('买入保护看跌期权组合收益图')plt.legend()plt.grid()
卖出保护看跌期权策略与买入策略方向相反,资产空头对认沽期权空头进行保护,限定组合在资产价格下跌时的亏损,收益图类似于看涨期权空头。
策略的期间收益
前面讨论的是当策略处于期权到期日时,基础资产价格变化与策略收益之间的关系。现在来讨论在构建策略完成至期权到期日的期间内,由于基础资产价格与期权价格的变化而导致策略收益的变化。
C金融机构构建策略的日期是2月12日,运用的期权是9月26日到期的上证50ETF认购、认沽期权,期权的执行价格均为2.6元,基础资产是上证50ETF,此外期权的挂牌日也是2月12日。C金融机构构建了上述4种期权策略,即10000份50ETF基金与1份期权头寸的组合,根据期权收盘价和基金净值数据画出这4种组合在策略期间的收益图。
data=pd.read_excel('C:/Users/Desktop/上证50ETF期权及基金数据.xlsx',index_col=0)data.head()Out[8]: 认沽期权 认购期权 上证50ETF日期 -02-12 0.1608 0.3627 2.800-02-13 0.1434 0.3945 2.848-02-14 0.1368 0.4095 2.866-02-22 0.1070 0.4403 2.925-02-23 0.0833 0.4543 2.955data.iloc[:,:2].plot()#期权收盘价走势图data.iloc[:,2:].plot()#基金净值走势图(小技巧:对于单列/行数据加':'可显示图例)
可见基金净值处于下跌状态,对应的看涨期权价格下降,看跌期权价格上升。下面画出C金融机构4种期权策略的收益图(注意是期间收益,期权的单位收益变化为期权收盘价之差):
return_1=-1e4*(data.iloc[:,2]-data.iloc[0,2])+1*1e4*\(data.iloc[:,1]-data.iloc[0,1])#买入备兑看涨return_3=1e4*(data.iloc[:,2]-data.iloc[0,2])+1*1e4*\(data.iloc[:,0]-data.iloc[0,0])#买入保护看跌plt.figure(figsize=(10,10)) plt.subplot(211)plt.plot(data.index,return_1,label='备兑看涨多头')plt.plot(data.index,-return_1,label='备兑看涨空头')plt.xlabel('日期')plt.ylabel('组合收益金额')plt.title('备兑看涨期权组合期间收益图')plt.legend()plt.grid()plt.subplot(212)plt.plot(data.index,return_3,label='保护看跌多头')plt.plot(data.index,-return_3,label='保护看跌空头')plt.xlabel('日期')plt.ylabel('组合收益金额')plt.title('保护看跌期权组合期间收益图')plt.legend()plt.grid()
可以发现在策略区间内,备兑看涨期权空头和保护看跌期权空头策略在多数交易日实现了盈利。
参考文献
斯文《基于python的金融分析与风险管理》,人民邮电出版社。