3、流动性度量:买卖价差、市场深度、Amihud非流动性指标、流动性比率

流动性这东西,说起来玄乎,其实就一句话:你想卖的时候,能不能快速卖掉,还不怎么亏钱。

我早年做CTA策略的时候,吃过流动性的亏。当时回测曲线漂亮得不行,实盘一跑,滑点直接吃掉一半利润。嗯,从那以后,我再也不敢轻视流动性度量了。

这一节,咱们就把流动性度量这件事拆开揉碎。说白了,就是几个核心指标:买卖价差、市场深度、Amihud非流动性指标、流动性比率。每个指标都有它的脾气,咱们一个个来看。

3.1 买卖价差(Bid-Ask Spread)

这是最直观的流动性指标。你想想看,你去菜市场买菜,摊主说“5块一斤”,你说“4块卖不卖”,这就是买卖价差。

在交易里,买一价(Bid)是市场愿意出的最高价,卖一价(Ask)是市场愿意卖的最低价。价差越小,流动性越好。为什么?因为你的交易成本低啊。

绝对价差 = Ask - Bid
相对价差 = (Ask - Bid) / MidPrice

我个人习惯用相对价差,因为不同价格的股票,绝对价差没法直接比。茅台价差5毛钱,跟ST股价差5毛钱,意义完全不一样。

实战经验: 我在做高频因子时,发现A股很多小盘股的相对价差能到1%以上。这意味着你每买卖一次,先亏1%。这种票,做短线就是给券商打工。

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元。这就是冲击成本。

我的习惯: 做程序化交易时,我一般会计算“X%成交量下的市场深度”。比如,你想吃掉订单簿上10%的挂单量,需要花多少钱?这个指标比单纯的价差更有用。

3.3 Amihud非流动性指标

这个指标,是我个人非常喜欢的一个。它不需要高频数据,用日线就能算,特别适合做学术研究或者低频策略。

Amihud指标的定义很简单:

Amihud = 平均( |日收益率| / 日成交金额 )

为什么这么定义?你想想看,如果一只股票每天涨跌1%,但成交额只有100万,说明这1%的波动可能只是几笔小单打出来的,流动性很差。反过来,如果成交额是10个亿,那这1%的波动就是市场共识,流动性好。

Amihud指标的特点:

  • 数值越大,流动性越差
  • 对极端值敏感,建议用中位数或截尾均值
  • 适合跨股票、跨时间比较
避坑指南: 我曾经用Amihud指标做因子,发现ST股的指标值普遍很高。但要注意,停牌日的收益率是0,成交额也是0,0/0是NaN。一定要先剔除停牌日的数据,否则结果会失真。

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指标 日线可算,适合研究 流动性比率 价格冲击敏感度 应用场景:因子构建 | 交易成本估算 | 策略风控 | 市场微观结构研究 数据需求:Tick级数据 | 订单簿快照 | 日线成交数据 | Level-2行情 注意事项:剔除异常值 | 区分不同市场 | 考虑时间维度 | 结合交易策略 核心思想:没有完美的流动性指标,多维度交叉验证才是王道 价差看成本,深度看容量,Amihud看弹性,比率看敏感度

你看,这四个指标各有侧重。价差告诉你交易成本,深度告诉你大单能不能吃得下,Amihud指标适合做截面比较,流动性比率则更关注价格冲击。

在实际工作中,我一般会组合使用。比如,做选股因子时用Amihud指标,做算法交易时看市场深度,做策略回测时用价差估算滑点。没有哪个指标是万能的,关键看你的应用场景。

一个小技巧: 如果你只有日线数据,又想估算冲击成本,可以用Amihud指标乘以你的交易金额。虽然粗糙,但至少能给你一个数量级的参考。我早期做回测时就这么干,比完全忽略滑点强多了。

嗯,流动性度量这块,咱们就聊到这儿。记住一句话:流动性不是静态的,它会随时间、随市场情绪、随大单进出而变化。度量它,是为了更好地管理它。