4. 流动性度量:Amihud非流动性比率、Roll Spread估计、基于订单簿的流动性指标
流动性这东西,说起来玄乎,其实就一句话:你想卖的时候,能不能马上卖掉,而且价格别太离谱。我做了这么多年订单簿分析,见过太多人把流动性挂在嘴边,但真要他量化一下,就懵了。今天咱们就把这事儿掰扯清楚。
我个人习惯把流动性度量分成三个层次:价格冲击维度、交易成本维度、订单簿微观维度。这三个维度各有各的用处,也各有各的坑。
核心观点:没有完美的流动性指标,只有适合场景的指标。做高频,看订单簿;做日频,看Amihud;做中低频,Roll Spread够用了。
4.1 Amihud非流动性比率
先说说Amihud。这个指标是2002年提出的,到现在还是学术界和业界的主流。它的逻辑很简单:每单位成交量能引起多大的价格变化。
公式长这样:
Amihud_illiq = (1/N) * Σ(|r_t| / volume_t)
其中r_t是日收益率,volume_t是日成交金额。说白了,就是每天的价格波动除以成交量,然后取平均。
我在项目中遇到过一个问题:用Amihud的时候,如果某天成交量特别小,这个比值会变得巨大,直接拉高整个序列。嗯,这里要注意——极端值处理。我一般会做1%和99%的缩尾处理,或者直接用中位数代替均值。
实战技巧:Amihud值越大,说明流动性越差。比如一只股票每天涨跌1%只需要100万成交,另一只需要1000万,那前者的流动性明显更好。我习惯把Amihud取倒数,变成"流动性比率",这样数值越大流动性越好,看着更直观。
为什么Amihud这么流行?因为它只需要日线数据,任何市场都能算。但它的缺点也很明显:日内信息全部丢失。你想想看,如果一只股票上午流动性极差,下午恢复正常,Amihud只能反映一个平均状态。
4.2 Roll Spread估计
Roll Spread是另一个经典指标。它基于一个观察:买卖价差的存在会导致收益率序列出现负的自相关。
公式很简单:
Roll_Spread = 2 * sqrt(-Cov(ΔP_t, ΔP_{t-1}))
其中ΔP是价格变化。如果协方差为正,说明价差为0——这种情况在现实中很少见。
我记得第一次用Roll Spread的时候,算出来一堆负值,差点以为自己代码写错了。后来才发现,当协方差为正时,这个公式就失效了。这是Roll Spread最大的硬伤。
避坑指南:我曾经在A股市场用Roll Spread做全市场流动性监测,结果发现大约30%的股票算出来是负值。后来我改用改进版——把负值设为0,或者用绝对值。但说实话,这已经偏离了原始公式的意图。所以我的建议是:Roll Spread更适合做截面比较,不适合做时间序列。
Roll Spread的好处是只需要价格数据,不需要成交量。但它的假设比较强:市场是有效的,价格变化是随机的。现实中,这个假设经常不成立。
4.3 基于订单簿的流动性指标
这才是咱们做订单簿分析的重头戏。订单簿数据能提供最精细的流动性信息,但处理起来也最麻烦。
常用的指标有这么几个:
| 指标 | 定义 | 我的用法 |
|---|---|---|
| Depth at N levels | 前N档买卖挂单的总量 | N=5时最常用,兼顾深度和实时性 |
| Bid-Ask Spread | 最优卖价 - 最优买价 | 衡量即时交易成本 |
| Order Book Imbalance | (买盘总量 - 卖盘总量) / 总挂单量 | 预判短期价格方向 |
| Slope of Order Book | 价格-深度曲线的斜率 | 衡量价格弹性 |
Depth at N levels 是最直观的指标。比如前5档买盘总共有100万股,卖盘有80万股,那深度就是180万股。但这里有个坑:不同股票的价格不同,直接用股数比较没意义。我习惯换算成金额,或者用市值的百分比。
你想想看,贵州茅台一股2000块,前5档深度可能只有几百股,但金额已经上百万了。而一只低价股可能挂了几十万股,金额却只有几十万。所以一定要标准化。
我的经验:做日内交易策略时,我最喜欢用的是"加权深度"。把每档挂单量按距离最优价的距离加权,距离越近权重越大。这样能更真实地反映"我能以多快的速度成交多少量"。
还有一个指标叫流动性黑洞,虽然不常用,但关键时刻能救命。当订单簿的深度突然大幅下降,或者买卖价差急剧扩大,就说明流动性正在快速消失。我在2015年股灾时就亲眼见过——前一分钟还正常的订单簿,后一分钟买盘全撤了,只剩卖盘在那挂着。
4.4 知识体系总览
说了这么多,咱们用一张图把这三个维度串起来:
4.5 实战中的选择逻辑
说了这么多,到底该用哪个?我的建议很简单:
- 如果你做高频交易,别犹豫,直接上订单簿指标。Depth at N levels和Bid-Ask Spread是标配。我自己的策略里还会加上Order Book Imbalance,用来预判短期方向。
- 如果你做日频策略,Amihud就够了。它虽然粗糙,但胜在稳定。我一般用过去20天的Amihud均值,作为股票的"流动性标签"。
- 如果你做中低频或者截面研究,Roll Spread是个不错的选择。它不需要成交量数据,很多数据库里都能直接算。
一个小技巧:我习惯把三个指标都算出来,然后做PCA降维,提取第一主成分作为"综合流动性得分"。这样既保留了各个维度的信息,又避免了多重共线性。当然,前提是你得有足够的数据量。
最后说一句:流动性指标不是算出来就完事了。你得理解它背后的经济含义,知道它在什么情况下会失效。比如Amihud在涨跌停时完全没用,订单簿指标在盘前集合竞价阶段也是废的。这些坑,我都是踩过才记住的。
嗯,流动性度量这块就聊到这儿。记住一句话:没有最好的指标,只有最合适的指标。根据你的策略频率和数据条件,选一个能用的,然后深入理解它的优缺点,比什么都强。