22、流动性度量:流动性指标、流动性黑洞、流动性风险、流动性溢价
流动性这东西,说起来有点玄乎。你想想看,一个资产能不能快速卖掉,还不怎么影响价格——这就是流动性的本质。我在做高频策略那几年,吃过不少流动性的亏,今天就把这些经验掰开揉碎了讲给你听。
22.1 流动性指标:怎么量化它?
量化流动性,说白了就是找几个数字来描述「好不好卖」。我个人习惯从四个维度入手:宽度、深度、即时性、弹性。
| 维度 | 指标 | 含义 |
|---|---|---|
| 宽度 | 买卖价差(Bid-Ask Spread) | 买一价和卖一价的差距,越小流动性越好 |
| 深度 | 订单簿深度(Order Book Depth) | 某个价位上的挂单量,越厚越扛得住大单 |
| 即时性 | 成交时间 / 成交概率 | 想买就能买到,想卖就能卖掉 |
| 弹性 | 价格恢复速度 | 大单冲击后,价格多久回到均衡 |
嗯,这里要注意。价差是最常用的指标,但别只看它。我记得有一次做回测,某只股票价差一直很小,结果一上实盘,深度薄得像纸,一千万就把价格打穿了。所以,我建议你至少同时看价差和深度。
核心公式:Amihud 非流动性指标
这个指标我几乎每个项目都会算。它衡量的是「每单位成交量引起的价格变化」。
# Amihud 非流动性指标计算
def amihud_illiquidity(returns, volume):
"""
returns: 日收益率序列
volume: 日成交金额序列
"""
illiq = np.abs(returns) / volume
return np.nanmean(illiq)
# 数值越大,说明流动性越差
# 我在实盘中通常取过去20天的滚动均值
我的经验:Amihud 指标对极端值很敏感。如果某天成交量特别小,算出来的值会异常大。我一般会做 winsorize 处理,把上下1%的极端值截掉。
22.2 流动性黑洞:市场突然「干涸」了
流动性黑洞,是我最怕的东西。它指的是流动性在短时间内急剧消失,买卖盘口瞬间变空。为什么会这样?
说白了,就是市场参与者同时往一个方向跑。比如某个利空消息出来,所有人都在卖,买单瞬间被吃掉,然后买单也撤了——因为做市商也不敢接了。这时候,你想卖都卖不掉。
我曾经在2015年股灾时亲身经历过。当时某只小盘股,平时每天成交几个亿,那天开盘半小时后,买一价直接挂到跌停板,但跌停板上只有几百手买单。我手里有几十万股,根本出不去。那种感觉,就像在沙漠里找水。
避坑指南:我曾经以为流动性黑洞只发生在小盘股。直到2020年3月,连国债期货都出现了流动性枯竭。所以,别以为大盘股就安全。极端行情下,谁都可能被抽干。
怎么识别流动性黑洞的前兆?我总结了几点:
- 买卖价差突然扩大3倍以上
- 订单簿深度骤降,尤其是买一和卖一档
- 成交频率下降,但单笔成交额变大(说明散户在跑,机构在扛)
- 价格出现「跳空」式波动,没有连续成交
22.3 流动性风险:你扛得住吗?
流动性风险,就是「想平仓平不掉」的风险。它分两种:
- 市场流动性风险:整个市场都没人接盘
- 资金流动性风险:你自己没钱了,被迫平仓
你想想看,这两者经常互相强化。市场流动性变差 → 你的持仓浮亏 → 保证金不够 → 被迫平仓 → 你卖的时候又把价格打得更低 → 流动性更差。这就是经典的「流动性螺旋」。
我在做CTA策略时,专门加了一个流动性风险模块。核心逻辑很简单:
# 流动性风险监控示例
def liquidity_risk_check(order_book, position, price):
# 计算当前持仓占市场深度的比例
bid_depth = order_book['bid_vol'].sum() # 买盘总深度
ask_depth = order_book['ask_vol'].sum() # 卖盘总深度
# 假设我们要平多仓,看卖盘深度够不够
if position > 0:
impact_ratio = position / ask_depth
if impact_ratio > 0.1: # 持仓超过卖盘深度的10%
print(f"⚠️ 流动性风险预警:持仓占比 {impact_ratio:.2%}")
return True
return False
关键阈值:我个人习惯把持仓占市场深度的比例控制在5%以内。超过10%就要高度警惕。超过20%?嗯,那基本就是「你一动,市场就动」的状态了。
22.4 流动性溢价:为什么有些资产更便宜?
流动性溢价,说白了就是「流动性差的资产,必须给更高的预期收益来补偿」。你想想看,如果一只股票每天成交只有几百万,你敢重仓吗?不敢吧。那它就得用更高的收益率来吸引你。
这个溢价怎么算?我常用的方法是:
# 流动性溢价估算
def liquidity_premium(returns, illiq_metric):
"""
用Fama-MacBeth两步法估算流动性溢价
"""
# 第一步:截面回归,每期估计流动性因子载荷
# 第二步:时间序列平均,得到溢价
# 简化版:直接看高流动性组合 vs 低流动性组合的收益差
high_illiq = returns[illiq_metric > np.percentile(illiq_metric, 80)]
low_illiq = returns[illiq_metric < np.percentile(illiq_metric, 20)]
premium = high_illiq.mean() - low_illiq.mean()
return premium
我在A股做过测算,小盘股的流动性溢价大概在年化3%-5%之间。但要注意,这个溢价不是白给的——它对应的是你随时可能卖不掉的痛苦。
实战技巧:如果你做的是低频策略,可以主动吃流动性溢价。比如买一些流动性差但基本面好的股票,拿长线。但如果你是高频策略,千万别碰低流动性标的——进出成本太高,溢价根本覆盖不了。
22.5 知识体系总览
下面这张图,是我自己梳理的流动性度量框架。你看一眼,就能明白这几个概念之间的关系。
这张图把四个核心概念串起来了。你从上往下看:先有指标去度量,然后识别黑洞预警,再管理风险,最后用溢价来定价。每一步都环环相扣。
好了,流动性这块就讲这么多。记住一句话:流动性是市场的氧气。平时感觉不到,一旦没了,你才知道它有多重要。