如何巧算期权价格与希腊值:波动率(下)
版权所有,未经许可,不得全部或部分翻印或转载
3. 波动率(分上下两篇, 上篇已发, 这里是下篇)
(点击以上超链接, 可连贯阅读)
3.7 日内波动率的计算方法
前面所讲的波动率是基于每日收盘价计算得出. 然而, 期货价格在日内的变化往往会特别大. 当价格上涨时,一些交易者可能决定获利了结并开始抛售, 再次压低价格; 反之亦然. 例如, 某期货上午上涨, 下午又下跌, 回吐获利, 当结束一天结束时,收盘价保持不变, 那么按照前面的方法, 则该日的波动率为0\%, 而实际上它在一天中波动剧烈. 这种情景在计算波动率时也应该考虑. 事实上, 若市场交易出来的期权波动率水平(隐含波动率)与按照收盘价计算出来的历史波动率水平相同(无其他具体条件设定), 那么期权价格有可能太便宜了:因为频繁的日内波动应该在波动率的计算中反映出来. 交易员可利用两个波动率在盘中的错配机会获利。当隐含波动率比历史波动率低时,即期权价格被低估,买入隐含波动率低的期权很容易获利。反之,卖出隐含波动率高的期权也能获利。
因此,一名经验丰富的交易员能够察觉到日内波动性机会。下面列举几种情景:
图3.6 四种日内价格波动情景
情景1: 期货价格在日内无回调地持续上涨, 从$50涨至$51, 单日收益率为2%(因探讨日内波动, 收益率计算初始价格按开盘价计算, 下同),由16倍法则估算年化波动率为32%。
情景2:与情景1有相同的历史波动率(译者注:由于开盘价和收盘价与情景1中相同, 由此计算的单日收益率亦为2\%), 但价格走势不同,其在午后下跌1%而后反转上行,最终全天上涨2%。交易员若在32%左右隐含波动率选择(买入期权)交易, 那么, 在下午时段波动率加大的走势中是可以获利的。
情景3:该情景显示的波动率为0% (译者注:因为收盘价与开盘价均为$50, 首尾两个时点价格无变化)。然而,价格在盘中经历了大幅波动,上午先涨2%,下午又跌回吐上午的全部涨幅(译者注:原文描述为下跌2%, 实际上为下跌1/51=1.96%). 其实, 日内价格波动幅度大, 而基于首尾两个时点计算的历史波动率为0%. 对期权性敏锐的交易员能够从中获利.
情景4:该情景显示市场震荡剧烈:日内价格反复上下波动. 持有多头期权的交易员能从日内波动中获利颇多.
除情景1外, 在上述其他三种情景中, 由当日收盘价与开盘价(译者注:原文描述为上一交易日收盘价)计算出的历史波动均远低于实际的日内波动。情景2和情景4日内价格波动路径有相当大的差异,但当天价格均上涨2%。情景3虽然显示历史波动率为0%, 但上午上涨2%而下午又回吐上午的全部涨幅.
因此, 需要在原有的历史波动率添加样本点或者完全修订以便反映价格的日内波动性. 当然, 我们可以按小时、甚至分钟来计算波动率, 但有几种波动率计算方法开盘价和收盘价考虑了全天的高点和低点, 还可进一步结合开盘价和收盘价计算.
Parkinson方法便是其中一种, 计算公式如下:
在某些情况下, Parkinson方法比前面的历史波动率计算方法更好。然而, 这种估计方法依然存在缺陷(例如, 忽略了跳开缺口).
这里再给出几种波动率计算方法(该部分超纲. 译者在篇尾给出解释, 供有兴趣者深入了解):
Garman-Klass;
Rogers-Satchell;
Yang-Zhang.
情景4显示期货价格在日内高低点之间反复上下多次波动, 在波动率计算时应该将该细节特征考虑进去. 但应该清楚的是前面的历史波动率计算方法并不能很轻松地抓住这个特征. 因为波动率是意外事件信息冲击的结果, 因而, 严格应用某一种波动率计算方法是无法充分刻画价格波动特征的.
为了最充分反映价格的日内波动特征(即同样一种价格情景下,各种波动性计算值的上界), 每次价格波段可以切割为若干小段(微小时段增量或者趋势性变动) , 然后再将其拉伸成直线. 因此, 将每一小段波动的绝对量累加, 可以称为“最长线段(the stretch)”, 如图3.7所示.
图3.7 最长线段(the stretch)
(日内价格的最大百分比变动,表示日内波动率的上界)
很有趣的一点是尽管四种日内价格波动情景在某些方面类似(如价格波动区间相同), 但呈现出的波动性有着如此大的差异. 显然,“最长线段”是各种不同计算方式所得波动率的最大值,因为期货价格走势图再也无法拉伸.
上面展示了波动率的几种计算方法, 以及定义一个合理的波动率所需考虑的因素. 操作中,不建议仅采用收盘价对收盘价计算的波动率(不含μ), 应该考虑其他几种计算方法. 在尝试估计波动率时, 我们应该真正深入研究市场, 试图弄清楚如何从期权性中获利. 回测可能会提供更多关于波动率应用的信息, 或许能搞清楚如何将日内波动率运用到期权交易中, 并且选出最适合的波动率计算方法. 然而, 最终要取决于交易员利用期权性的方式, 这将在介绍gamma和策略的有关章节中讨论: 宽对冲与紧对冲(the wide versus the tight hedger). 某交易员持有期权多头头寸, 等待期权价值增加(或称为实值期权), 可能不会进行日内对冲; 而另一个交易员可能会利用市场波动性在日内进行多次对冲. 第一个交易员将无法从市场日内波动中获利, 可能以更高的价格卖出其持有的期权(因为日内波动也对隐含波动率有决定作用).
3.8 历史波动率 vs 隐含波动率
前面多次提及隐含波动率, 它是通过期权报价反演出来的波动率. 隐含波动率能够反映期权市场的供需情况, 与由期货价格计算出来的历史波动率存在差异.
两种波动率之间的差异可能是交易员对未来行情的预期造成的. 例如, 某公司发布季度盈利数据、某商品的重要供需数据变动、政治决策、地缘紧张等, 这些事件均有可能导致标的资产价格的大幅波动. 在这些情景下, 为了能获得足够的期权性收益, 交易员通常会预测市场未来的潜在波动并且会抬高波动率. 很多时候(特别是重大事件性影响消退以后)波动率最终会再次回到公允水平——与历史波动率保持一致. 有时隐含波动率会很快回归到公允水平,也许在一个交易日内就会回归.
市场在经历剧烈波动后会慢慢回归平静, 这时, 历史波动率较之前已经降低, 但隐含波动率可能仍然偏高, 变动相对滞后. 在市场回归平静的过程中, 历史波动率有可能再次上升, 这会令交易员在做出卖出隐含波动率决定时态度偏谨慎. 换句话说, 若在标的资产维持一段时间低波动状态后, 历史波动率突然上升, 那么, 这时隐含波动率可能仍然处于偏低水平. 交易员的谨慎态度再次导致了隐含波动率滞后于历史波动率.
若历史波动率在相当长一段时间内表现稳定, 无论是低波动状态还是高波动状态, 隐含波动率与历史波动率均会逐步收敛(即越来越趋同).
交易员在建立期权头寸时, 应该注意到历史波动率与隐含波动率之间的差异. 若某项特定资产的波动率能够回到均值水平 (具有均值回归性, 要考虑均值回归需要多久时间), 交易员则要考虑其长期波动率的均值是多少. 如果该资产属于某一大类资产, 那么, 该类资产的隐含波动率(相对于历史波动率)水平是多少?同样重要的问题是, 历史波动率是如何回归到(计算出的)均值水平的?也许某天资产价格出现(不同寻常的)大跳空, 引起历史波动率远高于将该事件过滤后的波动率水平(即估值高于均值水平). 或者, 在计算历史波动率时没有出现跳空, 但交易员可能预期不久后会出现跳空现象(即估值低于均值水平). 当考虑到所有的可能性时, 交易者应能对波动率做出较好的估值. 如果能较准确地估计波动率,就意味着能为执行策略留足盈利空间(几个点的波动即可). 若只赚一个点的波动就跑,这种交易习惯最终不会证明能成为赢家: 至少应该考虑错误定价、意外事件对波动率的冲击空间, 这很容易造成超出一个点的波动.
监控历史波动率(以多种方式计算)和隐含波动率之间普遍存在的价差是有价值的. 如前所述, 我们应该保持非常谨慎的态度,并记住几种场景.
3.9 译者注(几种日内波动率的计算方法及其关联)
任何给定的波动率计算方法只是真实波动率的片面反映, 只能近似估计. 在探索高频波动率上方面, 文献较多. 从应用的角度, 推荐Euan Sinclair《Volatility Trading》(上海交大出版社在2013年出版中译本,由童斌等翻译). 该书第二章介绍了上面提到的几种日内波动率计算方法, 但公式书写存在笔误, 而Yang and Zhang(2000) 的论文中公式书写是正确的, 因此公式部分推荐阅读后者
. 下面的内容主要来自该书和Yang and Zhang(2000), 同时增加一些注解.
3.9.1 20倍法则 vs 16倍法则
在波动率上篇中, 已经说明16倍法则是日收益率与年化波动率之间的一种近似关联, 但适用范围太小. 而将价格日收益率变动与波动率简单联系起来对于交易员是相当有帮助的, 那么有没有适用范围更广的法则呢? 这里不加证明地直接给出20 倍法则.
从统计学角度看, 不含μ的标准差计算方法其实是二阶原点矩的开方
, 这种平方项均值再开方的算法, 可能从直觉上不直观. 那么, 以日收益率绝对值的平均变动来表示波动率更为直观, 这种方式其实是一阶绝对矩. 若一阶绝对矩
与二阶原点矩开方
的存在某种联系, 则能在应用中快速估算波动率. 幸运的是, 有如下公式:
这意味在复杂的行情下, 将日收益率绝对值的平均值乘以20即可得到年化波动率的近似速快估算. 回忆上篇中的例子, 若第一天价格变动0.5%,第二天变动1.5%,则平均绝对百分比变动为1%, 应用先前的16倍法则得出16% 的波动率明显偏小, 更合理的波动率为20%. 利用删除μ的公式计算波动率为22.6%(严格计算为
, 因只有两个样本点分母用n而不是n-1, 原书计算有误), 显然, 20 倍法则更佳.
上面这个例子似乎不恰当. 我们再增加一个样本点, 比较一下计算结果. 若第三天价格变动2%, 则平均绝对百分比变动为1.33%, 按照16倍法则和20倍法则, 估算年化波动率分别为21.33%和26.67%. 若严格按照删除μ的标准差公式计算, 可得年化波动率为28.84%(
). 从中能看出20倍法则更逼近严格计算值, 认为更具合理性.
3.9.2 Parkinson(1980)计算方法
前面的Parkinson(1980)波动率计算方法在构造时仅采用了最高价和最低价, 这种由日内价格极差(range, 最高价减去最低价为极差,这里取对数价格的差值)构造的波动率估计为交易员通常所理解的形式, 直觉上认为该计算方法能在较少时间内收敛于真实波动率, 且有可能高估波动率, 因为交易很少能以最高价或者最低价的极端价格执行. 但是实际上, 令人惊讶的是该方法会低估波动率. 交易很难以极端价格成交是事实, 但这一事实与波动率高估或者低估无关, 只能认为价格极差与波动率有关, 可以用于估计真实波动率.
Parkinson方法为什么会低估真实波动率? 下面给出一个解释. 因为交易只能在一天中部分时段进行, 这意味在非交易时段中不可观测的真实价格不会成为选取最高价或最低价的样本点. 因此, 仅使用能观测到的价格极差构造波动率, 有可能系统性低估波动率. Garman和Klass(1980)模拟了低估程度与样本量的关系, 发现样本量增加将降低低估的程度. 见表3.6. 该方法仅对没有跳开和漂移的情况有效.
在Yang and Zhang(2000), 符号定义如下:
根据上述符号定义, Parkinson(1980)公式还可以改写为
下面给出一段Matlab程序并附上了每一步的计算说明
%参考The Extreme Value Method for Estimating the Variance of the Rate of Return
%返回样本1/n时间段内的方差值
% 输入变量x为价格的对数,变量n为采集的每日价格样本量.
%输出变量parkinson1为计算结果, parkinson2和test可忽略.
function [parkinson1,parkinson2,test]=parkinson(x,n)
if nargin==1 %如果仅输入变量x, 默认日内价格采集25个样本点.
n=25;
end
dis=length(x)/n; %求出表示交易日天数
x_max=zeros(n,1); % 用于存放最大值的存储器
x_min=zeros(n,1); % 用于存放最小值的存储器
j=1; % 设置计数器, 用于按交易日填充最大值和最小值
while j*dis<=length(x) % 当j为1时, 求出第1日的最大值和最小值, 依次直到全部求出
x_max(j)=max(x((round((j-1)*dis)+1):round(j*dis))); % 求第j日最大值并存在到存储器中
x_min(j)=min(x((round((j-1)*dis)+1):round(j*dis))); % 求第j日最大值并存在到存储器中
j=j+1; % 第j日最值填充完毕后,下移至j+1,然后执行回到while语句循环执行
end
l=x_max-x_min; % 每日最大值与最小值的差值
parkinson1=mean(l.*l)/(4*log(2));
%上式返回Parkinson(1980)的方差. 分子Mean(I.*l)表示极差对数收益率平方的均值
parkinson2=mean(l)^2*pi/8;
% 上式是另一种算法,用到X期望的平方与X平方的期望关系, 读者可以忽略,
test=2*mean(l.*l)/(log(2)*pi)/(mean(l)^2);
%用于检验X是否适用于Parkinson方法, 读者可忽略.
end
3.9.3Rogers-Satchell-Yoon(1994)计算方法
这里直接给出Rogers-Satchell-Yoon(1994)方法公式
类似地,
表示为第i个交易日的开盘价. 注意: 在《Volatility Trading》译本中存在笔误, 未加中括号[ ]
. 源自该书的一些网络资料也可能随之出错, 如知乎的类似公式和雪球的类似公式
由Yang and Zhang(2000)的符号定义, 以方差形式表示的公式可改写为
3.9.4 Garman-Klass(1980)计算方法
Garman-Klass(1980)方法的计算公式为
其中
为第i个交易日的收盘价, 其它字母表示的含义不变.
由Yang and Zhang(2000)的符号定义, 以方差形式表示的公式可改写为
上述公式给出了Garman-Klass(1980)波动率计算方法与Parkinson(1980)、Rogers-Satchell-Yoon(1994)两种方法的关联.
同样由于离散取样的原因, 该方法也会系统地低估真实波动率, 而且低估程度比Parkinson(1980)还要严重.
3.9.5 Yang-Zhang(2000)计算方法
Yang-Zhang(2000)方法适用于开盘跳空的情景, 其本质是Rogers-Satchell-Yoon方法、收盘价对收盘价以及收盘价对开盘价方法的加权平均, 这里直接给出Yang and Zhang(2000) 原文中方差形式的公式
(特别注意《volatility trading》等其他资料中将k中常数1.34错写为1了. ) 源自该书的一些资料链接会出现同样的错误, 如雪球上相关公式.
3.9.6 小结
以上几种波动率估算方法, 每一种方法都是为了克服某种缺陷而构造的, 理论上应该是越来越能逼近真实波动率. 其实不然, Brandt and Kinlay(2005)用实际市场数据进行回测时, 发现他们之间的相关性比仿真数据要高很多(表3.8为模拟数据下的各算法结果的相关系数, 表3.9为实际交易数据下各算法结果的相关系数). 因此, 没有迹象表明哪种方法更优, 因为所有的度量方法都从不同角度包含了一定的信息量. 由于无法同统计的角度评判优劣, 所以, 在应用时要认真考虑不同方法到底传递何种信息, 在决定采用哪种算法. 例如, Parkinson波动率为40%, 而收盘价对收盘价的波动率为20%, 可以得出真实波动率绝大部分是由日内价格极差造成的. 具体请看《波动率交易》第二章各方法的优缺点.
表3.8是模拟数据下各算法的相关系数, 除了Garman-Klass与Yang-Zhang的相关系数几乎为1外, 其他算法之间相关系数多在0.6—0.8之间.
表3.9是在真实数据下的相关系数, 所有算法之间的相关系数几乎都接近于1, 显示他们之间的极高关联.
准备知识介绍到这里,下一节将真正进入期权的基础知识.