一、压力测试概述:做市策略的“体检报告”
大家好,我是老李。在量化圈摸爬滚打了十几年,今天咱们聊聊做市策略的压力测试。
说白了,压力测试就是给你的策略做一次“极限体检”。你想想看,平时市场风平浪静的时候,策略跑得顺风顺水,赚点价差美滋滋。但一旦黑天鹅来了,比如2020年3月原油暴跌、2022年Luna崩盘,很多做市商瞬间爆仓。为什么会这样?
我2018年做过一个ETH做市策略,回测年化收益30%,夏普比3.2,看着完美。结果2020年3月12日那天,ETH从200美元跌到90美元,我的策略在半小时内亏掉了过去三个月的利润。嗯,从那以后,我再也不敢轻视压力测试了。
1.1 什么是做市策略的压力测试?
压力测试,不是简单的回测。它模拟的是极端市场环境——流动性枯竭、波动率飙升、价差剧烈跳动。你需要在这样的“地狱模式”下,看你的策略还能不能活下来。
我个人习惯把压力测试分为三类:
- 历史情景模拟:比如重现2015年A股股灾、2020年3月加密货币暴跌
- 假设情景模拟:比如假设某个交易所突然宕机,或者某个大庄家砸盘
- 蒙特卡洛模拟:随机生成极端行情,看策略的尾部风险
我建议,至少要做前两种。蒙特卡洛虽然全面,但容易忽略一些“黑天鹅”事件——你想想看,历史总是以你意想不到的方式重演。
1.2 为什么极端行情下做市策略容易失效?
这个问题,我当年吃了大亏才搞明白。做市策略的核心逻辑是:在买一价挂买单,在卖一价挂卖单,赚取价差。但极端行情下,这个逻辑会瞬间崩塌。
我总结出三个致命原因:
- 库存风险失控:平时你挂单,成交后很快能平仓。但极端行情下,价格单边暴跌,你手里的库存根本卖不出去。我记得有一次,我的策略在BTC暴跌时不断接货,结果库存从10个BTC变成了50个,浮亏惨不忍睹。
- 价差保护失效:做市策略通常设置一个最小价差,比如0.1%。但极端行情下,价差可能瞬间扩大到5%甚至10%。你的策略还在按0.1%挂单,结果被高频交易者疯狂收割。
- 流动性幻觉:平时盘口深度看着不错,买一有100个BTC。但真到了暴跌时,这些买单可能瞬间撤单,或者被大单吃掉。你挂的单子根本成交不了,或者成交在极差的价格上。
核心结论:做市策略在极端行情下失效,本质上是“流动性提供者”变成了“流动性受害者”。你本想赚点辛苦钱,结果成了市场的接盘侠。
1.3 核心风险因子识别
做压力测试,首先要搞清楚哪些因子会要了你的命。我根据实战经验,梳理出三个最核心的风险因子:
| 风险因子 | 定义 | 对做市策略的影响 | 我踩过的坑 |
|---|---|---|---|
| 流动性枯竭 | 盘口深度急剧下降,买卖价差扩大 | 挂单无法成交,库存无法平仓 | 2020年3月,ETH盘口深度从1000BTC降到10BTC,我的限价单挂了半小时没成交 |
| 波动率飙升 | 价格在短时间内大幅波动 | 库存价值剧烈波动,保证金不足 | 2021年5月,狗狗币一天波动80%,我的策略被连续爆仓三次 |
| 价差剧烈跳动 | 买卖价差在毫秒级内大幅变化 | 策略来不及调整报价,被套利者收割 | 2022年FTX崩盘时,价差从0.01%跳到5%,我的策略还在按0.01%挂单,瞬间被吃掉 |
避坑指南:我曾经犯过一个错误——只关注波动率,忽略了流动性。结果在2022年Luna崩盘时,波动率确实不高(因为价格已经跌到接近0),但流动性完全枯竭,我的策略根本跑不掉。记住:流动性枯竭比波动率飙升更致命。
1.4 压力测试的核心逻辑框架
下面这张图,是我自己总结的压力测试框架。每次做新策略,我都会先跑一遍这个流程。
这个框架的核心逻辑很简单:输入你的策略参数,然后让风险因子“攻击”它,看它能扛多久。我个人习惯先跑历史情景,因为真实发生过的事件最有说服力。然后再跑假设情景,比如“如果交易所宕机1小时会怎样”。
1.5 实战中的避坑指南
最后,分享几个我踩过的坑,希望能帮你少走弯路:
- 不要只看回测结果:回测是“理想状态”,压力测试才是“真实战场”。我见过太多策略回测漂亮,一上实盘就崩。
- 压力测试要定期做:市场环境在变,你的策略也在变。我建议每个月至少跑一次压力测试,特别是市场出现异常波动后。
- 关注尾部风险:不要只看95%分位数的结果,要看99%甚至99.9%分位数。极端行情下,那1%的概率可能让你归零。
- 模拟要真实:不要假设“流动性会恢复”,要假设“流动性永远不会恢复”。我2018年犯的错,就是太乐观了。
警告:压力测试不是万能的。它只能告诉你“在已知的极端情况下会怎样”,但无法预测“未知的极端情况”。所以,永远保留一定的安全边际,不要把仓位打满。
好了,这一章就到这里。记住:做市策略的核心不是赚多少钱,而是活多久。压力测试,就是你的“生存指南”。