如何在 Polymarket 和 Kalshi 上回测预测市场策略
回测预测市场与回测股票截然不同。合约结算至 $0 或 $1,窗口只有几分钟,收盘前订单簿流动性稀薄。以下是诚实地进行回测的方法。
诚实地回测预测市场策略,需要重演每个市场实际交易所参照的录制订单簿,按真实挂单流动性对每笔成交定规模,并以真实的 $0/$1 结果结算每个仓位。在 DepthFeed 上,您可以通过两种方式完成——在 Backtest Lab 中零代码操作,或通过数据 API 在自己的技术栈中实现——然后用模拟交易对幸存策略在实时订单簿上进行前向验证。
预测市场回测的独特之处
预测市场合约不是股票,也不是永续合约。每个结果按 0 到 1 报价——即隐含概率——结算时一方精确等于 $1,另一方等于 $0。加密货币涨跌市场在 5 到 60 分钟内对参考价格结算,价差在收盘前扩大、深度变薄,一个市场的整个生命周期可能短于普通图表上的一根 K 线。
这种形态改变了回测的要求。每分钟采样一次最新成交价会错过大部分五分钟市场;忽略订单簿则隐藏了决定盈亏的价差——而该合约最多只能支付一美元;错误标记结算会将赢家翻转为输家。本指南的其余部分就是关于如何正确处理上述每一点的。
第一步——从真实订单簿出发
回测的诚实程度取决于其数据。您需要完整的订单簿——每一个挂单的买价和卖价及其规模,双方各级——在每次变化时捕获,而非按固定时钟采样,因为事件驱动的捕获是看到短期市场完整弧线的唯一方式。Polymarket 和 Kalshi 均不提供自己的历史订单簿深度,因此重演实际存在的订单簿需要一个持续捕获它的数据提供商。
DepthFeed 以统一格式为两个平台提供这一数据:Polymarket 从 CLOB WebSocket 事件驱动捕获,Kalshi 持续全深度轮询(每侧最多 100 档),每个快照附带纪元毫秒时间戳和关联的标的加密货币参考价格。单个数据加载器可读取任意平台。
第二步——按深度而非中间价建模成交
这一步区分了可实际交易的回测与失真的回测。市价单遍历订单簿——先成交最优档,再成交下一档,因此当消耗超过顶部档位时,均价差于触价。挂单加入队列,只有当市场以足够规模穿越其价格时才成交。以零滑点按中间价全量成交——大多数随意回测的默认做法——系统性地高估了优势。
无论您选择哪条路径,都要坚持深度感知成交。在最多支付一美元的合约上,四美分的往返价差中,中间价成交与真实成交之间的差距是巨大的——而且会随每笔交易叠加。
第三步——按真实结果结算
由于收益是二元的,结算不是四舍五入的细节——它是大部分盈亏。Polymarket 涨跌市场按开盘设定的'目标价'与收盘参考价对比结算;Kalshi 合约按到期时公布的参考价是/否结算。针对真实结算而非假设进行回测,并检验分布合理性:在我们捕获的已结算加密货币涨跌市场中,结果接近抛硬币,因此任何结算分布明显偏离此比例的回测可能存在结果标记错误。
第四步——选择工作流:零代码或 API
在 DepthFeed 上运行上述全部步骤有两种方式。零代码路径是 Backtest Lab:选择币种和窗口,选用预设或编写简短规则,选择成交模型,它便在浏览器中重演已结算市场并为您结算——包含深度感知 VWAP 成交,无需搭建任何数据管道。
API 路径适合大规模自定义研究:通过 REST API 拉取全深度快照,在自己的技术栈中重建订单簿,运行任意模型。由于历史 REST API 和实时 WebSocket 输出完全相同的 JSON,您编写的历史重演加载器可直接读取实时数据流——您交易的正是经过回测的那份代码。
第五步——在冒险前先进行前向验证
回测无论多么轻微都是对过去的拟合,因此最后一步是在没有人知道结果的市场上向前运行幸存策略。将规则部署至模拟交易——或通过 Webhook 由自己的机器人驱动——它便用虚拟资金交易实时订单簿,按真实买/卖价成交,并在结算时自动结算。它积累的权益曲线是回测无法提供的前向证据。
这完成了完整闭环:数据 → 诚实回测 → 前向验证。在历史上低成本淘汰坏想法,将幸存者升至实时模拟订单簿,然后才考虑投入真实资金。
常见陷阱
- 使用最新价或小时数据:隐藏价差,错过 5–60 分钟市场的完整生命周期。
- 中间价成交:假设零滑点,在最多支付 $1 的合约上严重高估优势。
- 假设性结算:用真实参考价而非猜测标记赢家——结算决定大部分盈亏。
- 前瞻偏差:只对接收时间戳不晚于决策时刻的数据作出反应。
- 跳过前向验证:仅存在于已结算历史中的优势,在实时市场上未必能存活。
Key takeaways
- 01预测市场在数分钟内结算至 $0/$1,因此深度、时机和结算比任何普通图表都更为重要。
- 02针对真实录制的订单簿回测——双方每一档——在每次变化时捕获,而非采样。
- 03按深度建模成交(遍历订单簿);在最多支付 $1 的合约上,中间价成交悄然高估优势。
- 04按真实结算结算,并检验接近抛硬币的分布;错误标记的结算会将赢家翻转。
- 05在 Backtest Lab 中零代码运行或通过 API 运行,然后用模拟交易在实时订单簿上对幸存策略进行前向验证。
回测预测市场与回测股票截然不同。合约结算至 $0 或 $1,窗口只有几分钟,收盘前订单簿流动性稀薄。以下是诚实地进行回测的方法。
免费开始