颖硕 发布于2018-09-13
回复 30
浏览 8656
85
(零)什么是隐含波动率
期权价格取决于期初价格(S0),执行价格(K),到期期限(T),无风险利率(r),已经波动率(volatility,有时候也写sigma)。(分红不讨论了,可以涵盖在r里)
期权价格V=f(S0,K,T,r,vol)
S0,K,T,r都是客观存在的,vol是期权交易双方的内心预期。
期权的价格V是可以被观察到的,所以我们通过V,S0,K,T,r求解出波动率vol。利用市场价格V倒推出来的vol被称为隐含波动率。
期权交易是一种升维交易,那么隐含波动率能够反映市场情绪么?
(一)数据整理
首先将聚源数据库中的场内期权数据整理为一个便于使用的字典格式:
在T日,得到3个字典。
第一个字典中,
“键”是在T日存在的多个合约的到期日日期。
“值”是一个dataframe,columns是[call,put],index是执行价格,value是【合约代码】。
举例:
![contractdict.png][1]
第二个字典中,
“键”是在T日存在的多个合约的到期日日期。
“值”是一个dataframe,columns是[call,put],index是执行价格,value是价【价格】。
第三个字典中,
“键”是在T日存在的多个合约的到期日日期。
“值”是一个dataframe,columns是[call,put],index是执行价格,value是价【隐含波动率】。
这里添加了一点,为了反映手续费和佣金,我们计算了加入手续费佣金后的实际隐含波动率。这里我们按1.3元一张计算。(券商内部价)。
(二)隐含波动率
开头有一个对象option,用于计算隐含波动率,有兴趣的同学可以整理到聚宽的方程库中。
使用方法:
![impvolfun.png][2]
(三)隐含波动率热力图
在时间上,我选取了年初一波牛市的起点,中点和终点的日期。以及中美贸易战的几个重要时期。[中美贸易战时间轴][3]
看一看贸易战事件和隐含波动率的关系。
1-2
年初
![1-2.png][4]
1-10
年初上升阶段
![1-10.png][5]
1-24
年初上升顶点
![1-24.png][6]
3-23
特朗普宣布对600亿美元中国进口商品增税
![3-23.png][7]
4-16
美国对中兴通讯下重手
美拟发起新301调查
![4-16.png][8]
4-18
央行降准释放4000亿资金
![4-18.png][9]
4-22
美国财长考虑来华磋商
![4-22.png][10]
5-4
中美贸易磋商
![5-4.png][11]
5-18
特朗普会见刘鹤
![5-18.png][12]
7-11
特朗普又打出两千亿关税牌
![7-11.png][13]
7-28
美参议院同意降低进口商品关税
![7-28.png][14]
8-8
美国确认加征关税的160亿美元
![8-8.png][15]
9-12
中国向世贸组织申请授权对美实施贸易报复
![9-12.png][16]
欢迎大家讨论。
[1]: https://image.joinquant.com/b00895c5841c3fc832dc4a95aa75b10b
[2]: https://image.joinquant.com/59dc5642ff9f134fba30e2a6c8d3178d
[3]: http://www.dsj365.cn/front/article/6015.html?pageNo=1
[4]: https://image.joinquant.com/1ed2754688ae39592e8c9bac0a94cc31
[5]: https://image.joinquant.com/7426da989cb85c77fe0254254ac71289
[6]: https://image.joinquant.com/cd2378d7f5f68e92fe6520226e70238d
[7]: https://image.joinquant.com/b1406aa16e3bcaad1f493c6ba4b936a2
[8]: https://image.joinquant.com/afffad66450eba5f13dccaa3723c2828
[9]: https://image.joinquant.com/09621fc91ebaf2165f1a9e164643674b
[10]: https://image.joinquant.com/7727992ec1253c1519958cdcde209e36
[11]: https://image.joinquant.com/f528082b1670f783e6b05509f26c484b
[12]: https://image.joinquant.com/498a2fdbdbcd0257c03a3f55bcdf36a2
[13]: https://image.joinquant.com/12a8bf730462bd14b8daa237ea1e0213
[14]: https://image.joinquant.com/52a8bef12e45a2e2d21e66553fac8121
[15]: https://image.joinquant.com/64250952c9ddf1a1fe3a933cc08de9d5
[16]: https://image.joinquant.com/86754440f13490f8d79b0c6ffdc8762d
评论
赞一个,大佬能否把获取数据的部分整理成一个函数
2018-09-13
@猫狗大战 好的,下一篇写场内期权套利的时候会弄成函数的。
2018-09-13
再详细说一下隐含波动率。
隐含波动率有些像债券的利率。债券明明有价格为什么还要算利率呢?因为债券期限不同,票息不同,距离临近付息日不同,债券的价格比较没有意义,不在一个起跑线上。
同样的对于期权,期权类型不同,执行价格不同,期限不同,价格也不没有比较意义。那么隐含波动率就是一个把他们放在一个同一起跑线的东西。
隐含波动率越大,说明期权价格越贵。
在年初大涨之前,市场情绪乐观,看涨期权的隐含波动率大于看跌期权的隐含波动率。在涨到顶峰的时候,大家已经收获一定收益,为了锁定这部分获利,又担心没有上涨到顶端。就有意愿买看跌期权进行保护。这时候看跌期权的隐含波动率就上去了。
所以,如果没有重大宏观事件发生,上涨由市场共识预期导致,什么时候就是快到顶的时候了呢。期权的隐含波动率曲面可以向我们展示市场情绪,释放减仓信号。
2018-09-13
@巴罗斯 没有,我用的是日级的数据。
2018-09-17
@巴罗斯 日线就是查510050的值?
2018-09-17
@颖da 能简单介绍一下option类方法d1,d2,value分别计算的是什么值吗?
我记得隐含波动率是由期权报价来计算,但你的方法里面,为啥需要去计算期权报价?
2018-10-09
@chegoD value是期权理论BS价格,d1,d2是计算value的中间变量。主要目的是计算implied volatility的,所以用二分法来找implied volatility,就需要计算value了。可以说计算value是为了算implied volatility.
2018-10-09
@颖da 谢颖大指教,这两天学了一点期权的皮毛,发现这真是一个巨大的坑,越学遇到的问题越多。我看在计算隐含波动率这个函数的时候,还有一些疑问要再请教一下。
1.在计算标的物资产的时候,get_price用的是前复权价格,而计算T型价格取出来的数据确实不复权的价格,这样会导致一些问题吧。
比如2015-10-12 S0的前复权值为2.217,不复权的值为2.288
近月期权的价格为
dfPrice>>:
Call Put
1.85 0.4500 0.0001
1.90 0.4230 0.0001
1.95 0.3610 0.0001
2.00 0.3141 0.0001
2.05 0.2590 0.0001
2.10 0.2153 0.0001
2.15 0.1511 0.0001
2.20 0.1000 0.0001
2.25 0.0538 0.0001
2.30 0.0021 0.0009
2.35 0.0001 0.0300
2.40 0.0001 0.0870
2.45 0.0001 0.1437
可以看到2.25的put期权其实应该是虚值期权,但在前复权的计算方式里,这里的0.0001价格就与实际不符合了
2018-10-12
颖大,厉害。提供了一个很好的思路,最近一直在想能否将50ETF期权和股票进行对冲来控制风险,特别是这种单边下跌的行情中。
2018-10-12
@chegoD 一.不应该用前复权价格。是我马虎了,应该用不复权价格。复制粘贴很危险。T_T
二.期权的本质无非是做三件事:1. 定义随机过程。2,通过无套利推导出来一个偏微分方程。3.把这个偏微分方程解出来。4.当你有解析解的时候你就可以为所欲为了。在求解偏微分方程,你需要知道随机微分方程,鞅,测度,傅里叶变换,各种线性代数。当爬座一座高山的时候,才发现后面有一座更大的,如此往复。这就是我的感受。
2018-10-12
@Lyra 年初的时候,我就给公司建议无脑买虚值看跌期权,这玩意动辄涨几百倍,年初最多一次涨了整1000倍。走到今年来看,这个策略今年是发大财的。贸易战的不确定性导致隐含波动率上升,赌波动率的话就是无脑买宽胯,今年无脑买宽胯没毛病。
2018-10-12
@颖da 你还能不断的翻越,我觉得很多人其实会倒在第一座山的山脚。。。。
其实还有个疑问,也是关于隐含波动率的
我看你在画隐含波动率热图的时候,是用4个行权时间的隐含波动率做加权平均,但这样设计的实际意义在什么地方?近月的隐含波动率会不会更有说服力一些。
如果我仅仅想计算近月的隐含波动率,是怎么计算比较科学?去所有行权价的平均值嚒?
2018-10-12
@chegoD weight=[0.25,0.25,0.25,0.25]这个是用来调节的,根据自己的想法调节,当时留了个口子。
2018-10-12
@颖da @颖da 实在不好意思,又来打扰了,这些问题我在网上没找到答案
1.数据问题
用聚源的接口取到的Put的价格为NaN,比如2015-10-12这一天,行权价为3.30 到期日为2015-12-23,call :0.0027 put: NaN 这显然是不对的,不满足C + X = S+ P,这种问题该怎么破?
2.关于隐含波动率微笑
还以2015-10-12这一天为例,标的50ETF的价格为2.288,到期日为2015-10-28的各行权价的隐含波动率如下:
Call Put exercise_date
1.85 0.000488 0.493652 2015-10-28
1.90 0.000488 0.490723 2015-10-28
1.95 0.000488 0.460449 2015-10-28
2.00 0.000488 0.435059 2015-10-28
2.05 0.275879 0.398926 2015-10-28
2.10 0.312988 0.377441 2015-10-28
2.15 0.295410 0.365723 2015-10-28
2.20 0.292480 0.356934 2015-10-28
2.25 0.299316 0.351074 2015-10-28
2.30 0.297363 0.339355 2015-10-28
2.35 0.298340 0.348145 2015-10-28
这里Put期权的价格基本上是满足波动率微笑的,但Call期权的价格却很诡异,行权价2元以下的都是一个非常小的值,这是什么原因呢?
3.关于平价期权上下报价数量不对等
从上面的期权各档位价格可以看到,50etf标的价格为2.288,期权行权价2.30是最接近这个价格的,但上下的报价数量差别很大,上档只有一个2.35,下档却有[1.85,2.25]共9档,为什么在标的价位变高后,上档没有增加呢?
问题较多,又是基础款,还望颖大不吝赐教
2018-10-15
@颖da 大神下次有好建议的时候社区说一声啊,大家都可以跟投了,哈哈哈哈
2018-10-15
@颖da 第一个问题已经找到原因了,是因为这个价格没有成交量
2018-10-16
@chegoD 2.这个问题是因为有手续费,比如说这手期权值2块钱,也就是说2块钱我才愿意买,手续费要1块8,那么的话,这手期权2毛钱我才愿意买。3.档的增加不是上下对称增加的,在期权存续期间,如果标的价格510050降低,导致实值看涨期权不足两档,就需要下面再加挂一个合约。这个可以在上交所网站查询具体加挂规则。
2018-10-16
@颖da 明白了,我没有经历过期权实战,要没你解释,这东西还真不好get,谢谢啦
2018-10-17