SightWhale
← 返回博客

警报校准:如何选择避免过拟合的阈值(回测操作指南)

SightWhale··6 分钟·Read in English

警报校准:如何选择避免过拟合的阈值(回测操作指南)

大多数警报系统的失败方式如出一辙:

它们混淆了活动信号

如果你对每一笔大额交易都发出警报,你将面临:

  • 无休止的通知
  • 低信任度
  • 一个残酷的问题:用户会在本月最佳交易前将你静音

替代方案并非魔法,而是校准。

本文解释如何选择警报阈值,使其:

  • 可衡量
  • 抵抗过拟合
  • 在不破坏召回率的前提下提高精确率

内部链接:


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

相关文章