Roll 买卖价差估计法:公式、示例与局限
了解 Roll 估计法如何根据负收益协方差推算有效买卖价差,跟随假设数据完成计算,并认识其模型假设何时失效。
本指南内容Roll 估计法旨在衡量什么
简短摘要
Roll 估计法根据连续成交价收益的负协方差,推算模型所隐含的有效买卖价差。它使用成交价格,而不是记录的报价;但估计结果取决于对有效价格、交易方向、抽样方式以及样本期内价差稳定性的假设。
Roll 估计法旨在衡量什么
报价价差是某一时点卖价与买价之间的差额。有效价差则将实际成交价格与同期中间价比较,以概括交易实际承担的成本。Roll 估计法是有效价差的一种低频代理指标:它利用成交价变动的序列协方差,推算可能造成短期价格反转的价差。
它的优势是所需数据相对有限。如果有可靠成交价格,却没有历史买卖报价或交易方向标记,仍然可以计算。这使它有时适合做历史比较,或用于报价记录不完整的市场。但它无法重建报价簿、识别每笔交易的主动方向,也无法告诉交易者当前可成交的价差。Roll 的原始论文在有效市场模型中推导了这一指标,并指出估计对象是有效价差,不一定是屏幕上显示的报价价差(Roll,1984)。
这个估计值也不是完整的交易成本指标。它不包括佣金、特定订单造成的市场冲击、等待成本、未成交数量或观察之后的价格变动。应把它看作对历史成交价格行为的一种模型化概括,而不是可执行报价或完整的回测成本模型。
买卖价差反弹会产生负协方差
设 \(x_t\) 为成交价格的对数,\(m_t\) 为买价和卖价围绕的不可观测对数价值,\(s\) 为对数价格单位下的完整有效价差。在简单的对称模型中,
\[ x_t=m_t+\frac{s}{2}q_t, \]
其中,在卖价处由买方发起的交易令 \(q_t=+1\),在买价处由卖方发起的交易令 \(q_t=-1\)。因此,观察到的收益为
\[ r_t=\Delta x_t=\Delta m_t+\frac{s}{2}(q_t-q_{t-1}). \]
假设交易方向彼此独立,\(+1\) 与 \(-1\) 出现的概率相同,有效价值创新不存在序列协方差,而且整个样本期内价差固定。当交易从买卖盘的一侧转到另一侧时,即使基础价值几乎没变,成交价格也会跨越价差。在卖价买入后转到买价卖出,会先出现负收益、再出现正向反转;反向顺序也会产生相同机制。如果连续两笔交易在同一侧成交,它们之间的价差成分可能为零。
在这些假设下,价差成分会使相邻收益平均朝相反方向变动:
\[ \operatorname{Cov}(r_t,r_{t-1})=-\frac{s^2}{4}. \]
对 \(s\) 求解即可得到 Roll 公式。这个协方差模式是模型推导的结果,并不能证明观察到的每次价格反转都由买卖价差造成。
<!-- Illustration placement: after section 3; text-free conceptual comparison of a smooth underlying value path with transaction prices alternating above and below it. No labels, axes, or values. -->
使用一阶协方差,而不是自相关
将一阶协方差记为 \(C_1=\operatorname{Cov}(r_t,r_{t-1})\)。对 \(T\) 个收益,一种常见的样本计算方式是
\[ \widehat C_1=\frac{1}{T-1}\sum_{t=2}^{T}(r_t-\bar r)(r_{t-1}-\bar r), \]
其中 \(\bar r\) 是样本均值。如果 \(\widehat C_1<0\),代入估计量为
\[ \widehat s_{\text{Roll}}=2\sqrt{-\widehat C_1}. \]
估计值的单位与协方差中使用的收益相同。如果 \(r_t\) 是对数收益,\(\widehat s\) 就是比例价差或对数价格价差。如果输入是美元价格变动,估计结果则以价格单位表示。比较资产或时期前,应说明变换方式、抽样间隔及协方差计算约定。
Roll 强调的是协方差,而不是相关系数。相关系数要除以无条件收益方差,其中也包括有效价值因新信息而发生的变动。即使价差机制没变,这种由消息驱动的方差也可能改变。未标准化的协方差在模型中与价差平方直接相关;用自相关替代会改变估计量及其含义。如果研究使用对数价格、缩放收益或不同分母,应明确说明具体约定。

假设算例:−1.44 bp² 推得 2.40 bp
假设一组虚构的成交价对数收益以基点表示,去均值后的一阶样本协方差为 \(-1.44\,\text{bp}^2\)。估计值为
\[ \widehat s_{\text{Roll}}=2\sqrt{-(-1.44)}=2\sqrt{1.44}=2(1.20)=2.40\,\text{bp}. \]
在模型假设下,这是完整比例价差估计值 \(2.40\) 个基点,即 \(0.024\%\)。若假设中间价为 \(\$100\),完整价差换算为每股美元金额约为
\[ \$100\times 0.00024=\$0.024 \]
从中间价到单侧的距离约为其一半,即每股 \(\$0.012\)。假设报价保持不变,交易者先以卖价买入 1,000 股,再以买价卖出,完整价差对应的价格差约为 \(\$24\),尚未计入佣金、其他费用、价格变动或市场冲击。这些只是示范换算,不是实际观察到的报价或有保证的成交成本。
这个算术结果无法说明 \(\$100\) 是否为可实际成交的中间价、当时可成交数量有多少,或订单会以什么价格成交。Roll 估计值把历史样本压缩成一个统计量,却可能掩盖日内时段、订单规模或市场状态的差异。资产、抽样间隔和价差定义不一致时,不应拿该估计值与当前显示的价差比较。
价差和抽样窗口改变时,估计对象也会改变
假设 \(s\) 固定是一种简化。Roll 也讨论随时间变化的价差,并在模型下推导出它与平均平方价差的关系。在这种情况下,对公式开平方得到的通常是均方根价差,而不是算术平均价差。由于价差以平方形式进入,少数特别宽的价差观察值可能对估计结果产生不成比例的影响。
原模型还有一个听起来更普遍的结果:在假设成立时,不重叠观察间隔的长度不会改变预期的价差诱发协方差。这并不保证实际的日频、周频和日内估计会相同。真实交易方向可能连续多个观察期保持不变,有些区间没有成交,价差状况也会变化。改变抽样间隔还会改变哪笔交易成为抽样价格,以及每个收益中包含多少信息噪声。
先确定抽样规则,再查看结果。例如,应按一致规则抽取成交价格进行比较,不要混合官方收盘成交、中间价标记和过时的最新价。应说明收益跨越的是日历时间还是交易时段,假日与非交易时段如何处理,以及是否调整公司行动或合约换月。即使公式相同,不同抽样间隔也意味着不同的实证设计。
协方差为正时,基本估计值没有定义
只有样本协方差为负时,平方根才是实数。如果 \(\widehat C_1=0\),代入计算得到零;如果 \(\widehat C_1>0\),基本公式没有定义。样本协方差为零或正,并不能证明真实价差为零。可能原因包括抽样噪声、交易方向持续、价格离散性、有效价值收益存在序列依赖,或样本太短而无法把价差与噪声区分开。
一些实证实现会在开平方前把正协方差截为零;另一些会取绝对值,或只报告协方差为负的窗口。这些做法能产生一个数值,但属于额外规则,而不是 Roll 公式的推论。应报告未定义估计值的数量、估计值被设为零的频率,以及排除样本是否改变了分析范围。静默取绝对值,可能会把与模型矛盾的协方差转成正的价差估计。
小样本还会带来另一问题:协方差本身是有误差的估计值,之后又经过平方根变换。Harris 推导了 Roll 模型下的有限样本性质,并指出噪声可能使样本协方差变正,而非线性变换可能造成明显偏差(Harris,1990)。除点估计外,还应报告样本长度及对合理窗口的敏感性;不要展示价格数据无法支持的精度。
交易方向或有效价格变动持续时,模型会失效
简单推导所需的条件不只是负协方差。它还假设买方发起与卖方发起的交易彼此独立且概率相同,价差围绕有效价值对称,有效价值创新没有序列协方差,而且抽样过程能够代表成交价机制。拆分市价单和库存管理可能使交易方向持续。如果买方订单连续到来,成交收益中的价差成分可能持续朝同一方向,使负协方差弱于模型预测。
中间价路径本身也可能存在序列依赖。动量、反转、过时价格、异步观察或按计划发生的价格调整,都可能在有效价差未变化时产生正或负的收益协方差。价格离散性和最小报价单位也可能造成自身的反转。这些因素不必主导整个样本,也可能影响估计:该估计量仅从一个矩推断价差,因此其他任何影响该矩的过程都可能干扰结果。
价差随时间变化还会让样本平均与稳定的市场属性有所不同。新闻、开盘和收盘、交易清淡或市场承压时,价差可能扩大。全期间估计值会掩盖这些时段;短窗口又可能因样本太少而无法可靠估计协方差。检查时间序列并说明窗口定义。在模型下,负的序列协方差与买卖价差反弹相符,但它不是对全部短期价格变动的因果分解。
报价数据和其他低频估计法回答不同问题
若有可靠的报价和成交数据,可以将每笔成交价与同期中间价比较,并考虑交易方向,直接计算有效价差。这需要同步且清理过的观察数据,并明确处理锁定、交叉、过时或时间顺序异常的报价。直接算法衡量该数据集中实际发生的交易;Roll 则从成交价序列协方差推算价差。[交易方向分类指南](/zh-CN/learn/trade-direction-classification-lee-ready-algorithm-explained)说明了为什么交易方向本身也可能需要估计规则。
其他低频方法使用不同信息,也依赖不同假设。Hasbrouck 根据每日收盘价利用 Gibbs 抽样器估计成本,而不是只依靠基本 Roll 代入公式(Hasbrouck,2009)。Corwin 和 Schultz 使用每日最高价与最低价构造价差估计法,不依赖相同的交易方向动态(Corwin 和 Schultz,2012)。这些替代方法并不会让任何价格序列都能直接显示报价价差;每种方法都有自己的假设和验证范围。
实际选择取决于要回答的问题。报价数据有限时,低频代理指标可能适合历史跨市场比较,但应报告失效率与假设。决定订单时,应查看当前买价、卖价、深度和订单规模。[期货价差与滑点指南](/zh-CN/learn/futures-bid-ask-spread-and-slippage-explained)区分报价价差与实际成交差异;[ETF 流动性指南](/zh-CN/learn/etf-trading-volume-vs-liquidity-explained)说明为什么成交量本身不能描述可执行流动性。
报告假设,并将估计值与交易信号分开
可复现的报告应说明观察数据是实际成交、官方收盘价还是其他成交价代理;输入是价格变化还是对数收益;抽样间隔、观察数量、协方差分母,以及如何处理零或正协方差。还应说明资产范围、日期区间、公司行动与合约换月调整、数据筛选规则,以及价差以价格、百分比还是基点表示。如果价差稳定这一假设不合理,应报告预先设定的子期间估计,而不是挑选协方差最负的窗口。
Roll 估计值是模型下的历史交易成本代理。它不能显示今日报价、保证成交价格、衡量策略的全部成本,也不能预测下一期收益。回测仍需要符合交易场所、订单规模、时点、佣金与成交行为的订单规模成本模型,涵盖价差、佣金、市场冲击、部分成交和时机。估计价差较低本身不代表存在可交易优势。不同抽样频率下的已实现波动率可参考[已实现波动率指南](/zh-CN/learn/realized-volatility-calculation)。
如果用 Roll 估计值对资产横向排序,应先统一报价单位、价格复权方式、取样时间和样本长度。不同市场的最小报价单位、交易活跃度与非交易时段都会影响价差反弹在成交价序列中的可见程度。报告每个资产有多少窗口能够估计、正协方差窗口占比,以及无法估计的窗口如何处理;还可按时段或流动性分组展示结果。若只保留负协方差窗口,剩余样本可能系统性偏向某些市场状态。筛选本身改变了分析问题,因此筛选后的估计不能直接解释为整个市场的平均交易成本。
还应预先写明对成交价缺漏、重复记录和异常跳价的清理规则,并保留清理前后的敏感性对照,因为数据处理本身可能制造或抹去短期反转。
常见问题
Q1Roll 估计法需要历史买卖报价吗?
不需要。基本方法使用成交价及其连续收益的协方差。因此,即使没有报价历史也可能使用,但该估计是模型推算,无法还原每个时点的实际报价。
Q2自协方差为正是否表示价差为零?
不是。样本协方差为正时,基本公式没有定义。将估计值截为零的做法不能证明真实价差为零;应报告处理规则及这类样本的占比。
Q3可以在实时回测中直接把 Roll 估计值当作价差吗?
不能单独这样做。它是在特定假设下得到的历史代理指标。回测仍需匹配交易场所、订单规模、时点、佣金和成交行为的成本与执行假设。
资料来源与延伸阅读
报告问题
我们会准备一封包含本文链接的邮件。发送后,Mark 才会收到你的反馈
快速检查
读完指南后,用 3 道题检查一下
问题 01
基本 Roll 估计法用什么输入来推算价差?
选择答案即可查看解释