3. 流动性度量指标体系(下):价格影响模型、流动性比率、时间维度指标与综合评分模型

各位,咱们接着聊流动性度量。上一节讲了买卖价差和深度指标,今天要啃的这几块硬骨头——价格影响模型、流动性比率、时间维度指标,还有最后的综合评分模型——才是真正决定你能不能赚钱的关键。

我个人习惯把流动性度量分成三个维度:成本维度(价差)、深度维度(订单簿)、弹性维度(价格影响与时间)。今天重点讲弹性维度,说白了就是:你砸一笔钱进去,市场会怎么反应?多久能恢复?

3.1 Amihud Illiquidity Ratio:最经典的价格影响模型

先讲Amihud非流动性比率。这个指标我用了快十年,每次做量化策略回测都绕不开它。

公式很简单:

Amihud_ILLIQ = (1/N) * Σ(|R_t| / Volume_t)

其中R_t是日收益率,Volume_t是日成交金额。这个比值衡量的是:每单位成交金额能引起多大的价格波动

举个例子:

  • 某国债日成交1亿,收益率波动0.01%,ILLIQ = 0.01% / 1亿 = 1e-12
  • 某信用债日成交100万,收益率波动0.5%,ILLIQ = 0.5% / 100万 = 5e-8

你看,差了5万倍。这就是流动性差距的量化体现。

核心逻辑:ILLIQ值越大,说明单位成交量引发的价格冲击越大,流动性越差。

我在项目中遇到过一个问题:用日频数据算ILLIQ,对于高频交易来说太粗糙了。后来我改用5分钟K线算,效果好了很多。但要注意,频率越高,噪音越大,需要做平滑处理。

实战技巧:建议用过去20个交易日的滚动窗口计算ILLIQ,既能捕捉流动性变化,又不会太敏感。

3.2 流动性比率:换个角度看问题

流动性比率(Liquidity Ratio)跟Amihud正好相反。它衡量的是:为了产生单位价格波动,需要多少成交量

公式:

LR = Σ(Volume_t) / Σ(|R_t|)

这个指标我更喜欢用在信用债上。为什么?因为信用债的报价不连续,用Amihud算出来经常是缺失值,但流动性比率可以用周度甚至月度数据来算,数据更完整。

我记得有一次做城投债的流动性分析,用Amihud算出来一堆NaN,换成流动性比率后,数据一下子就完整了。嗯,这里要注意:流动性比率对极端值很敏感,建议做截尾处理。

指标 含义 适用场景 注意事项
Amihud ILLIQ 单位成交量的价格冲击 高频、国债 对零成交敏感
流动性比率 单位波动的成交量 低频、信用债 需截尾处理

3.3 时间维度指标:交易频率与交易间隔

时间维度指标,说白了就是看市场活跃度。我经常跟团队说:没有成交的流动性都是耍流氓

两个核心指标:

  • 交易频率:单位时间内的成交笔数。频率越高,流动性越好。
  • 交易间隔:相邻两笔成交的时间差。间隔越短,流动性越好。

你想想看,一只债一天成交100笔,另一只一天成交1笔,哪个流动性好?一目了然。但问题在于:交易频率高不代表价格冲击小。我曾经见过一只高频交易的信用债,每笔成交只有几十万,大单进去照样打穿盘口。

避坑指南:我曾经把交易频率作为唯一流动性指标,结果回测表现很好,实盘一跑就崩。后来发现,高频小单的流动性跟大单流动性完全是两码事。一定要结合价格影响指标一起看。

计算交易间隔时,我建议用中位数而不是平均数。为什么?因为极端值太多。比如某只债白天成交密集,晚上一笔都没有,平均间隔会被拉得很高,但中位数能更真实反映正常交易时段的情况。

3.4 综合流动性评分模型构建

好了,前面讲了这么多指标,怎么整合成一个分数?这就是综合流动性评分模型要解决的问题。

我个人习惯用打分法,简单粗暴但有效:

  1. 指标选择:选5-8个核心指标,比如买卖价差、有效价差、Amihud ILLIQ、流动性比率、交易频率、交易间隔、订单簿深度等。
  2. 标准化:每个指标做百分位排名,或者Z-score标准化。我偏好百分位,因为不受极端值影响。
  3. 权重分配:可以用等权重,也可以用主成分分析(PCA)确定权重。等权重适合快速原型,PCA适合正式模型。
  4. 综合得分:加权求和,得分越高流动性越好。

下面是我常用的一个评分框架:

# 伪代码示例
def liquidity_score(bond_data):
    # 1. 计算各指标
    spread_score = percentile_rank(bond_data['bid_ask_spread'], reverse=True)
    amihud_score = percentile_rank(bond_data['amihud_illiq'], reverse=True)
    freq_score = percentile_rank(bond_data['trade_frequency'])
    interval_score = percentile_rank(bond_data['trade_interval'], reverse=True)
    
    # 2. 加权求和(等权重示例)
    weights = [0.25, 0.25, 0.25, 0.25]
    score = (spread_score * weights[0] + 
             amihud_score * weights[1] + 
             freq_score * weights[2] + 
             interval_score * weights[3])
    
    return score

关键点:评分模型不是一成不变的。不同券种、不同市场环境下,权重应该动态调整。比如牛市中,价差指标权重可以降低,因为大家都在追涨;熊市中,价格影响指标权重应该提高,因为流动性会瞬间枯竭。

我曾经帮一家券商做过一个综合流动性评分系统,用了7个指标,每天收盘后自动计算全市场债券的流动性得分。结果发现,得分最低的那10%债券,在压力测试中平均损失比得分最高的债券高出3倍。这就是量化流动性的价值。

最后,给大家一个建议:不要迷信任何一个单一指标。流动性是个多面体,只有综合多个维度,才能看清全貌。就像我常说的:用Amihud看价格冲击,用价差看交易成本,用交易频率看活跃度,三者结合,才能做出靠谱的交易决策。

实战总结:综合评分模型上线前,一定要做回测验证。用过去一年的数据,看看评分低的债券是否真的更难交易、滑点更大。如果回测结果跟直觉不符,赶紧回去检查指标计算逻辑。

债券流动性综合评分模型框架 成本维度 深度维度 弹性维度 买卖价差 有效价差 订单簿深度 成交量 Amihud ILLIQ 流动性比率 交易频率/间隔 综合流动性评分 交易决策 · 风险控制 · 定价参考

公众号:蓝海资料掘金营,微信deep3321