3、流动性度量:买卖价差、市场深度、Amihud非流动性指标、流动性比率
流动性这东西,说起来玄乎,其实就一句话:你想卖的时候,能不能快速卖掉,还不怎么亏钱。
我早年做CTA策略的时候,吃过流动性的亏。当时回测曲线漂亮得不行,实盘一跑,滑点直接吃掉一半利润。嗯,从那以后,我再也不敢轻视流动性度量了。
这一节,咱们就把流动性度量这件事拆开揉碎。说白了,就是几个核心指标:买卖价差、市场深度、Amihud非流动性指标、流动性比率。每个指标都有它的脾气,咱们一个个来看。
3.1 买卖价差(Bid-Ask Spread)
这是最直观的流动性指标。你想想看,你去菜市场买菜,摊主说“5块一斤”,你说“4块卖不卖”,这就是买卖价差。
在交易里,买一价(Bid)是市场愿意出的最高价,卖一价(Ask)是市场愿意卖的最低价。价差越小,流动性越好。为什么?因为你的交易成本低啊。
绝对价差 = Ask - Bid
相对价差 = (Ask - Bid) / MidPrice
我个人习惯用相对价差,因为不同价格的股票,绝对价差没法直接比。茅台价差5毛钱,跟ST股价差5毛钱,意义完全不一样。
3.2 市场深度(Market Depth)
价差只告诉你第一档的情况。但你想买100万股,光看价差是不够的。万一第一档只有1000股,剩下的你得用更高的价格买,这就涉及市场深度了。
市场深度,说白了就是订单簿上各个价位的挂单量。深度越厚,大单对价格的冲击越小。
常见的度量方式:
- 报价深度: 最优买卖价位的挂单量之和
- 金额深度: 挂单量 × 价格,换算成金额
- 斜率深度: 订单簿的斜率,越陡峭说明深度越差
我举个例子你就明白了:
| 价位 | 卖单量(股) | 累计卖单(股) |
|---|---|---|
| 10.00 | 1,000 | 1,000 |
| 10.01 | 2,000 | 3,000 |
| 10.02 | 5,000 | 8,000 |
| 10.03 | 10,000 | 18,000 |
如果你想买1万股,按10.00只能买到1000股,剩下的得用更高的价格。实际成交均价是10.015元,比当前卖一价高了0.015元。这就是冲击成本。
3.3 Amihud非流动性指标
这个指标,是我个人非常喜欢的一个。它不需要高频数据,用日线就能算,特别适合做学术研究或者低频策略。
Amihud指标的定义很简单:
Amihud = 平均( |日收益率| / 日成交金额 )
为什么这么定义?你想想看,如果一只股票每天涨跌1%,但成交额只有100万,说明这1%的波动可能只是几笔小单打出来的,流动性很差。反过来,如果成交额是10个亿,那这1%的波动就是市场共识,流动性好。
Amihud指标的特点:
- 数值越大,流动性越差
- 对极端值敏感,建议用中位数或截尾均值
- 适合跨股票、跨时间比较
3.4 流动性比率(Liquidity Ratio)
流动性比率,说白了就是“用多少钱能推动价格变动1%”。这个指标很直观,也很实用。
常见的流动性比率:
- Amivest流动性比率: 成交金额 / 价格变动绝对值
- Hui-Heubel流动性比率: (最高价 - 最低价) / 成交金额
- Martin流动性比率: 价格变动平方 / 成交量
我个人最常用的是Amivest比率。它的逻辑很简单:如果一只股票每天成交1个亿,价格只波动0.5%,那它的流动性就很好。如果成交1个亿,价格波动5%,那流动性就很差。
# 计算Amivest流动性比率
def amivest_ratio(returns, volume, price):
"""
returns: 日收益率序列
volume: 日成交量序列
price: 日收盘价序列
"""
dollar_volume = volume * price # 成交金额
abs_return = abs(returns)
# 剔除收益率接近0的日期,避免除零
mask = abs_return > 1e-8
ratio = dollar_volume[mask] / abs_return[mask]
return ratio.mean()
3.5 知识体系总览
说了这么多,咱们用一张图来梳理一下。流动性度量不是孤立的知识点,它跟交易成本、订单执行、策略设计都紧密相关。
你看,这四个指标各有侧重。价差告诉你交易成本,深度告诉你大单能不能吃得下,Amihud指标适合做截面比较,流动性比率则更关注价格冲击。
在实际工作中,我一般会组合使用。比如,做选股因子时用Amihud指标,做算法交易时看市场深度,做策略回测时用价差估算滑点。没有哪个指标是万能的,关键看你的应用场景。
嗯,流动性度量这块,咱们就聊到这儿。记住一句话:流动性不是静态的,它会随时间、随市场情绪、随大单进出而变化。度量它,是为了更好地管理它。