4. 偏离度阈值设定方法:固定阈值法、动态阈值法、基于波动率的阈值
各位同学,今天我们来聊聊做市商报价偏离度控制里最核心的一个问题——阈值怎么设。
阈值设得太宽,你的报价可能偏离市场太远,成交率低,库存风险也大。设得太窄,又容易被高频交易者反复收割,赚不到价差。说白了,这就是个平衡的艺术。
我个人习惯把阈值设定方法分成三类:固定阈值法、动态阈值法、基于波动率的阈值法。每种方法都有它的适用场景,也有各自的坑。下面我一个个讲。
4.1 固定阈值法
固定阈值法,顾名思义,就是设定一个不变的偏离度上限。比如,我规定我的报价偏离中间价不能超过 0.1%。
这个方法的好处是简单、直观、容易实现。你甚至可以用一个配置文件就搞定。我在早期做加密货币做市的时候,就经常用这个方法。那时候市场波动不大,固定阈值完全够用。
但它的缺点也很明显——不够灵活。市场波动剧烈时,0.1% 可能太紧,导致你频繁撤单;市场平静时,0.1% 又可能太松,让你吃不到单子。
4.2 动态阈值法
动态阈值法,就是让阈值随着市场状态自动调整。常见的做法是基于时间窗口内的统计量,比如过去 N 笔交易的偏离度均值或分位数。
举个例子,我可以设定阈值为过去 100 笔交易偏离度的 90% 分位数。这样,阈值会随着市场活跃度自动伸缩。
我曾经在某个流动性较差的山寨币上用过这个方法。当时固定阈值完全失效,因为市场经常出现瞬间的大幅偏离。改用动态阈值后,系统自动适应了这种波动,效果好了很多。
动态阈值法的核心在于两个参数:
- 窗口长度 N:N 越大,阈值越平滑,但反应越慢;N 越小,阈值越灵敏,但容易受噪声干扰。
- 分位数 p:p 越高,阈值越宽松;p 越低,阈值越严格。
4.3 基于波动率的阈值
这个方法是我个人最推荐的。它把阈值和市场的实时波动率挂钩。波动率大时,阈值放宽;波动率小时,阈值收紧。
具体实现上,我通常用以下公式:
threshold = base_spread + k * σ
其中:
base_spread是基础价差,比如 0.05%σ是当前波动率估计值,可以用历史波动率或实时波动率k是一个缩放系数,通常取 1.5 到 3 之间
波动率的计算方式有很多种。我常用的有两种:
- 历史波动率:基于过去 N 个时间窗口的收益率标准差。适合日频或小时频的策略。
- 实时波动率:基于订单簿的即时变化,比如买卖价差的宽度、订单簿深度等。适合高频做市。
你想想看,如果市场突然出现一个大的新闻事件,波动率瞬间飙升,你的固定阈值可能直接导致报价被吃掉。但基于波动率的阈值会自动放宽,给你留出调整空间。
4.4 三种方法的对比
为了让你更直观地理解,我整理了一个对比表:
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 固定阈值法 | 简单、易实现、低延迟 | 不灵活、无法适应市场变化 | 波动率稳定的市场、回测验证 |
| 动态阈值法 | 自适应、基于统计量 | 参数敏感、窗口选择有技巧 | 流动性一般、波动适中的市场 |
| 基于波动率的阈值 | 与风险直接挂钩、理论扎实 | 需要实时计算波动率、实现稍复杂 | 高波动市场、专业做市系统 |
4.5 我的选择建议
如果你问我个人偏好,我会说:能用波动率就别用固定,能用动态就别拍脑袋。
但这不是绝对的。我记得有一次做一个低延迟的期货做市项目,系统对延迟要求极高,每微秒都很宝贵。那时候我被迫用了固定阈值法,因为动态计算波动率会引入额外的延迟。嗯,这里要注意,任何方法都要结合你的系统架构和业务需求来选。
另外,我建议你在实盘之前,先用历史数据回测三种方法的表现。看看在不同市场环境下,哪种方法能给你带来更好的 Sharpe 比率和更低的回撤。
4.6 知识体系结构图
下面我用一张图来总结本章的核心逻辑:
这张图把三种方法的关系和适用场景梳理得很清楚。你可以把它当作一个决策树来用——先看市场波动情况,再选合适的方法。
好了,关于偏离度阈值的设定方法,我就讲到这里。记住,没有银弹,只有最适合你当前场景的方案。多回测、多对比、多踩坑,你自然能找到感觉。