4. 流动性压力测试:订单簿冲击、滑点模型与流动性枯竭模拟

流动性压力测试,说白了就是看你的策略在“没人接盘”的时候怎么死。我见过太多策略在回测里跑得漂亮,一上线遇到流动性枯竭,直接亏穿。嗯,今天我们就来聊聊这块硬骨头。

4.1 订单簿冲击模型

订单簿是市场的真实写照。你想想看,一个限价单挂在那里,就是有人在那个价位等着交易。但你的大单子一进去,就像石头扔进池塘,会激起涟漪。

核心问题:你的订单会吃掉多少档位?

我个人习惯用这个公式估算冲击成本:

冲击成本 = Σ (第i档挂单量 × 第i档价格偏移) / 总交易量

举个例子,假设订单簿长这样:

档位 价格 挂单量
1 100.0 1000
2 100.1 2000
3 100.2 3000

你要买5000股。第一档吃掉1000股,第二档吃掉2000股,第三档吃掉2000股。冲击成本就是:

(1000×0 + 2000×0.1 + 2000×0.2) / 5000 = 0.12

每股价钱多了0.12元。这就是你的隐性成本。

关键点:订单簿越薄,冲击成本越大。我在项目中遇到过,某个小币种只有3档深度,一个大单直接拉穿5%。

4.2 滑点模型

滑点不是玄学,是数学。它由两部分组成:

  • 固定滑点:买卖价差的一半。比如买一100.0,卖一100.1,固定滑点就是0.05。
  • 动态滑点:你的订单对市场的冲击。这个跟订单簿深度直接相关。

我常用的滑点模型长这样:

总滑点 = 固定滑点 + 冲击成本 × 滑点系数

滑点系数是个经验值。我记得有一次做回测,发现实际滑点比模型预测高了30%。后来一查,是因为那个时间段有量化基金在抢跑。

我的建议:滑点系数至少设1.2。保守点设1.5。别问我怎么知道的,都是亏出来的教训。

4.3 流动性枯竭模拟

这是压力测试的重头戏。流动性枯竭不是慢慢发生的,它往往是瞬间的。你想想看,一个黑天鹅事件出来,所有人都在跑,订单簿瞬间被抽干。

模拟步骤:

  1. 设定枯竭场景:比如订单簿深度缩减90%。
  2. 计算极端滑点:在枯竭的订单簿上重新计算冲击成本。
  3. 评估策略表现:看策略在这种环境下会不会爆仓。

我曾经做过一个极端测试:把订单簿深度砍到只剩1%。结果呢?一个原本年化20%的策略,直接亏了40%。

警告:流动性枯竭时,你的止损单可能根本成交不了。别指望限价单能救命,那时候市场上全是恐慌盘。

4.4 核心逻辑流程图

下面这张图,是我自己总结的流动性压力测试全流程。你看一遍就能明白:

流动性压力测试核心流程 订单簿数据输入 订单簿冲击模型计算 滑点模型估算 流动性枯竭场景模拟 压力测试报告输出 输入层 计算层 模拟层 输出层

4.5 实战中的避坑指南

做流动性压力测试,有几个坑我踩过,你们别踩:

  • 别只看平均深度:平均深度会骗人。要看极端情况下的深度。我曾经用平均深度做测试,结果实际交易时滑点大了3倍。
  • 别忽略时间因素:流动性在一天内变化很大。开盘和收盘时流动性最好,中午最差。你的测试要覆盖这些时段。
  • 别忘记跨市场影响:一个市场流动性枯竭,会传染到其他市场。我记得2020年3月,美股熔断,连带着加密货币市场也崩了。

核心结论:流动性压力测试不是走过场。它是你的策略在极端行情下的最后一道防线。我建议每个月至少跑一次全量测试。

嗯,今天就聊到这里。流动性这块,说白了就是“平时多流汗,战时少流血”。你把这些模型跑熟了,真遇到黑天鹅,至少心里有底。

专注资料整理