警报校准:如何选择避免过拟合的阈值(回测操作指南)
警报校准:如何选择避免过拟合的阈值(回测操作指南)
大多数警报系统的失败方式如出一辙:
它们混淆了活动与信号。
如果你对每一笔大额交易都发出警报,你将面临:
- 无休止的通知
- 低信任度
- 一个残酷的问题:用户会在本月最佳交易前将你静音
替代方案并非魔法,而是校准。
本文解释如何选择警报阈值,使其:
- 可衡量
- 抵抗过拟合
- 在不破坏召回率的前提下提高精确率
内部链接:
- 回测:/backtesting
- 升级/警报:/subscribe
1) 首先:定义何为“好警报”
警报不是“正确”的,警报是有用的。
选择一个与用户交易方式匹配的具体标签。例如:
- 利润标签:警报后,市场朝你的方向移动+X点,然后在朝反方向移动-Y点之前(“止盈/止损”标签)
- 时间标签:警报后,市场在接下来1小时/6小时/24小时内获得正收益
- 执行标签:警报后,有足够的深度/点差以便合理入场(过滤流动性陷阱)
不要混合标签。每次校准运行只选一个。
2) 选择惩罚噪音的指标
准确率在这里毫无用处,因为“好警报”很少。使用:
- 精确率:发出的警报中,有多少是好的?
- 召回率:好的机会中,你抓住了多少?
精确率-召回率曲线是合适的工具,因为它明确展示了不同阈值下精确率和召回率之间的权衡。 来源:scikit-learn文档关于精确率-召回率曲线和工作点。https://scikit-learn.org/stable/auto_examples/model_selection/plot_precision_recall.html
将每个阈值选择视为一个工作点。
3) 阈值是一个工作点(而非“设置”)
每个阈值都是一个策略选择:
- 低阈值:高召回率,低精确率(话多)
- 高阈值:低召回率,高精确率(安静)
大多数团队凭感觉调整阈值。
相反,应根据错误的成本来调整:
- 假阳性成本:用户被垃圾信息轰炸,失去信任,进入糟糕交易
- 假阴性成本:用户错过重大行情
如果你的产品承诺是“只有顶级信号”,接受较低的召回率并优化精确率。 如果你的承诺是“永不错过重大行情”,接受更多噪音并优化召回率。
4) 分层回测(否则你会过拟合)
过拟合最快的方法是校准一个全局阈值。
市场并非单一分布。
至少按以下维度分层:
A) 流动性层级
流动性改变一切(点差、冲击、成交可靠性)。一笔1万美元的交易在以下情况意义不同:
- 点差小的厚订单簿
- 点差大的薄订单簿
B) 市场类别
加密货币分钟级市场不同于选举市场。 体育市场不同于地缘政治市场。
C) 市场状态/时间段
新闻驱动的月份与平静月份表现不同。
实施技巧:
构建一个回测表,每行是一个警报候选,并添加列:
- 流动性桶
- 类别标签
- 时间戳桶(周/月)
然后按桶校准,或至少按桶验证。
5) 校准循环(实际步骤)
以下是有效的循环:
步骤1 — 生成候选
从一个宽松的候选集开始:
- 超过美元阈值的交易
- 超过分数阈值的钱包
- 超过最低流动性阈值的市场
步骤2 — 标记结果
对于每个候选警报:
- 计算未来收益或止盈/止损结果
- 存储标签(好/坏)和幅度
步骤3 — 扫描阈值
选择一个参数化:
- 最小交易规模(美元)
- 最小钱包分数
- 最小置信度
- 冷却窗口
然后网格扫描,计算每个组合的精确率和召回率。
步骤4 — 按细分市场选择工作点
按细分市场(流动性×类别)选择阈值。偏好稳定的点:
- 不会每周剧烈波动
发布于: 2026年6月23日 · 6 分钟 · SightWhale