Senzoukria · 术语表

Roll 隐含价差

Roll 隐含价差是仅从价格变化出发对有效买卖价差的一个估计。理查德·罗尔在 1984 年指出,当成交在一个有效市场里在买价和卖价之间跳动时,相邻的价格变化具有负的自协方差,而价差等于那个自协方差取负之后平方根的两倍。

更新于 2026 年 9 月首次发布:2026年9月25日

本页目录
  1. 公式
  2. 它为什么有效
  3. 一个算例
  4. 在 Senzoukria 里
  5. 常见错误
  6. 相关内容
  7. 同一栏目
  8. 其他语言版本
  9. 常见问题

公式

设 γ 是一个窗口上相邻价格变化的一阶自协方差。如果 γ 为负,Roll 对价差的估计是 S = 2 × √(−γ)。如果 γ 为零或者为正,这个模型就没有答案:一个正数取负之后的平方根不存在,估计没有定义。

原始文献是 Roll 的《A simple implicit measure of the effective bid-ask spread in an efficient market》,《金融学杂志》,1984 年。注意「没有定义」不是一个实现上的缺陷,而是这个模型自己给出的回答。

它为什么有效

设想真实价值不变,而成交在买价和卖价之间随机交替。一笔在卖价的成交平均之后跟着一个更低的价格,而一笔在买价的成交跟着一个更高的价格。

因此相邻的价格变化倾向于反转,而那次反转的大小和价差绑在一起。这个估计量正是从反转里读出价差。而任何其他让价格反转的东西——比如一次冲击之后的均值回复,或者一张被切成很多块的订单——也会被算成价差。这一点决定了它的用法:它是一个上界性质的估计,不是一个测量。

一个算例

在某个窗口上,收盘价相邻变化的自协方差是 −0.015625(点的平方)。那么 S = 2 × √0.015625 = 2 × 0.125 = 0.25 点,在一个最小跳动为 0.25 的合约上正好是一跳。

如果下一个窗口稳定地走趋势,它的自协方差可以变成正的,而这个估计对那个窗口就消失了,而不是降到零。这个区别很重要:图上的空白说的是「模型不适用」,不是「价差为零」。

在 Senzoukria 里

Roll 隐含价差是量化组里的一个窗格指标。它的「Window (price changes)」默认是 100,范围 10 到 2,000;它的「Unit」可以是跳(默认)、价格或者基点。「When autocovariance ≥ 0」这个设置在「Gap (undefined)」(默认)和「Zero (Harris 1990)」之间选择,后者是那些在很多窗口上对这个估计量取平均的研究所用的约定。还有一个「Return definition」设置,在收盘价差和对数收益之间选。

变化量会以窗口均值为中心做去中心化处理,这样漂移就不会被算成跳动;而一个有数据缺口的窗口不产生数值。这个指标读的是 K 线收盘价,不是订单簿,而它自己的描述写明:它对某一瞬间所显示的价差什么都没说。

常见错误

  • 把图上的空白读成价差为零。一个没有定义的估计意味着这个窗口没有按模型所假设的方式表现。
  • 跨 K 线尺度去比较估计值:一分钟和五分钟 K 线的收盘价,把不同数量的真实价格移动和跳动混在了一起。
  • 把一次急剧反转期间的一个很大的估计值当成一个很宽的价差;它可能是被算成跳动的均值回复。

同一栏目

其他语言版本

常见问题

为什么 Roll 的估计值经常是缺失的?
因为真实的价格变化在一个窗口上经常是正自相关的——在趋势里,或者在信息到来时——而这个模型此时没有定义。留一个空白是诚实的输出;而把它替换成零是某些研究在对很多窗口取平均时所用的约定,Senzoukria 把它作为一个可选项提供。
Roll 价差和报出来的价差是一回事吗?
不是。它是对这个窗口上平均有效价差的一个估计,从成交价怎么跳动里推断出来。在一个报价价差几乎总是一跳的期货合约上,它可以算出高于或者低于一跳的值,取决于这个窗口里包含多少反转。
NEXT

继续阅读