市场微观流动性指标 (Microstructure Liquidity Indicators)
大白话:不看「今天成交了多少」,而是从三个角度衡量「好不好做」——深度(在不推歪价格的前提下能吃进多大的量)、紧密度(买入价和卖出价差多少)、弹性(被砸下去之后价格多久能弹回来)。每个角度配两个能直接算出来的分钟级指标,一共六个。
来源:兴业金工《高频研究系列五—市场微观结构剖析》(2022-11-09),第 2 章。见 entities/Xingye 2022 Market Microstructure。
一、三个维度各自在量什么
原报告用一张「成交量—资产价格」示意图把三个维度画在一起:横轴是成交量,纵轴是对应成交价,左侧是卖出、右侧是买入,蓝线是价格随成交量变化的折线。
| 维度 | 大白话 | 示意图上对应哪一块 | 好的方向 |
|---|---|---|---|
| 深度 (Depth) | 多大的单子能把价格推歪 | 折线的平台段(买卖成交量之差,橙色方块) | 平台越宽越深 |
| 紧密度 (Tightness) | 同一时刻买价和卖价差多少 | 纵轴上买价与卖价之间的垂直距离(蓝色方块) | 距离越窄越紧 |
| 弹性 (Resiliency) | 价格被冲击后恢复多快 | 平台段之外的价格变动斜率(红色方块) | 斜率越缓越有弹性 |
深度同时还含有「多空双方在成交量上是否平衡」的意思——这一点很关键,它让深度指标不只是一个纯粹的容量度量,还带上了多空力量对比的信息。
微观流动性在量什么:报告的定义是「市场建立和/或解除头寸的时间成本,抑或是能否在短时间内建立和/或解除大量头寸而不造成价值上的重大损失(价值成本)」。广义流动性分三层:宏观层(货币供给、IPO 规模、外资流入)、中观层(市场成交量、换手率、杠杆)、微观层(深入到日内交易层面)。
二、六个二级指标:公式与口径
深度
订单比率 Order Ratio (OR) —— 用买卖双方成交量的不平衡程度衡量深度:
OrderRatio = \frac{\lvert \sum_{i=1}^{m} VBuy_i - \sum_{j=1}^{k} VSell_j \rvert}{\sum_{n=1}^{N} V_n}
分子是当日买方驱动与卖方驱动的分钟成交量之差的绝对值,分母是当日分钟成交量总和。分钟归属买卖方向用附录里的 LR 算法判定。该指标以分钟级数据计算,最终汇总为日度指标。OR 越大说明成交量越不平衡、资产深度越低、流动性越差。
shallowLIX —— 回答「推动一个单位的价格变动需要多少钱」:
shallowLIX_t = \log_{10}\left(\frac{Amount_t}{P_t^H - P_t^L}\right)
P_t^H、P_t^L 是第 t 分钟的最高价与最低价(分母即该分钟的价格波动),分子是成交额。取以 10 为底的对数是为了压住量级。推论:10^{shallowLIX} 就是制造 1 个单位价格波动所需的资本量——这个数越大,说明同样的资金量能推动的价格越小、深度越好。以分钟级计算,剔除日内异常值(分位数去极值)后取均值得到日度值。
紧密度
报价差 quotedSpread (QS):
QS_j = \frac{askprice_j^{(1)} - bidprice_j^{(1)}}{0.5\left(askprice_j^{(1)} + bidprice_j^{(1)}\right)}
第 j 分钟的卖一价减买一价,除以两者的简单平均。分钟级计算,分位数去极值后按分钟成交量加权得到日度值。
有效价差 effectiveSpread (ES) —— 在报价差上再叠一层实际成交价:
ES_j = \frac{2\lvert tradeprice_j - 0.5\left(askprice_j^{(1)} + bidprice_j^{(1)}\right) \rvert}{0.5\left(askprice_j^{(1)} + bidprice_j^{(1)}\right)}
tradeprice_j 取第 j 分钟的收盘价。交易价落在买一卖一中间说明成交在合理价差内、成本低;偏离中值则说明有一方占了便宜、另一方的成本大。同样分钟级计算、按成交量加权到日度。价差类指标越小代表紧密度越高、流动性越好。
弹性
交易弹性 elasticityTrading(原文拼作 elatricityTrading):
elasticityTrading_j = \frac{\%\Delta T_j}{\%\Delta P_j}
第 j 分钟成交量变化率除以收盘价变化率,度量价格相对于成交量的变化速度。分钟级计算,分位数去极值后取均值到日度。实际计算中剔除开盘与尾盘的最后一项数据以避免估计误差。
修正的 Roll 指标:
\gamma_j = -cov(\Delta p_j, \Delta p_{j+1})
\Delta p_j 是第 j 分钟收盘价相对前一分钟的差值。逻辑是:流动性差 → 价格里残留暂时性变动成分 → 相邻分钟价格变动出现负相关 → 用「相对价格变动的自变量(协方差)的负数」作为非流动性的度量。该指标越大说明流动性越弱(表 3 中它被归到弹性维度,实际刻画的是冲击后的价格不稳定性)。
三、汇总与方向
| 一级指标 | 二级指标 | 指标含义 | 原始值方向 |
|---|---|---|---|
| 深度 | 订单比率 Order Ratio | 买卖双方订单上的不平衡性 | 越小越好 |
| 深度 | shallowLIX | 创造同样单位价格波动所需的资金量 | 越大越好 |
| 紧密度 | 报价差 QS | 流动性资产买卖价格之间的差异 | 越小越好 |
| 紧密度 | 有效价差 ES | 买卖价差与实际交易成本结合 | 越小越好 |
| 弹性 | 交易弹性 elasticityTrading | 价格相对于成交量的变化速度 | 越大越好 |
| 弹性 | 修正的 Roll 指标 | 暂时性的价格变动成分相对大小 | 越小越好 |
⚠️ 原报告的表 3 还有一列「顺序」,标的只有「升序 / 降序」,正文没有解释这一列的含义。从六个指标的定义与正文可以一致地反推:标「升序」的四个指标(OR、QS、ES、Roll)是数值越小代表流动性越好,标「降序」的两个(shallowLIX、交易弹性)是数值越大代表流动性越好。落笔做实现时以这个映射为准,不要直接按字面猜。
四、底表:分钟级行情数据
| 数据名称 | 英文名 | 含义 |
|---|---|---|
| 开/高/低/收 | open / high / low / close | 基于交易所成交明细,在分钟区间内(左开右闭)按成交价计算 |
| 成交量 / 成交额 | volume / amount | 同区间内按成交明细累计 |
| 买一价 | bid(1) | 最后一笔快照数据中未成交的最高买盘价 |
| 卖一价 | ask(1) | 最后一笔快照数据中未成交的最低卖盘价 |
注意「高开低收」是成交价算出来的,与尚未成交的挂单快照是两个不同的东西,混用会得到没有经济含义的价差。
五、从个股到市场:历史分位数合成
个股日度二级指标构成一个 T \times N 的矩阵(T 为交易日数、N 为股票数)。要变成市场/宽基/行业层面的指标,报告用三步:
- 先在股票池内去极值再加权:按分析对象(全市场、宽基、中信一级行业)在成份股池内做分位数去极值,再按流动市值加权或指数权重加权,得到该对象的二级指标。
- 再转成过去一年的历史分位数,并统一调整为降序,使「指标越大 = 对应的流动性属性越好」。
- 一级指标 = 该维度两个二级指标历史分位数的平均。例如深度 = OR 与 shallowLIX 的历史分位数时序值取平均。
为什么要做历史分位数这一步:日内指标本身波动大,而且部分指标受市值影响很大,不处理就没法比较。实证支持这一点——OR 的原始值按流通市值分组是单调递增的(大盘股深度更好),做历史分位数处理后,分组之间已经没有明显趋势。
六、几组关键实证数字
OR 按流通市值分组的中位数(2022-08-31,Top 组市值最大):
| 分组 | Top | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Bottom |
|---|---|---|---|---|---|---|---|---|---|---|
| OR 中位数 | 0.125 | 0.120 | 0.117 | 0.118 | 0.131 | 0.138 | 0.145 | 0.140 | 0.136 | 0.156 |
| OR 历史分位数中位数 | 0.575 | 0.548 | 0.536 | 0.520 | 0.560 | 0.567 | 0.611 | 0.579 | 0.563 | 0.560 |
日内形态(2022-08-31):shallowLIX 呈明显的「U 型」——开盘与收盘阶段深度较高、流动性较好,与日内成交量的 U 型分布一致;QS 与 ES 在开盘阶段数值偏高(紧密度低、交易成本大),报告归因于集合竞价期间未成交的委托单;交易弹性全天变化不大,只在开盘、尾盘与午休后相对较好。
Roll 对小盘股格外敏感:按市值分十组后,最小市值组(Bottom)的 Roll 中位数明显跳高到其余各组的两倍以上;其余各组都挤在 3\times10^{-5}–4\times10^{-5} 一线。
六个指标的历史分位数时序相关性(全市场)里,除 QS 与 ES 两个价差指标外,其余指标之间相关性都很低。最突出的一对是 QS 与 ES 相关性 0.98(本来就测同一件事),而 交易弹性与 shallowLIX 相关性 −0.73(两者互为反向)。正因为 QS 与 ES 高度重合,报告在计算紧密度一级指标时直接只用 QS。
七、附录:LR 算法(买卖方向判定)
区分成交量由买方还是卖方主导,是衡量日内流动性与日内规模的关键一步。报告的 LR 算法把每一分钟归为买方驱动或卖方驱动:
- 用第 t 刻的最高价 P_t^H 与最低价 P_t^L 算中间价 P_t^{mid} = (P_t^H - P_t^L)/2;
- 若 P_t > P_t^{mid} 判为买方驱动,若 P_t < P_t^{mid} 判为卖方驱动,相等则进入第 3 步;
- 若 P_t > P_{t-1} 判为买方驱动,若 P_t < P_{t-1} 判为卖方驱动,相等则进入第 4 步;
- 取时间早于 t 且收盘价不等于 P_t 的最近一个分钟收盘价 P_{t-k},P_t > P_{t-k} 判买方驱动,否则判卖方驱动。
(第 1 步的中间价原式写作 (P_t^H - P_t^L)/2,按中间价的通常定义应为 (P_t^H + P_t^L)/2,这是原文笔误。)
八、与本 wiki 的接口
- 深度与冲击:本报告的深度是「成交量维度的深度」,与 市场深度与冲击反比的「最优价挂单量维度的深度」不是一回事;后者给的是 \beta \approx 1/(cL),本报告的 OR 与 shallowLIX 给的是「不平衡程度」与「推动单位价格所需资金」。两者可以互为补充。
- 价差估计:QS 与 ES 是有快照数据时的直接测量,与 Corwin-Schultz 2012、Abdi-Ranaldo 2017 这类「无报价数据时从日频 OHLC 反推价差」的方法互补。Roll 指标的原始版本见 Roll 1984——本报告把日频用法搬到了分钟级并做了修正。
- 买卖方向判定:本报告的 LR 算法是「分钟收盘价对中间价/前收盘价」的启发式,与 订单流分解(按订单速度拆 HFQ/非 HFQ)、机构与散户的订单流差异(按投资者类型拆)属于不同来源的「谁在主动」口径,三者不可互换。
- 极端行情:报告在展望里明确说下一阶段要从「闪电崩盘」刻画与预警出发;本 wiki 已有 极端行情订单流 与 闪崩机制 可对照。
- 系列定位:本篇是兴业《高频研究系列》的第五篇,属于「不构造选股因子、只做市场监控」的方法论铺垫;系列十的选股因子路线见 entities/Xingye 2026 Trading Anomaly and Divergence Alpha。
九、原文没写清楚的地方
- 表 3「顺序」列没有解释。只能从六个指标的定义反推含义(见上文第三节)。
- 「分位数去极值」的具体分位数没有给(是 1%/99% 还是 5%/95% 之类),复现时会直接影响日度值。
- 弹性与紧密度各只保留一个指标进入一级指标的做法只对 QS/ES 说了理由(相关性 0.98),交易弹性与 shallowLIX 相关性 −0.73 却仍取平均,报告未解释为什么深度和弹性要取平均而不是取其中一个。
- shallowLIX 的分母在最高价等于最低价时为零(一字板或极低波动分钟),报告未说明如何处理。
相关页面
- 应用与择时:基于微观结构的市场监控应用 · 微观流动性择时策略
- 摘要:中文摘要
- 研报:entities/Xingye 2022 Market Microstructure
- 机构:兴业金工 · 分析师 郑兆磊