4、流动性度量指标(下):市场深度指标与价格影响模型

各位同学,咱们接着聊流动性度量。上一节讲了价差类指标,说白了那是衡量「交易成本」的。今天要聊的,是衡量「市场容量」的——也就是你扔一笔大单进去,市场能扛得住吗?

我个人做量化策略这些年,最怕的就是策略在回测里跑得漂亮,一上实盘就滑点滑到亏钱。原因往往就出在——你只看了买卖价差,没看市场深度。

一、市场深度指标

市场深度,简单说就是订单簿上各个价位的挂单量。深度越厚,大单进去越不容易把价格打飞。

1. 订单簿斜率

这个指标挺直观的。你把订单簿上的价格和累计挂单量画个曲线,斜率越大,说明价格每变动一个单位,能成交的量越大。反过来,斜率小,说明订单簿「薄」,一戳就破。

计算公式:

订单簿斜率 = Δ价格 / Δ累计挂单量

嗯,这里要注意:斜率是分方向的。买盘斜率和卖盘斜率通常不对称。我见过一些做市商策略,专门盯着这个斜率不对称性来吃价差。

实战经验: 我个人习惯把订单簿斜率做成一个滚动窗口的均值。如果斜率突然变陡,说明有大户在偷偷堆单,可能是暴风雨前的宁静。

2. 成交量加权价差

这个指标比简单价差更实用。它考虑了不同价位上的挂单量,算出一个「加权平均」的买卖价差。

成交量加权价差 = Σ(卖盘价×卖盘量 - 买盘价×买盘量) / 总挂单量

说白了,就是告诉你:如果你想吃掉订单簿上前N档的所有流动性,平均每单位要付出多少成本。

我在做ETF套利策略时,就经常用这个指标来估算实际交易成本。有时候买卖价差看着只有0.01,但成交量加权价差可能已经到0.05了——这就是陷阱。

避坑指南: 我曾经吃过一次亏。某个小市值股票,买卖价差只有2个tick,我以为流动性很好。结果一算成交量加权价差,好家伙,前5档加起来不到1000股。这种「假深度」在A股小盘股里特别常见。

二、价格影响模型

订单簿指标只能告诉你「当前」的流动性状况。但如果你要执行大单,市场会怎么反应?这就需要价格影响模型了。

1. Kyle's Lambda

这个模型是Kyle在1985年提出的,核心思想很简单:

ΔP = λ × Q

其中ΔP是价格变动,Q是交易量,λ就是Kyle's Lambda——衡量「每单位交易量对价格的冲击程度」。

λ越大,说明市场越脆弱,一点点交易量就能把价格打飞。λ越小,说明市场深度好,大单进去也不怎么影响价格。

怎么算λ? 我一般用日内高频数据做回归:

import numpy as np
import pandas as pd

# 假设有分钟级的价格和成交量数据
def calc_kyle_lambda(price, volume):
    # 计算价格变化
    dp = price.diff().dropna()
    # 对齐成交量
    vol = volume.iloc[1:]
    # 回归:ΔP = λ × Q + ε
    # 用最小二乘法
    lambda_hat = np.sum(dp * vol) / np.sum(vol ** 2)
    return lambda_hat

你想想看,这个λ其实是个动态指标。市场情绪好的时候λ小,恐慌的时候λ会突然放大。我记得2020年3月美股熔断那会儿,λ值直接翻了10倍——那时候你就算只卖100股,都能把价格砸下去一个tick。

核心要点: Kyle's Lambda衡量的是「永久性」价格冲击。也就是说,你交易完之后,价格不会回到原来的位置。这个特性在做大单拆单策略时特别重要。

2. Almgren-Chriss模型

这个模型更实用。它把价格影响拆成了两部分:

  • 永久性冲击: 由信息不对称引起的,交易完成后价格不会恢复
  • 临时性冲击: 由流动性消耗引起的,交易完成后价格会逐渐恢复

模型公式长这样:

永久冲击 = γ × σ × (Q / V)^α
临时冲击 = η × σ × (Q / V)^β

其中:

  • σ:波动率
  • Q:你的交易量
  • V:市场总成交量
  • γ、η、α、β:需要估计的参数

说实话,这个模型参数估计挺麻烦的。我一般用历史数据做非线性回归,或者直接用一些经验值:α≈0.5,β≈0.3。

为什么这个模型重要? 因为它能帮你做「最优执行」——也就是决定怎么拆单、什么速度交易,能让总成本最小。

我的习惯: 做日内策略时,我会把Almgren-Chriss模型嵌入到交易引擎里。每5分钟重新估计一次参数,然后动态调整拆单速度。效果嘛,比固定时间间隔拆单能省10%-20%的冲击成本。

三、知识体系总览

下面这张图,把今天讲的内容串起来了:

流动性度量指标(下)知识体系 市场深度指标 价格影响模型 订单簿斜率 成交量加权价差 • 衡量订单簿各价位挂单量 • 斜率越大 → 深度越好 • 加权价差反映实际交易成本 Kyle's Lambda Almgren-Chriss • λ = ΔP / Q,衡量冲击敏感度 • A-C模型拆分为永久+临时冲击 • 用于最优执行策略设计 核心目标:量化大单交易对市场的冲击成本 互补关系

四、实战中的选择

讲了这么多,到底用哪个?我个人的经验是:

  • 做高频做市: 盯订单簿斜率,反应快
  • 做日内趋势: 用成交量加权价差估算成本
  • 做大单执行: 必须上Almgren-Chriss模型
  • 做风控监控: Kyle's Lambda当预警指标

嗯,最后提醒一句:这些指标都是基于历史数据的。市场结构变了,参数就得重新估计。我每季度都会做一次模型校准,别偷懒。

一句话总结: 价差告诉你「贵不贵」,深度告诉你「能不能扛」,价格影响模型告诉你「扛多久」。

专注资料整理