1. 从无套利角度理解(连续对冲,对冲波动率=标的波动率=常数)

运动过程分别为:

python 组合波动率_方差

为消除不确定性,构造投资组合:

衍生品:-1;股票:+

python 组合波动率_时间片_02

投资组合的价值为:

python 组合波动率_离散化_03

投资组合的价值变动为:

python 组合波动率_时间片_04

组合价值的变化量仅与时间

python 组合波动率_离散化_05

有关,因此该组合成功消除了

python 组合波动率_离散化_06

带来的不确定性。

根据无套利定价原理,组合收益率应等于无风险利率:

python 组合波动率_python 组合波动率_07

得到:

python 组合波动率_方差_08

这也就是Black-Scholes 微分方程。

上述组合中,每时每刻的期权合约的价值变动与持仓期货合约价值变动刚好的差,刚好等于组合价值的无风险收益。

这也就是说,如果我们连续对冲的话,那么得到的收益,完全就是无风险收益。

由于我们连续对冲,每时每刻delta都是中性的,因此gamma不产生影响。

而又假设波动率和无风险利率不变,因此vega和rho对我们组合的价值不产生影响。

因此唯一对组合价值产生影响的就是theta,影响的程度和期初组合的价值大小有关。

2. 连续对冲,对冲波动率不等于标的已实现波动率

行权价为K到期时间为T的认购期权,在BS模型下,其t时刻的期权价值为

python 组合波动率_python 组合波动率_09

,特别的,到期时

python 组合波动率_gamma对冲 matlab_10


假设股票价格S满足下面的这个SDE模型:

python 组合波动率_时间片_11

其中

python 组合波动率_时间片_12

本身可以是随机的。

那么,把期权价格的变化划分为无穷小段,期权价格在这些时间片段中逐步变化,利用泰勒公式对BS模型下期权价格的变化进行展开(忽略):

python 组合波动率_方差_13

其中,远期方差

python 组合波动率_python 组合波动率_14

因此,如果我们使用BS模型下的delta来进行连续对冲,这段期间的标的对冲损益是

python 组合波动率_方差_15

那么上述积分式的第一部分就被delta对冲完全消除,那么组合对冲之后的损益,也即我们对冲的误差为

python 组合波动率_时间片_16

从上面式子可以看出,在BS模型的假设下,波动率是确定的,因为

python 组合波动率_离散化_17

(对于任意的St都成立),这样对冲的损益为0。但实际上我们的对冲结果取决于gamma和对冲波动率与已实现波动率的差。从上述积分的式子中就能看到

python 组合波动率_离散化_18

对应着波动率之差,而

python 组合波动率_离散化_19

就是期权合约下BS模型得到的gamma。

上述的推导过程中,我们依据的是BS模型算出的delta进行对冲,对冲的波动也不做修改,由于对冲标的的实际波动是在不断变化的,因此投资组合会出现无风险收益指望的损益。

在实际对冲过程中,这一损益受gamma影响,但并不全部由gamma决定,还和波动率之差的路径积分有关。

如果给定波动率之差为一个确定的值,比如实际波动率大于对冲波动率也即

python 组合波动率_方差_20

,而持仓gamma是多头,那么gamma给对冲带来的就是收益;如果实际波动率小于对冲波动率,而持仓gamma是多头,那么gamma给对冲带来的就是亏损。

其实上述结论也容易理解,我们持有gamma是希望标的真实波动超过期权理论价值所设定的波动率(其实也就是期初期权价格对应的隐含波动率,而我们用这个波动率进行对冲),那么当我们判断正确时,我们是获得收益的,如果判断不正确,那么我们就会出现亏损。

但需要注意的是,上面表达式是一个在时间区间上积分的表达式,无论是标的真实波动率(已实现波动率),还是对冲波动率(交易员每天调整)是随时间变化的,而gamma本身也随时间变化,因此即使交易完成后,检查发现区间标的已实现波动率大于期初期权价格对应的隐含波动率,也不能保证gamma的多头一定会在对冲中获取盈利。

3. 不连续对冲,对冲波动率等于标的已实现波动率

事实上,由于我们根本做不到连续对冲,在非连续对冲的时候,gamma肯定会对我们的对冲效果造成影响。

因为不是连续对冲,因此每次对冲完delta后,等到下一次对冲,期间gamma是的delta不连续变化,我们总是对冲少了或者多了。如图所示:

python 组合波动率_时间片_21

不连续对冲,对冲误差的大小,一方面取决于当时的gamma值,一方面也取决于对冲频率。

假定

python 组合波动率_方差_22

为一个较小时间区间内

python 组合波动率_离散化_23

内股票价格的变化,

python 组合波动率_方差_24

为相应delta对冲组合价格变化,当忽略高阶项后,

python 组合波动率_gamma对冲 matlab_25

那么上式累积求和,我们可以得到

python 组合波动率_python 组合波动率_26

由于标的价格满足过程

python 组合波动率_python 组合波动率_27

将其离散化,那么

python 组合波动率_gamma对冲 matlab_28

由于

python 组合波动率_离散化_29

是一个随机变量,此时无法对其进行累加,因此这种分析很难继续进行。