3、流动性分析:流动性定义与度量、买卖价差模型、市场深度与弹性

聊到市场微观结构,流动性是绕不开的核心话题。我经常跟团队里的新人说,你研究订单流、研究价差,最终都是在回答一个问题:这个市场到底好不好交易?

说白了,流动性就是资产变现的难易程度。你手里拿着100股苹果,想卖掉,鼠标一点就成交了,这叫流动性好。你拿着100股某只仙股,挂单挂了一天没人理你,这叫流动性差。嗯,道理很简单,但量化起来就没那么直观了。

3.1 流动性的四个维度

我个人习惯把流动性拆成四个维度来看:

  • 宽度(Width):买卖价差的大小。价差越小,流动性越好。
  • 深度(Depth):在最优价格附近能成交多少量。深度越厚,大单冲击越小。
  • 弹性(Resiliency):价格被冲击后,多久能恢复。恢复越快,弹性越好。
  • 即时性(Immediacy):想成交,能不能马上成交。这跟订单簿的活跃度有关。

你想想看,这四个维度其实是从不同角度描述同一个东西。价差小但深度浅,大单一来价格就飞了,这算流动性好吗?不算。深度厚但恢复慢,一锤子下去半天回不来,这也不行。

核心观点:流动性不是单一指标,而是一个多面体。只看价差不看深度,容易踩坑。

3.2 买卖价差模型

买卖价差是流动性最直接的度量。我最早做美股高频策略时,第一件事就是分析价差结构。这里介绍两个经典模型。

3.2.1 Roll模型(1984)

Roll模型是个很聪明的想法。它假设市场是有效的,价差完全由订单处理成本驱动。模型公式很简单:

价差 = 2 * sqrt(-Cov(ΔP_t, ΔP_{t-1}))

其中Cov是价格变化的一阶自协方差。为什么是负的?因为买卖价差的存在,会让价格序列产生负相关——买完涨一点,卖完跌一点,来回震荡。

我在项目中遇到过一个问题:Roll模型算出来的价差有时候是虚数。为什么?因为协方差可能是正的。这说明市场不满足模型假设,比如存在趋势效应。这时候我会改用更鲁棒的估计方法,比如用绝对价差的中位数。

小技巧:用高频数据(比如1分钟K线)算Roll模型,比用日线稳定得多。日线级别的负自相关太弱了。

3.2.2 Huang-Stoll模型(1997)

这个模型把价差拆成了两部分:逆向选择成本订单处理成本。逆向选择成本,说白了就是做市商担心跟知情交易者做对手盘,所以需要额外补偿。

模型的核心是下面这个回归:

ΔP_t = α + β₁ * Q_t + β₂ * Q_{t-1} + ε_t

其中Q_t是交易方向(买为+1,卖为-1)。β₁反映逆向选择成本,β₂反映订单处理成本。我建议你在做回归前,先把数据做一下清洗——去掉那些跨多个价差的极端跳变,否则回归结果会很难看。

模型核心思想适用场景
Roll模型价差由价格自协方差估计流动性较好的大盘股
Huang-Stoll模型分解逆向选择与订单处理成本需要分析做市商行为的场景

3.3 市场深度与弹性

价差只是流动性的一个侧面。真正做交易时,我更关心深度和弹性。

3.3.1 市场深度

市场深度,就是订单簿上各个价位挂单的总量。我通常用深度曲线来观察:

  • 5档深度:买一到买五、卖一到卖五的总量
  • 10档深度:更广的视野,适合大单交易
  • 加权深度:按价格距离加权,越远的单子权重越低

举个例子,苹果股票买一挂了1000股,买二挂了2000股,买三挂了3000股。那在买一到买三这个区间,深度就是6000股。你想卖5000股,如果只盯着买一看,你会觉得市场很浅。但实际深度足够吃掉你的单子,只是价格会滑几个tick。

避坑指南:我曾经在分析某只中概股时,只看最优价位的深度,结果一个大单进来直接打穿了三个价位。后来我改用累计深度曲线,才真正看清了市场的承载能力。

3.3.2 弹性

弹性这个概念,很多人容易忽略。它衡量的是市场被冲击后的恢复能力。我常用的度量方法是:

  1. 记录大单成交后的价格偏移
  2. 观察价格回到冲击前水平所需的时间
  3. 时间越短,弹性越好

我记得有一次做策略回测,发现某只股票在开盘后半小时内弹性极差。大单一进来,价格要花5分钟才能恢复。但到了下午,弹性明显变好,恢复时间缩短到1分钟以内。这说明什么?说明早盘的做市商参与度低,流动性供给不足。

3.4 知识体系总览

下面这张图是我自己整理的流动性分析框架,你可以对照着理解:

流动性分析框架 流动性 宽度(价差) 深度(挂单量) 弹性(恢复速度) 即时性(成交速度) Roll / Huang-Stoll 深度曲线 / 累计深度 冲击恢复时间 成交率 / 等待时间 核心原则:流动性是动态的,随时间、随市场环境变化 单一指标不可靠,需要多维度交叉验证

3.5 实战中的流动性陷阱

最后分享一个我踩过的坑。有一次我在做盘口分析,发现某只股票的价差很小,深度也不错,看起来流动性很好。结果一跑实盘,大单进去直接滑了5个tick。为什么?因为那些挂单是假的——做市商在玩闪单(Flash Orders),看到你的单子进来就撤单了。

所以我现在做流动性分析,一定会加一道工序:计算挂单的存活率。也就是挂单在订单簿上停留的时间中位数。如果大部分挂单在1秒内就撤了,那这个深度就是虚的。

我的建议:用Level 2数据做流动性分析时,一定要结合订单撤销率来看。只看静态深度,容易被表象迷惑。

嗯,流动性这块内容不少,但核心就一句话:别只看一个指标,多维度交叉验证才是正道。价差、深度、弹性、即时性,四个维度缺一不可。下次你分析一只股票时,不妨按这个框架走一遍,会发现很多之前忽略的细节。


公众号:蓝海资料掘金营,微信deep3321