【Option 101】【未完成】历史波动率的不同度量方法

以下所有材料均整理总结自 Volatility Trading(2nd edition)
by Euan Sinclair
. 自行翻译、整理以供学习交流。侵删。

1. Close-to-close

公式: σ ^ = Σ i = 1 i = N ( r i − μ ) 2 N \hat{\sigma} = \sqrt{\frac{\Sigma_{i = 1}^{i = N} (r_i - \mu)^2}{N}} σ^=NΣi=1i=N(riμ)2 再年化

优点: 简单易懂

缺点:

  1. 没考虑隔夜跳空,容易低估。

  2. biased,会系统性低估。这可以依赖参数修正,具体方法见Volatility Trading. 但这个调整系数也是基于标的GBM算出来的,在jumps的情况下有多准暂时没看到文献。

  3. 最致命的:inefficient(即estimator本身的variance很大,且随着样本数量N递减速度很慢,只有 O ( N ) O(\sqrt{N}) O(N ))。

    直观地看,一个30%vol的股票的30日close-to-close estimator,标准差能达到3.8%个vol,也就是说实际30%的vol测出来个37.6%也是两个标准差之内的事情,很正常的。显然误差太大。

以下为理论, 重点关注biase产生的原因,更正方法适用条件;inefficiency的度量和产生原因。实际操作中可以忽略。

数学上

1. Return独立就会产生低估的biase,现实中非独立的return Baise可能会更大。

基础统计告诉我们,把return的平方和加起来,然后对biase做调正,就能得到unbiased的的方差estimator,即:

V a r ( r ) ^ = Σ i = 1 i = N + 1 r i 2 N − 1 \hat{Var(r)} = \frac{\Sigma_{i=1}^{i = N+1} r_i^2}{N - 1} Var(r)^=N1Σi=1i=N+1ri2是unbiased。注意这个式子不论 r r r是不是normal都成立。

我们的close-to-close是这个estimator开根号,即

σ c t c ^ = V a r ( r ) ^ \hat{\sigma_{ctc}} = \sqrt{\hat{Var(r)}} σctc^=Var(r)^ .

但这个close-to-close estimator却是biased的,因为

E ( σ c t c ^ ) = E ( V a r ( r ) ^ ) ≤ E ( V a r ( r ) ^ ) = σ \mathbb{E}(\hat{\sigma_{ctc}}) = \mathbb{E}(\sqrt{\hat{Var(r)}}) \leq \sqrt{\mathbb{E}(\hat{Var(r)})} = \sigma E(σctc^)=E(Var(r)^ )E(Var(r)^) =σ

其中不等号来自于Jensen’s inequality(期望是平均,而平方根是凸的。所以平均的平方根大于平方根的平均。)

2. 正态分布假设下,可以推导出Biase的更正系数

假设标的符合drift为0,波动率为 σ \sigma σ的几何布朗运动。 s = σ c t c ^ s = \hat{\sigma_{ctc}} s=σctc^有如下的概率密度:

Volatility Trading by Euan Sinclair Chapter 2
s s s求积分得到

E ( s ) = b ( N ) σ \mathbb{E}(s) = b(N)\sigma E(s)=b(N)σ, 其中

Volatility Trading by Euan Sinclair Chapter 2
大致的 b ( N ) b(N) b(N)的值如下:

在这里插入图片描述
还有个毛估估的公式:
在这里插入图片描述

问题是,现实中的Data Generation Process是未知的,而且return的分布会更肥尾,靠谱的correction factor应该是基于类似t-distribution推导的出的,但这方面的文献暂时没看到。所以correction factor实操里暂时不使用。

3. Inefficiency:具体形式依赖于Normal Distribution,但从常识来讲,越厚尾的distribution实现值就散的越开,那基于实现值加总的estimator也就散的越开。也就是说,现实里 σ c t c ^ \hat{\sigma _{ctc}} σctc^的variance只会更大。

在正态分布下,close-to-close的variance是

在这里插入图片描述
利用下式稍加化简,
在这里插入图片描述
V a r ( s ) Var(s) Var(s) N N N最高次幂是1,这一项是
在这里插入图片描述

从这个式子可以看出estimator的方差只随着 N N N的平方根线性递减,降得很慢。

图像上,variance和N个反比例关系,也印证了estimator的误差随着 N N N平方根递减。

在这里插入图片描述

2. Parkinson 1980. aka High low HV

公式: σ ^ = Σ i = 1 i = N ( l n h i l i ) 2 4 N l n 2 \hat{\sigma} = \sqrt{\frac{\Sigma_{i = 1}^{i = N} (ln\frac{h_i}{l_i})^2}{4Nln2}} σ^=4Nln2Σi=1i=N(lnlihi)2 再年化

理解:

4Nln2是标的布朗运动假设下,振幅的second moment和波动率之间的转换系数。具体如下:

对于一个drift为0的布朗运动(注意,标的是Geometric Brownian Motion,log标的就是Brownian Motion),记每个小段时间为 t t t,振幅range为 l l l, 即 l = x m a x − x m i n l = x_{max} - x_{min} l=xmaxxmin.

Feller 1951 证明了 E ( l 2 ) = ( 4 l n 2 ) σ 2 t \mathbb{E}(l^2) = (4ln2)\sigma^2 t E(l2)=(4ln2)σ2t。取t = 1, 并在年化时对比例做调整即得到Parkinson HV。

优点: 有日内信息,而且也很直观

缺点:

  1. 没有跳空

  2. High Low数据不稳定

  3. 系统性低估,且不知道怎么调整. range和只适用于GBM的标的过程,而现实当中标的是jumps(即我们用的模型是连续的GBM,现实中更像是Poisson Arrival),所以会系统性地低估。这在国内商品期货上能得到验证

    低估到底有多剧烈?Garman & Klass(1980)用jumps来生成stock price,然后用Parkinson去测波动率,发现HV20这个estimator的平方差不多是真实variance的64%(粗略开根号一下,vol本身是80%)。

    当然在GBM的假设下,可以把调整系数推出来,但还是会碰到和close-to-close调整一样的问题,即不知道调整系数本身有多准。

3. Garman-Klass 1980, aka High Low Close HV

公式:

σ ^ = 1 2 N Σ i = 1 i = N ( l n h i l i ) 2 − 1 N Σ i = 1 i = N ( 2 l n 2 − 1 ) ( l n c i c i − 1 ) 2 \hat{\sigma} = \sqrt{\frac{1}{2N}\Sigma_{i = 1}^{i = N}(ln\frac{h_i}{l_i})^2 - \frac{1}{N}\Sigma_{i=1}^{i=N}(2ln2-1)(ln\frac{c_i}{c_{i-1}})^2} σ^=2N1Σi=1i=N(lnlihi)2N1Σi=1i=N(2ln21)(lnci1ci)2

理解: 系数和符号?

优点: 有日内信息

缺点: 和Parkinson本质上是一样的

注意: 计算时需要取到 c 0 c_0 c0的数据。

4. Rogers & Satchell 1991, OHLC

公式:

σ ^ = 1 N Σ i = 1 i = N [ l n ( h i c i ) l n ( h i o i ) + l n ( l i c i ) l n ( l i o i ) ] \hat{\sigma} = \sqrt{\frac{1}{N}\Sigma_{i = 1}^{i = N}[ln(\frac{h_i}{c_i})ln(\frac{h_i}{o_i}) + ln(\frac{l_i}{c_i})ln(\frac{l_i}{o_i})]} σ^=N1Σi=1i=N[ln(cihi)ln(oihi)+ln(cili)ln(oili)]

理解: 结合振幅和涨跌,计算波动率

优点: 日内信息更加细致,high low的错误影响相对减小

缺点: 没有跳空

5. Yang & Zhang 2001, OHLC + Jump

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
(图片引自邱紫华老师 上期所期权高级培训师课程 课件)

理解: 系数和加权方法?

优点: 日内日间都有

缺点: 跳空实际上是瞬间的,这里把跳空当做一个交易时间段处理,也就是用测diffusion的 σ \sigma σ的方法去测jump的 σ \sigma σ,会低估

注意: 计算时需要取到 c 0 c_0 c0, o 0 o_0 o0的数据。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
波动微笑是指隐含波动与执行价格之间的关系呈现出的特定形态。在股票期权中,波动微笑是不对称的,更准确的叫法是波动倾斜或波动假笑。它表现为隐含波动随着执行价格的递增而递减,形成左高右低的图形。波动微笑的原因有多种解释,包括杠杆效应和恐慌情绪。但也有人认为这只是市场的反应,没有特别的原因。 在Python中,可以使用不同方法来计算和绘制波动微笑。最常用的方法之一是使用金融数据分析库,如pandas和matplotlib。通过使用这些库,可以获取股票期权的历史价格数据,并计算隐含波动。然后可以使用matplotlib库将隐含波动与执行价格进行绘制,以呈现波动微笑的图形。 下面是一个示例代码,展示了如何使用Python绘制股票期权的波动微笑图形: ```python import pandas as pd import matplotlib.pyplot as plt # 获取股票期权的历史价格数据 option_data = pd.read_csv('option_data.csv') # 计算隐含波动 implied_volatility = calculate_implied_volatility(option_data) # 绘制波动微笑图形 plt.plot(option_data['执行价格'], implied_volatility) plt.xlabel('执行价格') plt.ylabel('隐含波动') plt.title('股票期权的波动微笑') plt.show() ``` 请注意,上述代码中的`calculate_implied_volatility`函数需要根据实际情况自行实现,以根据选定的模型和算法计算隐含波动。同时,根据数据的可用性和获取方式,可能需要对代码进行适当的修改。 总而言之,通过使用Python的金融数据分析库和可视化库,可以计算和绘制股票期权的波动微笑图形,从而更好地理解隐含波动与执行价格之间的关系。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【BSM模型】用实际市场数据计算隐含波动并验证波动微笑](https://blog.csdn.net/weixin_39771791/article/details/113508666)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值