一句话先懂:量化分析不是用复杂公式预测每一场结果,而是把“我为什么认为概率不同”变成可重复、可回测、能扣除真实成本的过程。
预测市场为什么适合量化
Polymarket 的核心输出就是概率价格。你可以把模型给出的概率与市场可成交价格直接比较:
模型概率:64%
市场 Ask:57¢
表面优势:7 个百分点
但“模型高于市场”只是研究起点。真正的交易判断还要处理:
- 模型误差;
- Rules 差异;
- Bid / Ask 与滑点;
- 手续费;
- 样本是否可比;
- 多个仓位是否相关;
- 结果数据是否被修订。
量化的价值不是制造确定性,而是让这些问题能够被记录和检验。
量化不等于自动交易
可以分成三层:
第一层:表格化判断
用电子表格记录市场、基础概率、关键变量、模型概率、实际 Ask 和最终结果。对大多数个人交易者,这已经能显著优于纯直觉。
第二层:统计模型
用回归、Elo、贝叶斯更新、泊松分布、蒙特卡洛或其他方法,把多项变量转换成概率。
第三层:自动扫描与执行
程序持续读取市场数据,寻找模型与价格的分歧,再根据流动性和规则过滤。自动化提高速度,却也放大错误数据与错误模型。
先证明第一层有效,再扩展到后两层,通常比一开始就做机器人更稳妥。
可以使用哪些数据
Polymarket 当前提供多类公开接口:
| 数据层 | 主要用途 |
|---|---|
| Gamma 数据 | 发现事件、市场、标签与元数据 |
| CLOB 数据 | 读取 Bid、Ask、深度、成交与历史价格 |
| Data 数据 | 分析账户活动、持仓、市场参与和历史记录 |
| 实时频道 | 跟踪订单簿、价格和市场状态更新 |
| 链上记录 | 核对交易与资金活动的公开记录 |
此外还需要外部数据:
- 体育:比赛、球员、伤停、Elo、赛程和天气;
- 政治:民调、投票记录、选举制度和人口结构;
- 经济:政府统计、调查预期、历史修订和日历;
- 加密:价格、波动率、资金流、期权和链上指标;
- 天气:测量站实况、历史站点数据与预报模型;
- 电竞:版本、地图、BP、阵容和赛事格式。
最重要的不是数据越多越好,而是每项数据在预测发生之前已经可获得,并且与市场 Rules 的目标一致。
第一步:把市场转换成标准数据行
每个样本至少包含:
market_id
完整问题与 Rules 版本
观测时间
当时 Bid / Ask / 深度
你的模型概率
外部特征
最终结算结果
手续费与实际成交均价
不能只保存“最终价格”和“最终结果”。如果回测时使用了当时不存在的数据,就会产生未来函数。
例如,你想测试“首发公布后买入体育市场”的策略,特征必须使用首发公布那一刻可获得的信息,不能把赛后统计或后续修订混进去。
第二步:从基础概率开始
复杂模型以前,先问类似事件历史上发生多少次。
假设你研究某联赛主队获胜:
- 过去 400 场同类比赛,主队胜 188 场;
- 基础胜率约为 47%;
- 当前主队实力、休息和伤停更有利;
- 模型调整后给出 55%。
基础概率让模型拥有一个稳定起点,也能阻止你因为一条近期新闻直接从 40% 跳到 80%。
样本越小,越应该把估计向更大样本的平均值收缩。10 场赢 8 场不等于真实胜率就是 80%。
第三步:只加入有解释力的变量
一个变量应该同时满足:
- 在结果发生前可观察;
- 与结果存在合理机制;
- 在留出样本中仍有预测力;
- 不只是另一个变量的重复表达;
- 数据定义长期一致。
例如体育模型可加入实力差、主客场、休息天数和核心伤停。把“最近三场赢了几场”“最近五场赢了几场”“最近十场赢了几场”全部加入,可能只是重复追逐近期表现。
模型不是变量收藏夹。每增加一个变量,都增加过拟合和维护成本。
一个简单的概率交易示例
你研究 200 个规则一致、样本可比的事件,其中 Yes 发生 116 次:
基础概率 = 116 ÷ 200 = 58%
根据当前两个有效变量,模型给出 62%。你考虑样本误差后,把保守概率设为 59%。
订单簿显示:
- 最佳 Ask 54¢,但只有 50 份;
- 买入 300 份的平均价格为 56¢;
- 预计费用与其他执行成本约 1¢;
真实比较应该是:
保守概率 59¢
- 平均成交 56¢
- 成本约 1¢
= 净优势约 2¢ / 份
2¢ 是否足够,还取决于模型历史误差。若模型的典型误差为 6 个百分点,这不是强信号。
评估模型不能只看胜率
校准度
如果你给出的 70% 预测长期只发生 55%,模型过度自信;若长期发生约 70%,才算校准。
可以把预测分桶:
| 预测区间 | 样本数 | 实际发生率 |
|---|---|---|
| 50%—59% | 120 | 54% |
| 60%—69% | 95 | 63% |
| 70%—79% | 70 | 74% |
| 80%—89% | 35 | 77% |
最后一组显示模型在高概率区域可能过度自信。
Brier Score
Brier Score 用来衡量概率预测误差:
Brier = (预测概率 - 实际结果)²
实际发生记为 1,不发生记为 0。分数越低越好。
- 预测 70%,结果发生:误差为 (0.70 - 1)² = 0.09;
- 预测 90%,结果没发生:误差为 (0.90 - 0)² = 0.81。
它会严厉惩罚自信却错误的预测,比单纯胜率更适合概率模型。
相对市场表现
还要把模型与同一时刻的市场概率比较。模型准确不代表可交易;如果市场更准确,你仍没有优势。
回测必须使用可执行价格
常见错误是看到历史图上价格为 50¢,就假设自己能以 50¢ 买到任意数量。
真实回测至少需要:
- 当时最佳 Ask,而不是中间价;
- 你的订单规模对应的多档深度;
- 市场是否收费;
- 部分成交和未成交;
- 退出时使用 Bid;
- 重大新闻时挂单是否会撤走;
- 资金被占用的时间。
若没有历史订单簿,只能做保守假设,例如在观测价格上额外加入固定滑点,并明确这只是近似。
七个最常见的量化陷阱
1. 未来函数
使用当时尚未发布的数据、最终修订值或赛后信息。
2. 过拟合
模型完美解释历史,却无法预测未来。变量太多、样本太少是典型原因。
3. 多重测试
测试 100 个策略,总会有几个偶然表现惊人。必须保留真正未参与调参的样本。
4. 样本选择偏差
只下载今天还能看到的市场,可能漏掉已删除、异常或低流动性样本。
5. 规则不一致
标题相似的市场可能有不同截止时间、结算源和边界条件。把它们混在一起会污染标签。
6. 市场环境变化
手续费、参与者、产品和结算机制会变化。去年有效的策略不一定适用于当前市场。
7. 忽略相关性
模型同时找出十个“独立机会”,但它们可能都依赖同一项 CPI、同一支球队或同一次选举。风险不能按十笔分散计算。
量化与基本面应该怎样结合
最实用的分工是:
- 模型负责扫描:从几百个市场找出价格分歧;
- 基本面负责验证:检查规则、数据质量和模型遗漏;
- 订单簿负责执行:判断优势能否以真实价格成交;
- 风控负责组合:限制单笔、相关风险和流动性。
模型说 68%、市场 55¢ 时,不应自动买入。它应该触发一张研究工单:为什么分歧这么大?模型是否漏了新信息?Rules 是否与训练标签不同?
一套从零开始的量化流程
- 只选一个熟悉且规则相对统一的市场类别;
- 定义每个样本的观测时点与结果标签;
- 收集当时可获得的数据和可执行价格;
- 用基础概率建立最简单基准;
- 增加少量有机制解释的变量;
- 分成训练集、验证集和真正留出测试集;
- 检查校准、Brier Score 与相对市场表现;
- 加入费用、滑点、深度和资金占用;
- 先用模拟或极小规模进行前向测试;
- 每次规则、费率或市场结构变化后重新验证。
什么时候模型不应该交易
- 市场 Rules 无法标准化;
- 当前事件超出历史样本范围;
- 数据源刚发生定义变化;
- 模型概率在短时间异常跳变,却找不到原因;
- 订单簿太薄,真实均价消除优势;
- 分歧来自一条模型尚未读取的新消息;
- 优势只存在于回测,不存在于前向测试。
最后记住
量化分析真正追求的是可证伪:
数据是什么、在何时可用、模型怎样产生概率、价格能否成交、成本如何扣除、结果是否校准——每一步都能被别人复现。
复杂模型不会自动产生优势。一个使用正确时间、正确规则和真实 Ask 的简单模型,通常比使用错误数据的精密模型更有价值。
