Skip to content
全部期权指南
历史波动率测量阅读约 10 分钟

用 OHLC 估计波动率:比较 Parkinson、Garman–Klass、Rogers–Satchell 与 Yang–Zhang

比较 OHLC 方差估计公式及其漂移、隔夜跳空假设,并用三段假设行情演示计算

本指南内容OHLC估计量测量什么

简短摘要

OHLC估计量使用最高价、最低价、开盘价与收盘价,衡量已经发生的每期方差。Parkinson、Garman–Klass、Rogers–Satchell与Yang–Zhang依赖不同假设;它们测量的是已观察到的价格,不预测方向或未来波动率

OHLC估计量测量什么

OHLC指同一根K线或同一根价格柱的开盘价、最高价、最低价与收盘价。只要交易时段边界定义一致,最高价和最低价就能补充两次相邻收盘价看不到的价格路径信息

下列公式估计每根价格柱或每个交易时段的对数收益方差。方差开平方得到该期间的标准差。年化需要匹配周期数并说明过程假设;年化不会把历史测量变成预测。要与收盘到收盘估计对照,可参阅已实现波动率计算

先统一价格与交易时段

对第 i 根价格柱,记开盘价为 Oᵢ、最高价为 Hᵢ、最低价为 Lᵢ、收盘价为 Cᵢ。四个价格必须采用相同的时段与价格序列定义;通常 Hᵢ ≥ max(Oᵢ,Cᵢ),Lᵢ ≤ min(Oᵢ,Cᵢ)

先确定时区、交易时段、价格柱频率、报价来源、拆股与分红的调整方式,以及缺失或错误成交的处理规则。若不同数据商的日线边界不同,最高价与最低价涵盖的时间段也不同

公式使用正价格比值的自然对数。把已调整收盘价与未调整高低价混用会制造虚假变化;一笔异常成交也可能显著扩大区间

三根无标签K线,实体和高低影线各不相同,旁有淡色区间标记
K线实体位于最高与最低价区间内的概念图;图形并非市场数据

三种使用时段内价格路径的估计量

以下公式中的 mean 表示对 n 根价格柱取平均。Parkinson估计量只用最高价与最低价:

σ²P = mean[(ln(Hᵢ/Lᵢ))²] ÷ (4 ln 2)

它基于零漂移的连续价格路径模型推导而来,不会单独计入前收盘价到今开盘价的跳空。见[Parkinson论文]({source:parkinson1980ExtremeValueVariance})

Garman–Klass使用时段内的最高价、最低价、开盘价与收盘价:

σ²GK = mean[0.5(ln(Hᵢ/Lᵢ))² − (2 ln 2 − 1)(ln(Cᵢ/Oᵢ))²]

开盘到收盘的修正增加了时段内信息,但不代表它在所有情形下都更优;效率取决于价格模型与K线数据质量。公式没有单独加入昨收至今开的收益项。原始模型还假设价格路径连续且漂移为零。见[Garman与Klass的论文]({source:garmanKlass1980OhlcVolatility})

Rogers–Satchell估计量也使用四个价格:

σ²RS = mean[ln(Hᵢ/Oᵢ)ln(Hᵢ/Cᵢ) + ln(Lᵢ/Oᵢ)ln(Lᵢ/Cᵢ)]

在该估计量的模型假设下,它不要求把漂移设为零。但它仍然只测量时段内价格路径,没有单独加入前收盘到今开盘的变动。见[Rogers与Satchell的论文]({source:rogersSatchell1991VarianceEstimator})

Yang–Zhang纳入隔夜跳空

先计算跳空收益 uᵢ = ln(Oᵢ/Cᵢ₋₁) 和时段内收益 cᵢ = ln(Cᵢ/Oᵢ)。Yang–Zhang将两者的样本方差与RS项的平均值结合:

σ²YZ = s²overnight + k s²open-close + (1 − k) mean(RS)

其中 s²overnight 是 uᵢ 的样本方差,s²open-close 是 cᵢ 的样本方差,mean(RS) 是Rogers–Satchell项的平均值。此处 n 表示观测数,系数为 k = 0.34 ÷ [1.34 + (n + 1)/(n − 1)]

对于 24/7 交易的市场,“隔夜”收益是按所选K线边界计算的前一根K线收盘至当前开盘的变动,并不表示市场夜间休市。应一致定义K线边界。

与上面三种仅测量时段内路径的公式不同,Yang–Zhang也计入前收盘至今开的变动。计算仍要求时间边界一致、价格数据可靠;公式无法弥补缺失数据或错误报价。见[Yang与Zhang的论文]({source:yangZhang2000DriftIndependentOhlcVolatility})

三个交易时段的假设示例

假设前一收盘价为100,之后连续三根日线K线的 (O,H,L,C) 分别为 (100,104,98,103)、(105,108,102,103) 和 (101,106,99,105)。这些价格完全是假设值,只用于演示计算,并非市场数据

把三个价格柱代入公式并取平均,得到每个时段的大致方差与标准差估计:

估计量每期方差日标准差
Parkinson0.00137853.71%
Garman–Klass0.00155663.95%
Rogers–Satchell0.00154583.93%
Yang–Zhang0.00186464.32%

Yang–Zhang使用 n = 3,因此 k ≈ 0.1018。跨时段收益约为 0、ln(105/103) = 0.01923 与 ln(101/103) = −0.01961,以 n−1 为分母计算的样本方差约为 0.0003771。开盘至收盘收益为 0.02956、−0.01923 与 0.03884,以同一 n−1 分母计算的样本方差约为 0.0009731,mean RS为 0.0015458。代入后,Yang–Zhang方差为 0.0018646,日标准差为 4.32%。这个小型假设样本不能证明哪种方法更准确

结果不同不等于方法排名

各公式使用的信息不同,对漂移与跳空的处理也不同,所以数值会有差异。估计值较大不表示找到了“真实”波动率,较小也不证明市场更平静。只有在价格序列、K线、时段与方差口径一致时,比较才有意义

把期间方差年化时,通常先乘以每年的期间数,再开平方。期间数、过程是否稳定、收益自相关以及纳入哪些交易时段,都会影响解释。波动率聚集与GARCH说明讨论的是另一个问题:模型条件下的未来方差

哪些情况会让区间失真

日线OHLC隐藏了时段内事件发生的顺序;最高价和最低价容易受错误或稀疏成交影响。交易时段边界不同,也可能把同一个市场跳空分到不同K线。四种公式都不提供价格方向,本身也不是交易信号

应与结果一起记录时段定义、K线频率、价格调整规则、窗口长度、年化方法和缺失观测,再检查价格模型与假设是否适合该标的及问题。历史方差不保证未来价格区间

常见问题

Q1哪种OHLC波动率公式最准确?

没有一种公式在所有情形下都最好。Parkinson、Garman–Klass、Rogers–Satchell与Yang–Zhang使用不同价格模型并以不同方式处理隔夜跳空;应先核对假设是否符合数据

Q2Yang–Zhang会计入隔夜变动吗?

会。它使用前一收盘至当前开盘对数收益的样本方差,同时加入时段内的估计项

Q3OHLC估计量能预测未来波动率吗?

不能。它们估计的是已观察价格的方差。未来波动率尚未发生,预测需要另行建立并检验模型

资料来源与延伸阅读

报告问题

我们会准备一封包含本文链接的邮件。发送后,Mark 才会收到你的反馈

快速检查

读完指南后,用 3 道题检查一下

问题 1 / 3

问题 01

Parkinson估计量使用哪些价格?

选择答案即可查看解释

期权术语表