差价组合
是指用除了执行价格K不同其他条件均相同的两个或多个同种期权构造的交易策略,主要介绍牛市价差、熊市价差、蝶式价差策略等。
牛市价差组合——买低卖高
该策略持有一个较低执行价格的欧式看涨(看跌)期权多头头寸,同时持有一个较高执行价格的欧式看涨(看跌)期权空头头寸,这两个期权的基础资产和合约期限均相同。如果投资者认为未来基础资产价格将保持震荡上行的趋势,就可采用牛市价差策略。
用看跌期权构造的牛市价差组合会在策略构建日给投资者带来一个正的现金流,而看涨期权构造的牛市价差期初现金流为负。假设下标1对应低K期权,2对应高K期权,它们的到期收益为:
牛市价差策略类型 | 到期收益 |
---|---|
看涨期权牛市价差 | C2-C1+max(ST-K1,0)-max(ST-K2,0) |
看跌期权牛市价差 | P2-P1+max(K1-ST,0)-max(K2-ST,0) |
D金融机构要构建牛市价差策略,策略构建的时间是2018年12月28日,4个看涨和看跌期权均是在2019年3月27日到期的上证50ETF期权。对于两个看涨期权,K1=2.25,C1=0.1325,K2=2.45,C2=0.0494;对于两个看跌期权,K1=2.3,P1=0.0927;K2=2.5,P2=0.2255。策略构建当天上证50ETF基金的净值是2.289元,上证50指数点位是2293.10。假设每一种期权均用一张,分别用看涨期权和看跌期权来构造牛市价差组合。
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
K1=2.25;C1=0.1325;K2=2.45;C2=0.0494
K3=2.3;P1=0.0927;K4=2.5;P2=0.2255
ETF0=2.289;index0=2293.1
indext=np.linspace(1600,3000,500)
ETFt=ETF0*indext/index0
r1=1e4*(np.maximum(ETFt-K1,0)-C1)
r2=1e4*(-np.maximum(ETFt-K2,0)+C2)
r3=1e4*(np.maximum(K3-ETFt,0)-P1)
r4=1e4*(-np.maximum(K4-ETFt,0)+P2)
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.plot(indext,r1+r2,label='看涨期权牛市价差组合')
plt.plot(indext,r1,'--',label='看涨多头')
plt.plot(indext,r2,'--',label='看涨空头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
plt.subplot(122)
plt.plot(indext,r3+r4,label='看跌期权牛市价差组合')
plt.plot(indext,r3,'--',label='看跌多头')
plt.plot(indext,r4,'--',label='看跌空头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
熊市价差组合——买高卖低
该策略持有一个较高执行价格的欧式看涨(看跌)期权多头头寸和一个较低执行价格的欧式看涨(看跌)期权空头头寸,基础资产和合约期限均相同。如果投资者认为未来基础资产价格将下跌,就可采用熊市价差策略。
用看涨期权构造的熊市价差组合会在策略构建日给投资者带来一个正的现金流,而看跌期权构造的熊市价差期初现金流为负。假设下标1对应低K期权,2对应高K期权,它们的到期收益区别为:
熊市价差策略类型 | 到期收益 |
---|---|
看涨期权熊市价差 | C1-C2+max(ST-K2,0)-max(ST-K1,0) |
看跌期权熊市价差 | P1-P2+max(K2-ST,0)-max(K1-ST,0) |
D金融机构要构建牛熊价差策略,其他数据和条件同上,分别用看涨期权和看跌期权来构造牛市价差组合。
r1=1e4*(np.maximum(ETFt-K2,0)-C2)
r2=1e4*(-np.maximum(ETFt-K1,0)+C1)
r3=1e4*(np.maximum(K4-ETFt,0)-P2)
r4=1e4*(-np.maximum(K3-ETFt,0)+P1)
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.plot(indext,r1+r2,label='看涨期权熊市价差组合')
plt.plot(indext,r1,'--',label='看涨多头')
plt.plot(indext,r2,'--',label='看涨空头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
plt.subplot(122)
plt.plot(indext,r3+r4,label='看跌期权熊市价差组合')
plt.plot(indext,r3,'--',label='看跌多头')
plt.plot(indext,r4,'--',label='看跌空头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
蝶式价差组合——买低买高卖中
蝶式价差由3种K不同而其他条件相同的期权构成,构造方式是一个较低执行价格K1的欧式期权多头 + 一个较高执行价格K3的欧式期权多头头寸 + 两个执行价格K2的欧式期权空头头寸,其中即K2=(K1+K3)/2。一般来讲K2接近于当前基础资产价格。蝶式价差策略对于那些认为基础资产价格不会有太大波动的投资者而言会非常合理,因为该策略仅仅需要较少的期初投资成本。
蝶式价差策略类型 | 到期收益 |
---|---|
看涨期权蝶式价差 | 2C2-C1-C3+max(ST-K1,0)+max(ST-K3,0)-2max(ST-K2,0) |
看跌期权蝶式价差 | 2P2-P1-P3+max(K1-ST,0)+max(K3-ST,0) -2max(K2-ST,0) |
以看跌期权为例,各期权的价格数据见代码,其他数据和条件同上,构建看跌期权蝶式价差组合。
K1=2.25;P1=0.0734;K2=2.3;P2=0.0972;K3=2.35;P3=0.1233
ETF0=2.289;index0=2293.1
indext=np.linspace(2000,2600,500)
ETFt=ETF0*indext/index0
r1=1e4*(np.maximum(K1-ETFt,0)-P1)
r2=2e4*(-np.maximum(K2-ETFt,0)+P2)
r3=1e4*(np.maximum(K3-ETFt,0)-P3)
plt.figure(figsize=(7,5))
plt.plot(indext,r1+r2+r3,label='看跌期权蝶式价差组合')
plt.plot(indext,r1,'--',label='低K看跌多头')
plt.plot(indext,r2,'--',label='2份中K看跌空头')
plt.plot(indext,r3,'--',label='高K看跌多头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
差期组合
由期限不同、其他条件相同的同种期权构成,可分为四类:
买长卖短 | 买短卖长 |
---|---|
看涨期权正向差期组合 | 看涨期权反向差期组合 |
看跌期权正向差期组合 | 看跌期权反向差期组合 |
由于执行价相同,构建该策略的两个看涨或看跌期权的内在价值是相同的,不同的只有时间价值。差期组合能赚钱的原因在于时间对期权价值的侵蚀速度并非线性,剩下的时间越少,侵蚀速度越快。比如,当近期看涨期权只剩下几个星期时,它的时间价值的减值速度会大幅增加,而此时远期看涨期权的时间价值减值速度还保持在比较低的水平。
对于正向差期组合来讲,交易者本就计划在近期期权到期时或者到期前就将组合平仓。由于远期期权更贵,因此在t0时有一个净支出。近期期权快到期时,其时间价值被侵蚀掉了,交易者可以仅以内在价值买入平仓,而远期期权的价值还保持得比较好,卖出仍能拿回大部分权利金。
而有的交易者是打算两个期权都持有到期或在必要的时候平仓。因为在建仓时两个期权一般都是虚值,而短期期权在虚值且到期时间短的情况下很难盈利,所以正向差期策略本质上更像是一个利用卖出近期期权来减少成本的看涨或看跌期权。如果在短期期权到期前标的资产价格上涨,理智的交易者应当在组合有盈利的时候就平仓。
下面以看涨期权构造的正向差期组合为例,画出短期期权到期时(t=T1)组合的盈亏图,假设C1=0.0494,T1=0.5,C2=0.16,T2=1,K1=K2=2.5,一年期无风险利率为1.5%,长期期权波动率为25%,其他数据不变。
C1=0.0494;T1=0.5;C2=0.16;T2=1;K=2.5;r=0.015;sigma=0.25
indext=np.linspace(1600,3300,500)
ETFt=ETF0*indext/index0
r_short=1e4*(-np.maximum(ETFt-K,0)+C1)
#对于长期期权多头收益,可以用当前剩余期限的期权价格(BS公式算)减去成本来计算
r_long=1e4*(bscall(ETFt,K,r,sigma,T2-T1)-C2*np.exp(r*T1))
plt.figure(figsize=(7,5))
plt.plot(indext,r_short+r_long,label='看涨期权正向差期组合')
plt.plot(indext,r_short,'--',label='短期看涨期权空头')
plt.plot(indext,r_long,'--',label='长期看涨期权多头')
plt.xlabel('短期期权到期时的50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
混合组合
是指用相同基础资产的看涨和看跌期权构造投资组合的交易策略,主要介绍跨式组合、宽跨式组合、条式组合和带式组合策略等。
跨式组合
底部(买入)跨式组合(bottom straddle)由相同K、相同期限的看涨期权多头和看跌期权多头组成,当投资者认为标的资产价格会有大幅变化(看多波动率)但是方向不确定时适用该策略。顶部(卖出)跨式组合(top straddle)由相同K、相同期限的看涨期权空头和看跌期权空头组成,当投资者认为标的资产价格变化不大时适用该策略,与底部跨式组合的收益相反。
K=2.4;C=0.1745;P=0.1106
indext=np.linspace(1600,3200,500)
ETFt=ETF0*indext/index0
rc=1e4*(np.maximum(ETFt-K,0)-C)
rp=1e4*(np.maximum(K-ETFt,0)-P)
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.plot(indext,rc+rp,label='底部跨式组合')
plt.plot(indext,rc,'--',label='看涨多头')
plt.plot(indext,rp,'--',label='看跌多头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
plt.subplot(122)
plt.plot(indext,-rc-rp,label='顶部跨式组合')
plt.plot(indext,-rc,'--',label='看涨空头')
plt.plot(indext,-rp,'--',label='看跌空头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
宽跨式组合
底部(买入)宽跨式组合(strange)由相同期限的看涨期权多头和看跌期权多头组成,且K(看涨期权)>K(看跌期权),当投资者认为标的资产价格会有非常大的变动(看多波动率)但是方向不确定时适用该策略,宽跨式策略盈利空间不如跨式策略大,但其成本更低。顶部(卖出)宽跨式组合相反。
KC=2.6;KP=2.2;C=0.1745;P=0.1106
rc=1e4*(np.maximum(ETFt-KC,0)-C)
rp=1e4*(np.maximum(KP-ETFt,0)-P)
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.plot(indext,rc+rp,label='底部宽跨式组合')
plt.plot(indext,rc,'--',label='看涨多头')
plt.plot(indext,rp,'--',label='看跌多头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
plt.subplot(122)
plt.plot(indext,-rc-rp,label='顶部宽跨式组合')
plt.plot(indext,-rc,'--',label='看涨空头')
plt.plot(indext,-rp,'--',label='看跌空头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
条式组合和带式组合
条式组合(strip)策略是指由相同K、相同期限的一个看涨期权多头头寸与两个看跌期权多头头寸所构建。如果投资者认为基础资产价格会有大的变动,且基础资产价格下跌的可能性要大于上涨的可能性,就可以选择序列组合策略。
带式组合(strap)策略是由相同K、相同期限的两个欧式看涨期权多头头寸和一个欧式看跌期权多头头寸所构造。如果投资者也是预测基础资产价格会有大的变动,且基础资产价格上涨的可能性要大于下跌的可能性,带式组合策略就是一种比较好的选择。
K=2.4;C=0.1745;P=0.1106
rc=1e4*(np.maximum(ETFt-K,0)-C)
rp=1e4*(np.maximum(K-ETFt,0)-P)
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.plot(indext,rc+2*rp,label='条式组合')
plt.plot(indext,rc,'--',label='1个看涨多头')
plt.plot(indext,2*rp,'--',label='2个看跌多头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
plt.subplot(122)
plt.plot(indext,2*rc+rp,label='带式组合')
plt.plot(indext,2*rc,'--',label='2个看涨多头')
plt.plot(indext,rp,'--',label='1个看跌多头')
plt.xlabel('50ETF指数点')
plt.ylabel('收益额')
plt.legend()
plt.grid()
参考文献
https://zhuanlan.zhihu.com/p/85865146
斯文《基于python的金融分析与风险管理》,人民邮电出版社。