3、流动性度量指标:买卖价差、市场深度、Amihud非流动性指标、流动性比率、价格冲击模型
流动性这东西,说起来抽象,但做高频交易的人每天都要跟它打交道。说白了,流动性就是你能不能快速把单子平掉,还不怎么影响价格。我做了这么多年量化,见过太多策略在回测里跑得漂亮,一上实盘就崩——十有八九是没把流动性算明白。
今天咱们就把流动性度量这件事拆开揉碎了讲。我个人习惯把这几个指标分成两类:一类是事前指标,比如买卖价差、市场深度,你在交易前就能看到;另一类是事后指标,比如Amihud非流动性指标、价格冲击模型,你得交易完了才能算出来。两种视角都很重要,缺一不可。
核心观点:没有完美的流动性指标,只有适合场景的指标。高频环境下,买卖价差和市场深度是实时监控的利器;而Amihud指标和价格冲击模型更适合做历史回测和策略评估。
3.1 买卖价差(Bid-Ask Spread)
买卖价差是最直观的流动性指标。你打开任何一个交易软件,看到的买一价和卖一价之间的差值,就是它。公式很简单:
绝对价差 = 卖一价 - 买一价
相对价差 = (卖一价 - 买一价) / 中间价 × 100%
我在项目中遇到过一个问题:某只股票平时价差只有0.01元,但财报发布前几分钟,价差突然扩大到0.05元。如果你还用平时的滑点成本去算策略收益,那肯定要吃亏。
实战技巧:我个人习惯用相对价差,因为不同价格的股票绝对价差没法直接比。比如茅台和一块钱的垃圾股,绝对价差差了几十倍,但相对价差可能都在0.1%左右。
嗯,这里要注意一点:买卖价差只反映了当前最优报价的流动性。如果你的单子很大,光看价差是不够的——你还需要看市场深度。
3.2 市场深度(Market Depth)
市场深度告诉你的是:在某个价格水平上,到底有多少单子等着成交。我经常把它比作「水池的深浅」——价差是水面宽度,深度是水有多深。
常见的度量方式有:
- 报价深度:在最优买卖价上的委托数量
- 金额深度:把各档位的委托量按价格加权,算出一个总金额
- 斜率深度:用订单簿的形状来刻画,斜率越陡说明深度越差
举个例子,你看下面这个订单簿:
档位 价格 委托量(手)
卖5 10.05 200
卖4 10.04 150
卖3 10.03 100
卖2 10.02 80
卖1 10.01 50
-------------------
买1 10.00 60
买2 9.99 90
买3 9.98 120
买4 9.97 160
买5 9.96 200
如果你要买入1000手,光看价差(0.01元)会觉得流动性很好。但实际上,从买1到买5加起来才630手,根本不够吃。这就是只看价差不看深度的坑。
避坑指南:我曾经在回测中只用价差作为滑点估计,结果实盘时发现大单成交价格远高于预期。后来我养成了习惯——任何策略上线前,都要用市场深度数据做一次「大单冲击测试」。
3.3 Amihud非流动性指标
这个指标是我个人比较喜欢的。它由Yakov Amihud在2002年提出,核心思想很简单:每单位成交量能引起多大的价格变化。
公式长这样:
Amihud = |日收益率| / 日成交金额(元)
数值越大,说明同样的成交金额对价格冲击越大,流动性就越差。比如:
| 股票 | 日收益率 | 日成交金额(亿) | Amihud指标 |
|---|---|---|---|
| 股票A | 2% | 10 | 0.002 |
| 股票B | 2% | 0.5 | 0.04 |
你看,同样涨了2%,股票B的Amihud指标是A的20倍。说明B的流动性差得多,稍微有点成交就能把价格推上去。
为什么说这个指标适合高频?因为它用的是日度数据,计算简单,而且对极端值很敏感。我在做因子筛选时,经常用Amihud指标把流动性差的股票直接过滤掉——省得后面出幺蛾子。
3.4 流动性比率(Liquidity Ratio)
流动性比率有好几种变体,我重点讲两个常用的:
1. 成交量加权平均价偏离度
LR = 成交金额 / |成交均价 - 市场均价|
这个指标衡量的是:为了把价格偏离1块钱,需要花多少钱去成交。数值越大,流动性越好。
2. Hui-Heubel流动性比率
HHLR = (P_max - P_min) / P_min / (V / (S × P_avg))
其中P_max和P_min是日内最高最低价,V是成交量,S是流通股数,P_avg是均价。这个指标把价格波动和成交量结合起来看,我个人觉得比单纯的价差更有说服力。
经验之谈:流动性比率有个好处——它把价格和成交量放在同一个框架里。你想想看,如果一只股票价格波动很大但成交量很小,那很可能是流动性问题;但如果波动大但成交量也大,那可能是信息驱动,不一定是流动性差。
3.5 价格冲击模型(Price Impact Model)
终于到了最核心的部分。价格冲击模型要回答的问题是:我下这个单子,到底会把价格推高(或压低)多少?
最经典的模型是Kyle在1985年提出的λ模型:
ΔP = λ × Q
其中ΔP是价格变化,Q是交易量,λ就是价格冲击系数。λ越大,说明同样的交易量对价格影响越大,流动性越差。
但在高频环境下,这个线性模型往往不够用。我常用的一个改进版本是:
ΔP = α + β₁ × sign(Q) + β₂ × Q + β₃ × Q² + ε
这里加入了符号项(买卖方向)和二次项(非线性冲击)。为什么?因为实际交易中,大单的边际冲击是递增的——你买得越多,后面每多买一股对价格的冲击就越大。
我记得有一次做股指期货的冲击成本分析,用线性模型算出来滑点只有0.5个点,但实盘时发现大单成交的滑点经常超过1.5个点。后来换成带二次项的模型,拟合度从0.6提升到了0.85。
实用建议:做高频策略时,我建议至少准备两个冲击模型:一个用于小单(线性模型,计算快),一个用于大单(非线性模型,精度高)。根据你的实际交易量动态切换。
知识体系总览
下面这张图把五个指标的关系和适用场景梳理了一下,方便你对照着用:
这五个指标不是孤立的。我个人习惯把它们串起来用:先看价差和深度判断能不能做,再用Amihud和流动性比率筛选标的,最后用价格冲击模型算滑点。一套组合拳下来,流动性风险基本能控住。
最后提醒一句:任何流动性指标都有滞后性。市场环境变化时,历史数据算出来的指标可能完全失效。我见过有人用上个月的Amihud指标做交易,结果遇到黑天鹅事件,流动性瞬间枯竭,单子挂了一天都没成交。所以,实时监控和风控止损才是最后的防线。
公众号:蓝海资料掘金营,微信deep3321