Amihud 非流动性测度:每成交一美元的价格冲击
Amihud (2002) 用一个除法刻画非流动性:绝对收益除以成交金额。只要价格和成交量就能算,所以它成了资产定价研究的标准。这篇讲它到底在估计什么、量级怎么读、以及它的每个毛病都从哪儿来。
流动性是那种人人都在用但没人精确定义的词。你看到非流动性的东西是认得出的(试试在周五下午 3:50 卖 $10M 的小盘生物科技股就知道了),但要做研究,得有个能算的数。这就引出一个听起来过分的问题:一个数怎么可能装下”流动性”这么大的概念?
Amihud (2002) 的回答是一个除法,Amihud 非流动性比率:
其中 是第 天的收益, 是第 天的成交金额。绝对收益除以成交金额,没了。直觉也就一句话:没多少成交却动得厉害的股票不流动,成交很大却动得小的股票流动。
这个除法简单到骗人。这篇文章要讲清楚三件事:它到底在估计什么(答案:Kyle 的 lambda 的粗代理);它为什么能横扫数百篇资产定价研究、成为流动性因子动物园的标准成员(跟买卖价差、换手率、Pastor-Stambaugh 因子并列,Harris 在第 21 章和第 19 章把它放进更广的流动性分类里讨论);以及它的每一个已知毛病是怎么从分子 里长出来的。
量级:先学会读这个数
对单只股票、 天取平均:
单位是(收益 / 成交美元)= 1 / 美元,所以这个数本身很小,读它要看数量级。用一组算得出来的例子建立感觉。一只类苹果的大盘股,日波动率 1.5% 意味着典型一天的 在 1.2% 左右(正态假设下 ),日成交金额按 $5B 算:
一只典型一天动 0.5%、日成交金额只有 $5M 的小盘股:ILLIQ = $0.005 / 5\times10^6 = 1\times10^{-9}$每美元——比大盘股高了大约 400 倍。这就是以数字表达的流动性差距。把整个美股横截面按 ILLIQ 排开:最流动的十分位在$10^{-12}10^{-11}$一带,最不流动的十分位在$10^{-8}$或更高;加密主流币大约$10^{-9}10^{-8}$,山寨币 $10^{-6}$ 起步。流动和不流动资产之间差 4–5 个数量级——正是这个巨大的跨度让 ILLIQ 实用,它能把整个谱系放在同一把尺子上。
读法上有一个粗糙但好用的近似:把 ILLIQ 乘上你的成交金额,当成预期冲击。ILLIQ 为 的名字上成交 $1M,预期动 10 bp 量级。这个线性读法在大单上会高估(冲击经验上是次线性的,见平方根律那篇),但当量级估计足够了。
Python 实现
import numpy as np
import pandas as pd
def amihud_illiquidity(returns, dollar_volume):
"""
计算 Amihud (2002) 非流动性比率。
returns: pd.Series of daily returns (decimal)
dollar_volume: pd.Series of daily dollar volume
返回:样本期内的平均 ILLIQ。
"""
illiq = returns.abs() / dollar_volume
return float(illiq.mean()), illiq
# 玩具数据
rng = np.random.default_rng(42)
n_days = 252
returns = pd.Series(rng.normal(0.0005, 0.015, n_days))
dollar_volume = pd.Series(rng.lognormal(20, 0.5, n_days))
avg_illiq, daily = amihud_illiquidity(returns, dollar_volume)
print(f"平均 ILLIQ: {avg_illiq:.3e}")
# 这组玩具参数(日成交额均值约 $5 亿)打印出来在 1e-11 量级;
# 真实大盘股的量级见正文
做横截面研究时,对每只股票算 然后排名,就这么直接。
它其实在估计什么
Amihud 测度抓的是每单位成交的价格冲击。把冲击线性化——假设价格变动正比于成交流量——那么”绝对收益除以成交额”就是那条斜率,也就是 Kyle 模型里的 lambda:
所以 ILLIQ 本质上是一个不需要任何模型设定的、非参数的价格冲击估计器。这解释了它为什么有效:它没有假装度量”流动性”这个大概念,它度量的是流动性最有经济意义的那个侧面——你交易时价格挪多远。
但同一个视角也暴露了它的所有毛病,因为分子 里装的不只是价格冲击。
最大的混杂是波动率。 跟基本面波动率相关:一只高波动的股票即便流动性还行,ILLIQ 也会偏高,因为价格本来就在动,跟有没有人在推它无关。除以成交额部分缓解了这一点,但调整不完美——这是用 ILLIQ 时永远要记着的第一号警告。其次是不对称: 对涨跌一视同仁,但现实中负收益往往幅度更大(杠杆效应),有些研究者干脆只用 看下行。然后是数据端的三个麻烦,全都集中在不流动股票上,偏偏那正是你最想度量的对象:零成交日让 ILLIQ 未定义或无穷(典型做法是丢掉或 winsorize);财报、并购这类极端日子的大动能主导整个平均(在 99 分位 winsorize,或用中位数);而收盘价本身可能是陈旧的——很少交易的股票(一些债券 ETF、微盘股),收盘价可能是停滞报价或某笔异常大单,某天一笔大宗成交会让 ILLIQ 显得假低,报价停滞没成交的日子又让它显得假高。买卖弹跳还会往 里掺进纯噪音:收盘价在买价和卖价之间来回跳,给日收益添上量级可达半个价差的假动作(它把测得的收益方差抬高约 ,Roll 的经典结果)。对价差 1% 的不流动股票,这些假动作是每天几十个 bp 量级,足以淹没真实的冲击信号——有中间价就用中间价收益,别用收盘到收盘。
尽管毛病一箩筐,Amihud 仍是横截面流动性研究的标准,原因很实际:它只要价格和成交量,而这两样数据哪儿都有。它是一个”够用”的测度,前提是你知道它哪儿不够。
资产定价那条线:非流动性溢价
Amihud (2002) 让这个测度出名的不是定义,是它跟收益的关系。理论底子是 Amihud-Mendelson (1986) 的流动性调整 CAPM:
其中 抓的是投资者持有非流动资产要求的补偿。注意这是一个经验规律,不是从公理推出来的定理。它在横截面上成立:控制市场 beta 后,ILLIQ 高的股票平均收益更高。也在时间序列上成立:聚合 ILLIQ 上升时,未来超额收益倾向于更高。
量级:Amihud (2002) 在美股上按 ILLIQ 分十分位、算等权收益,最高分位跑赢最低分位大约 6% 每年(1963–1997 样本);后续文献里这个溢价的估计大致落在 4–6% 一年,是因子动物园里最大的”异常”之一。随着流动性因子投资流行,溢价近年被套利抹平了一部分,但仍然存在。
不过别把整个溢价都记在”非流动性补偿”账上。ILLIQ 高的股票同时暴露在小盘、价值等其他因子上;ILLIQ 又跟信息不对称相关,信息扩散慢本身就带收益可预测性;还有一部分来自彩票偏好——有些投资者就喜欢不流动名字的高波动长尾。Amihud 测度把这些一锅端了,“真正”的非流动性溢价大概率比原始 ILLIQ 溢价小。Harris 第 19 章的实战派立场就是这个:非流动资产赚溢价,但量级有争议。
这条线在美股之外也验证过。Amihud, Hameed, Kang, Zhang (2015) 在 45 个市场的全球股票上确认了溢价;公司债上溢价存在但因为交易稀疏难估计(Dick-Nielsen, Feldhutter, Lando, 2012);加密市场上低频流动性代理(包括 Amihud)的有效性被专门检验过(Brauneis, Mestel, Riordan, Theissen, 2021),溢价证据则波动大、依赖情景;商品期货上的流动性测度与共性也有专门研究(Marshall, Nguyen, Visaltanachoti, 2013)。跨资产的一致性令人宽心:ILLIQ 抓住了流动性溢价里某些真实的东西。
自己做这类研究时,有两个坑比测度本身杀伤力更大。一个是生存者偏差:股票池必须包含退市股票——Amihud 原始的 CRSP 样本包含退市,很多后续研究没有,而退市恰恰集中在最不流动的分位里,漏掉它们溢价就有偏。另一个是前视偏差:用今天的 ILLIQ 预测今天的收益等于用了交易时还没有的信息,必须用滞后值(比如 月的 ILLIQ 预测 月收益)。Harris 第 19 章讲这些坑的实务面,Hasbrouck (2007) 第 3 章有正式处理。
它在测度家族里的位置
流动性不止一个测度,每个抓的侧面不同:买卖价差抓即时成交的成本;有效价差抓相对中间价的实际执行成本(比报价价差更真实);Roll 测度从价格变化反推价差;换手率(成交量 / 流通股数)度量交易活跃度但不度量成本;Pastor-Stambaugh (2003) 用归因于流动性的收益反转构建因子;Kyle 的 lambda 是理论上每单位流量的冲击。这些测度相关但不相同,Hasbrouck (2007) 第 3 章有清晰的对比。
选择上有一个实用的分工表:
| 用途 | 推荐测度 |
|---|---|
| 横截面资产定价 | Amihud |
| 单资产流动性的时间序列 | 有效买卖价差 |
| 执行算法标定 | Kyle 的 lambda |
| 市场质量监控 | 有效 + 实现价差 |
| 跨资产类比较 | Amihud |
| 高频冲击估计 | Kyle 的 lambda(回归) |
这张表背后的逻辑值得展开一层,拿 Amihud 和有效价差对比最清楚:两者都度量交易成本,但回答的问题不同。有效价差是瞬时快照——你现在在 touch 上成交 $1M,它就是你这一笔的成本;所以执行算法标定用它(和实现价差),因为你在乎的是下一笔。Amihud 是**长期平均**——你一年里每天成交 $1M,它近似每天的平均成本;所以组合构建、风险管理和因子研究用它,因为你需要的是稳定的时间序列。两者都有时应该正相关,高价差的股票也该高 Amihud;如果背道而驰,多半哪儿出了问题——报价停滞,或者这只股票的流动性状态正在切换。这个交叉核对本身就是个好用的健全性检查。
顺带一提执行路由:现代智能路由主要看各场所的有效价差、队列深度和 maker-taker 费用,Amihud 不直接进路由逻辑,但在报价数据稀疏时是决定”要不要把某个场所纳入”的有用退路。
实战:用 ILLIQ 干活
对实战派,ILLIQ 有三个直接用途,从事前到实时。
第一是事前成本预测。发单之前你预期付多少?最简单的预测公式:
其中 是成交美元数, 是滞后的 ILLIQ, 是缩放因子(通常 0.5–2.0,取决于紧急度和市场条件)。一只 的股票上成交 \alpha = 1$时预期成本 1 bp,流动名字上合理;换成$10^{-7}$的名字,同样$1M 就是 10 bp。把这个事前数跟事后实际成本对账,就是最朴素的执行质量评估。反过来它也是回测假设的照妖镜:如果你在 Arithmion 里回测时给一只 ILLIQ 为 的名字假设 5 bp 冲击,乐观了一个数量级——这类不匹配是回测好看、实盘难看的经典来源。
第二是执行节奏调整。同一套逻辑反着用:ILLIQ 高的名字慢慢成交、用被动单、接受更长水平期、付点差换冲击;ILLIQ 低的名字可以快、用市价单、水平期短。一个简单规则是把冲击目标设为买卖价差的一定比例(比如 10%),ILLIQ 告诉你为守住这个目标该走多快。这是自适应执行算法的基础逻辑。
第三是实时监控。在滚动 20 天窗口上算 ILLIQ,突破历史 95 分位就告警——流动性恶化通常先出现在这个数上,再变成执行报表上的坏数字。对做市或执行 desk,这是个值当的低成本哨兵:告警触发就减仓或撤单。用于监控(以及一切机构级用途)时,前面说的数据清理不能省:能用日内数据就用日内,零成交日丢掉或记缺失, 但没有新闻的日子按停滞报价处理。
它不度量什么
收尾前把边界画清楚。Amihud 抓的是每成交金额的价格冲击,仅此而已。它不抓买卖价差(即时执行的代价)、不抓报价深度(touch 上有多少量)、不抓波动率本身(信息环境)、也不抓韧性(价格从冲击中多快恢复)。要做全面的流动性评估,拿它跟有效价差、换手率合用——它是被引用最多的那个,但从来不是唯一需要的那个。
一个除法能走这么远,靠的不是精巧,是数据要求低加上含义直白:每成交一美元,价格动多少。知道它在估计 Kyle 的 lambda,知道分子里掺着波动率和噪音,知道量级怎么读,这个数就够你用了。
参考文献
- Harris, L. Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press, 2003. 第 21 章(流动性),第 19 章(资产定价含义)。ISBN: 978-0-19-514470-3.
- Amihud, Y. “Illiquidity and Stock Returns: Cross-Section and Time-Series Effects.” Journal of Financial Markets, 2002.
- Amihud, Y., Mendelson, H. “Asset Pricing and the Bid-Ask Spread.” Journal of Financial Economics, 1986.
- Pastor, L., Stambaugh, R. “Liquidity Risk and Expected Stock Returns.” Journal of Political Economy, 2003.
- Hasbrouck, J. Empirical Market Microstructure. Oxford University Press, 2007. ISBN: 978-0-19-518115-9(精装)/ 978-0-19-539320-0(平装)。