研究文章
N / 260903

Polymarket Bot 回测:63.75% 胜率到底说明了什么?

用 18,633 个历史信号拆解 Polymarket Bot 回测里最容易被误读的指标:胜率、赔率结构、STOP、回撤、连续亏损,以及回测和真实收益之间的距离。

如果一个 Polymarket Bot 的回测页面只给你看一个数字,我最不希望那个数字是“胜率”。

不是因为胜率没用,而是因为它太容易被脱离上下文理解。

我们当前公开的 BTC 5 分钟策略回放快照覆盖 2021-09-01 至 2026-09-01,共产生 18,633 个历史信号,其中 18,285 笔进入执行统计,胜 / 负为 11,656 / 6,629,执行胜率 63.75%

63.75% 看起来很直观。

但我真正想知道的不是:

“这个数字高不高?”

而是:

这个数字是在什么收益结构、什么样本路径、什么风险和什么回测假设下得到的?

这几个问题,决定了一个回测数字有没有解释价值。


1. 先别把 63.75% 理解成“盈利概率”

我们的公开回测使用固定标准化计分:

  • 判断正确:+4
  • 判断错误:-5
  • STOP、不执行:0

在这个结构下,理论盈亏平衡胜率约为:

5 / (4 + 5) ≈ 55.56%

所以 63.75% 的历史执行胜率,在这个标准化模型里确实高于盈亏平衡线。

但这仍然不等于:

  • 63.75% 的真实账户收益率;
  • 每 100 美元会稳定赚多少;
  • 实盘每笔都能以相同条件成交;
  • 未来还能保持同样的胜率。

这也是为什么公开报告把累计结果叫 Standardized Score(标准化得分),而不是美元 PnL。

对一个 Polymarket Trading Bot 来说,方向判断只是第一层。真实收益还取决于你以什么价格成交、付出什么费用、是否发生滑点、是否部分成交,以及某些交易到底能不能成交。

Polymarket 当前对部分市场启用了 taker 费用;具体费率由市场决定并在撮合时应用。对短周期策略来说,这种摩擦不能被当成一个无关紧要的小数点。


2. 胜率必须和“输一次有多疼”一起看

假设两个策略都是 64% 胜率。

策略 A:

赢 +1
输 -1

策略 B:

赢 +1
输 -3

它们的胜率一样,但它们根本不是同一种策略。

这也是为什么“XX% 胜率 Bot”这种标题本身几乎没有信息量。

在二元市场里,成交价格会直接改变赔率结构。买入价格越高,判断正确时剩余的利润空间越小;判断错误时,损失仍可能很大。

所以我更愿意问:

胜率和真实入场成本放在一起之后,还有没有 edge?

我们的历史公开报告目前没有把每一笔 Polymarket 真实盘口、全部手续费、滑点、部分成交和网络延迟完整模拟进去。

因此公开的 63.75%,更准确的理解应该是:

当前策略逻辑在历史时序重放下的方向质量统计。

而不是“历史真实账户收益证明”。


3. 我会同时看 STOP

同一个公开快照里还有一个不那么抢眼的数字:

348 次 STOP。

大约占全部历史信号的 1.87%。

STOP 不是程序报错。

它代表某个候选方向已经形成,但完整决策链最终选择不参与。

这件事很重要,因为一个只允许输出:

UP
DOWN

的系统,和一个允许输出:

UP
DOWN
NO TRADE

的系统,本质上是在解决两个不同的问题。

前者是在回答:

“一定要选一个方向的话,我选什么?”

后者还在回答:

“这个机会值得承担风险吗?”

关于这一点,我单独写了一篇:

为什么一个 Polymarket 机器人必须学会不交易?


4. 比平均胜率更重要的是“坏的时候有多坏”

回测里我会重点看两个数字:

  • 最大回撤;
  • 最长连续亏损。

当前公开快照中:

Maximum standardized drawdown: -72
Longest losing streak: 8

这两个数字不会像 63.75% 那么好看,但它们更接近真实使用体验。

因为哪怕一个策略长期统计是正的,也完全可能出现连续亏损。

如果使用者只看平均胜率,很容易把正常的统计波动误认为“策略失效”。

反过来也一样。

连续赢几笔,也不能证明策略突然变得更好了。


5. 为什么我还会看年度和滚动窗口

一个五年总胜率可能掩盖很多东西。

例如:

  • 前两年很好,后三年持续衰减;
  • 某一年贡献了绝大部分结果;
  • 最近半年已经明显改变;
  • 只有某种特定行情阶段有效。

所以一个更可信的研究过程,应该把总体结果拆开。

我们公开报告中,2022—2025 四个完整自然年的历史执行胜率分别落在 61.78% 到 65.64% 的区间。

这至少比“只有一个五年汇总数字”多了一层信息。

但它仍然不能证明未来。

因为历史数据参与过策略研究。


6. “没有偷看未来”仍然不等于独立样本

很多回测介绍会强调:

“我们没有使用未来数据。”

这是必要条件,但还不够。

一个回测完全可以做到每笔交易都没有偷看未来、时间顺序完全正确,同时仍然存在:

  • 参数选择偏差;
  • 规则选择偏差;
  • 多次尝试后的幸存者偏差;
  • 对历史行情的过度适配。

我们的公开报告明确写了:

五年结果不是完全未接触的独立样本。

我认为主动把这句话写出来,比把胜率从 63.7% 修饰成 64% 更重要。

相关阅读:

没有偷看未来,回测就可靠吗?


7. 回测还没有模拟什么?

当前标准化回放没有完整模拟:

  • 每一笔真实 Polymarket 入场价格;
  • 当时真实盘口深度;
  • 可成交数量;
  • 滑点;
  • 全部费用;
  • 网络与 API 延迟;
  • 部分成交;
  • 拒单与超时;
  • 软件停机;
  • 数据源与最终结算源之间可能出现的差异。

而 Polymarket 的真实订单本身还存在 GTC、GTD、FOK、FAK 等不同生命周期。

因此如果一个 Polymarket Bot 回测只输出:

signal → win / loss

我会认为它只回答了整个问题的一部分。


8. 那 63.75% 到底有没有意义?

有。

但它的意义应该被限定得很清楚。

对我来说,它说明:

在当前策略规则和标准化计分口径下,这套方向决策在约五年的历史时序回放中,表现出高于该计分模型盈亏平衡线的历史方向质量。

它没有说明未来会继续保持 63.75%,也没有说明实盘收益会等于标准化回测结果。

一个可信的 Polymarket Bot,不应该只展示最好看的数字。

它还应该告诉你:

  • 数字怎么来的;
  • 哪些交易被过滤;
  • 最差路径是什么;
  • 哪些现实摩擦没被模拟;
  • 历史数据有没有参与研究;
  • 哪些结论它自己都不敢声称。

我认为这些信息加在一起,才叫“回测”。


公开数据快照

Period                  2021-09-01 → 2026-09-01
Historical signals      18,633
Executed orders         18,285
STOP                    348
Wins / Losses           11,656 / 6,629
Executed win rate       63.75%
Standardized net score  +13,479
Max drawdown            -72
Longest loss streak     8

完整统计口径:

Public Backtest Report

项目:

Polymarket BTC 5m Bot

References

本文仅用于技术研究、教育和信息记录,不构成投资、交易或财务建议。历史与回测结果不保证未来表现。