2. 市场微观结构基础

要对大额买单的价格冲击做情景测算,第一步不是套公式,而是把"市场此刻长什么样"描述清楚。市场微观结构提供了三件基础工具:订单簿告诉我们流动性分布在哪里,买卖价差告诉我们即时成交的代价,流动性度量指标则把"薄不薄"变成可比较、可代入模型的数字。本节围绕这三件工具建立冲击测算的分析框架。

一、订单簿:冲击测算的"地形图"

限价订单簿(LOB)按价格档位记录买卖两侧的挂单量。对冲击测算而言,最关键的观察对象是对手方一侧的深度分布:一笔大额买单会从卖一档开始逐档吃掉挂单,直到累计成交量覆盖订单规模。因此,冲击成本本质上取决于"卖侧前若干档累计可成交量"与"订单规模"的比值关系。

设卖侧第 i 档价格为 pi、挂单量为 qi,中间价为 m。一笔规模为 Q 的买单,其理论成交均价与冲击可近似表示为:

累计成交量 V(k) = Σ(i=1..k) q_i
找到最小 k 使 V(k) ≥ Q
成交均价 P_avg ≈ Σ(i=1..k) p_i·q_i' / Q   (q_i' 为各档实际成交量,末档可能部分成交)
价格冲击 Δ = (P_avg − m) / m

这个"逐档扫单"的算法是后续所有情景测算的基准情形。它隐含两个假设:测算期间订单簿不补充新挂单,且不引发其他交易者的反应。真实市场中这两条都会松动,所以基准结果应理解为下限估计,而非精确预测。

订单簿还有两个必须注意的结构特征。其一是档位稀疏性:流动性差的标的往往在卖一之后出现明显价格跳空,同样规模的订单会跨越更多价格区间,冲击呈非线性放大。其二是隐藏流动性:冰山单、暗池等不会完整显示在可见订单簿中,仅凭可见深度会高估冲击,这一点在测算结论中应作为不确定性来源明确标注。

二、买卖价差:即时成本的基准线

买卖价差是最直观的流动性价格。绝对价差为卖一价减买一价,相对价差通常用价差除以中间价表示。对大额买单而言,价差的意义在于:即使订单规模很小、只吃掉卖一档,成交价也已经比中间价高出半个价差,这部分是无法通过拆单规避的固定成本。

因此冲击测算应把总成本拆成两层:第一层是跨越半个价差的即时成本,第二层是穿透多档深度带来的额外冲击。前者由价差决定,后者由订单簿斜率决定。把两者混在一起讨论,会导致情景之间的差异无法归因。实践中常用有效价差(成交价与中间价之差的绝对值)来事后校验测算是否合理。

三、流动性度量指标:把"薄"变成数字

订单簿是快照,指标则是从成交数据中提炼的、可跨标的和跨时段比较的流动性刻度。冲击测算中最常用的两个指标是 Amihud 非流动性与 Kyle's lambda。

Amihud 非流动性衡量单位成交额引起的价格变动幅度,定义为日收益率绝对值与当日成交额之比,通常取一段时间的平均值:

ILLIQ = mean( |r_t| / Amount_t )   × 10^6(便于阅读的缩放)

ILLIQ 越大,说明同样的成交额推动价格越多,市场越薄。它的优点是数据要求低、计算稳定,适合作为情景分组或横截面筛选的粗刻度;缺点是对成交额极小的日子敏感,需要做异常值处理。

Kyle's lambda 来自价格冲击的线性模型:价格变动与带方向的净订单流成正比,比例系数 λ 即"每单位净订单流引起的价格变动"。

Δp_t = λ · OF_t + ε_t
OF_t = 带符号成交量(买方向为正、卖方向为负)
λ 由回归估计;λ 越大,流动性越差、冲击越贵

λ 与冲击测算的衔接最直接:给定预期净买入量 Q,线性近似下的冲击约为 λ·Q。但要注意 λ 是线性假设,大额订单往往落在非线性区间,因此 λ·Q 更适合作为中小规模订单的快速估算,大额情景仍应回到订单簿逐档模拟。

两个指标的分工可以这样记:ILLIQ 回答"这个标的平时薄不薄",用于筛选和分组;λ 回答"每多买一单位,价格大概动多少",用于把订单规模换算成价格冲击。二者都依赖历史成交数据,测算前应确认样本区间与当前市场状态(波动率、成交活跃度)是否可比。

四、把三者组装成分析框架

将上述工具串起来,可以得到一条清晰的测算链路:先用订单簿做逐档扫单,得到基准冲击;再用价差校准即时成本下限;然后用 λ 或 ILLIQ 对基准结果做交叉验证与情景缩放;最后标注隐藏流动性、订单簿补充等不确定性。下图展示了这一框架中各要素的输入、作用与输出关系。

大额买单冲击测算的微观结构分析框架 订单簿快照 卖侧各档价格 p_i / 挂单量 q_i 中间价 m、档位稀疏度 隐藏流动性(冰山/暗池) → 逐档扫单基准 买卖价差 绝对价差 = 卖一 − 买一 相对价差 = 价差 / 中间价 有效价差(事后校验) → 即时成本下限 流动性指标 Amihud ILLIQ = mean(|r|/额) Kyle's λ:Δp = λ·OF λ·Q 快速估算冲击 → 交叉验证与缩放 基准冲击 Δ_base 累计量 V(k) ≥ Q 的最小 k Δ = (P_avg − m) / m 假设:订单簿不补充 即时成本 C_spread ≈ 半个相对价差 不可通过拆单规避 与深度冲击分层归因 指标校验 Δ_λ λ·Q 与 Δ_base 对比 ILLIQ 分组判断薄厚 偏离大 → 检查非线性 冲击成本区间估计 下限 = 基准扫单 + 半价差;上限叠加隐藏流动性与补充不确定性

框架落地时,建议按以下顺序操作。第一步,取测算时点的订单簿快照,记录卖侧至少前五档的价格与挂单量,并计算中间价。第二步,按逐档扫单算法求出基准成交均价与 Δ_base,同时单独算出半个相对价差作为即时成本。第三步,用历史数据估计 λ 与 ILLIQ,把 λ·Q 与 Δ_base 对比:若两者量级接近,说明线性近似可用;若 Δ_base 明显更大,说明订单已进入非线性区间,应以订单簿结果为主。第四步,在结论中给出区间而非单点,并注明隐藏流动性、测算期间订单簿补充等未建模因素的方向性影响。

常见误区有三:一是只用价差估算冲击,忽略深度穿透,导致大额订单成本被严重低估;二是直接用 λ·Q 外推超大订单,线性模型在深度耗尽后失效;三是把可见订单簿当作全部流动性,未标注隐藏单带来的高估偏差。测算报告应明确写出所用假设与数据时点,便于事后复盘校准。