差价组合

  是指用除了执行价格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的金融分析与风险管理》,人民邮电出版社。

(四十一)差价组合、差期组合与混合组合期权策略相关推荐

  1. java正则校验密码 长度不少于8位且至少包含大写字母、小写字母、数字和特殊符号中的四种组合 或者 其中任意三种组合

    java正则校验密码必须是包含大小写字母.数字.特殊符号的8位以上四种组合 或者 其中任意三种组合 一.排除法和详细解释 1.排除大写字母.小写字母.数字.特殊符号中1种组合.2种组合.3种组合,那么 ...

  2. matlab套利,期现套利-现货组合构建(1)-市值权重法

    本帖最后由 faruto 于 2011-12-27 23:58 编辑 期现套利-现货组合构建(1)-市值权重法 最近抽空做的一点东西,常见的期现套利现货构建的方法之1--市值权重法. 一直想把跟踪指数 ...

  3. [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. 排列组合思维导图_排列组合——排列数专题

    在上篇关于排列组合主要考点的介绍中,正男老师提到:排列组合考点通常可以拆分为排列数考点和组合数考点.排列数考点相关试题可以细分为2类,分别为:穷举问题和限制条件问题.本期正男老师就从近六年内的5道涉及 ...

  5. 【组合数学】组合恒等式 ( 变下项求和 3 组合恒等式 | 变下项求和 4 组合恒等式 | 二项式定理 + 求导 证明组合恒等式 | 使用已知组合恒等式证明组合恒等式 )

    文章目录 一.组合恒等式 ( 变下项求和 ) 变系数求和 1 二.组合恒等式 ( 变下项求和 ) 变系数求和 1 证明 ( 二项式定理 + 求导 ) 三.组合恒等式 ( 变下项求和 ) 变系数求和 2 ...

  6. 【组合数学】组合恒等式 ( 递推 组合恒等式 | 变下项求和 组合恒等式 简单和 | 变下项求和 组合恒等式 交错和 )

    文章目录 一.组合恒等式 ( 递推式 ) 二.组合恒等式 ( 变下项求和 ) 简单和 二.组合恒等式 ( 变下项求和 ) 交错和 一.组合恒等式 ( 递推式 ) 组合恒等式 ( 递推式 ) : 1 . ...

  7. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  8. [Python从零到壹] 四十一.图像处理基础篇之图像采样处理

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. 算法训练Day25 | LeetCode216. 组合总和III(和77.组合很像!);LeetCode17. 电话号码的字母组合(不同集合中组合)

    目录 LeetCode216. 组合总和III 1. 思路 2. 代码实现 3. 剪枝 4. 复杂度分析 5. 思考与收获 LeetCode17. 电话号码的字母组合 1. 思路 2. 代码实现 3. ...

最新文章

  1. ## Hive分析疫情数据
  2. 第一次用.net2.0 LOGIN登陆控件的困惑和解决方法
  3. Git无法检测到文件名大小写的更改
  4. linux 查看内核属性,怎么查看linux操作系统
  5. pytorch使用Ray-tune对原有训练模型的代码改写,自动调参(一)
  6. dp - 2016腾讯笔试 A
  7. 工作中遇到很让人头疼的上司怎么办?
  8. 培训笔记——2019年性能测试
  9. 数据库学习----JDBC
  10. java mvc 登陆_SpringMVC实现用户登录实例
  11. 第四讲 系统建模方法
  12. 全球人工智能与机器学习大会PPT
  13. ubuntu 强制删除文件夹
  14. Wide Deep模型
  15. ios 表情符号 键盘_iOS自定义的emoji表情键盘
  16. PSSP之特征提取(PSSP protein secondary structure prediction)
  17. 想学习编程但是看不懂代码该怎么办
  18. 【keepass】密码管理软件keepass的安全风险分析,如何在使用keepass的过程中避免泄露数据库信息和密码?
  19. 服务器虚拟机限速,Wiwiz虚拟机实现连接限速的方法
  20. 自定义ViewPager和弹性圆PagerIndicator

热门文章

  1. 蚂蚁金服通信框架SOFABolt解析 | 协议框架解析
  2. 小程序Mpx框架入门
  3. 一个让Flex代码也能自动套用格式的插件 转
  4. hlookup函数多个条件_30天中30个Excel函数:10 – HLOOKUP
  5. 操作系统android的收银系统,基于Android的小微商户移动收银系统设计与实现
  6. Redis消息队列——Redis Stream
  7. 在antdesignvue中设置nProgress的zIndex无效——已解决
  8. TWICImage.SaveToStream(Stream: TStream)方法修正
  9. 我的世界服务器怎么修改血量,我的世界怎么设置血量指令 | 手游网游页游攻略大全...
  10. uniapp将时间日期格式化的组件uni-dateformat的用法