mcpField
P
prediction-market-strategy

prediction-market-strategy

github.com/agiprolabs其他456317 次安装8 周前更新
代码仓库

关于 prediction-market-strategy

prediction-market-strategy 是一项面向二元预测市场的策略与验证指南,适用于 Kalshi、Polymarket 等市场的交易者和研究者。内容涵盖 maker/taker 策略、费用调整后的边际筛选、仓位管理及回测验证。

主要功能

  1. 01比较多种市场策略及其局限
  2. 02按费用调整净边际筛选交易
  3. 03提供分数 Kelly 仓位计算
  4. 04说明风险敞口与滑点限制
  5. 05列出回测与结算验证方法

适用场景

  1. 01筛选费用后仍有边际优势的合约
  2. 02为交易仓位和账户敞口设定上限
  3. 03检查回测中的结算错误与数据泄漏

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill prediction-market-strategy

安装后在 Claude Code 中输入/prediction-market-strategy确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
backtesting-methodology.md
evidence-and-literature.md
sizing-and-edge-gates.md
strategy-catalog.md
scripts/
sizing.py

详细介绍

预测市场策略

二元预测市场将合约价格设定为概率。本技能涵盖适用于所有平台和市场类型的策略、仓位规模和验证层。API 操作机制见 kalshi-api / polymarket-api;合约语义和结算见 kalshi-weather-markets / kalshi-crypto-index-markets。这就是适用于所有这些市场的策略/仓位规模/验证层。

核心论点

价格 = 隐含概率。 定价为 $0.18 的合约表示其结算为 YES 的概率为 18%。一组中的各个区间合计略高于 $1.00——超额赔率就是庄家利润(Kalshi 天气市场约为 5–8%)。

吃单者系统性亏损;挂单者系统性盈利。 在超过 30 万份 Kalshi 合约中,扣除费用前的平均回报约为 −20%,亏损主要集中在吃单者(使用市价单的用户)和买入小概率事件合约的人身上。挂单者(挂出未成交限价单的人)能获得正回报。在 Polymarket(超过 5.88 亿笔交易)中,排名前约 1% 的账户拿走约 76.5% 的利润,主要通过挂出限价单获利。这是最基础的结论。

热门—冷门偏差是持久存在的机制。 低价小概率合约系统性地定价过高:历史上,定价为 $0.05 的合约约有 2% 的概率胜出;对于买家而言,价格低于 $0.10 的合约会损失约 60% 的投注额。热门合约的定价合理或略低。可重复的做法是站在做市方一侧卖出定价过高的小概率尾部合约——在定价约为 $0.05–$0.20 的区间挂出 NO 买单,并分散到许多事件中,以承受罕见的命中。这是结构性/行为性优势,而非预测优势。

预测能力 ≠ 交易优势。 在决策时点,优秀的天气或事件预测与市场价格大多是重复信息。市场汇总信息的效率足够高,即使模型明显更优,扣除费用后净优势仍接近于零,除非它能发现系统性的错误定价(这属于行为因素,而非信息因素)。在交易清淡的市场中,官方标签机器学习是个例外——但它受成交率和容量限制,而非预测准确度限制。


策略目录

针对 Kalshi/Polymarket 天气和事件市场评估的策略。“真实有效”表示该策略在测试中经正确结算和扣费后仍然成立;其他策略会特别标出,避免你再次追逐它们。

策略结论机制关键问题
热门—冷门偏差反向操作,做市方一侧✅ 持久有效在价格约为 $0.05–$0.20 的区间挂出 NO 买单;利用行为导致的尾部定价过高小概率事件罕见命中;需向前测量成交率
仅买入区间 YES(由预测驱动)✅ 有效,对费用敏感校准后的模型认为区间价格明显偏低时买入 YES需要通过净优势 > θ 门槛,而非看原始胜率
做市/提供流动性⚠️ 结构上有利,但对基础设施要求高双边报价,赚取价差和做市返佣库存风险、不利选择、排队优先级
超额赔率/荷兰式套利⚠️ 理论上可行,实践中收益有限各区间合计 >$1.00;买入定价偏低的剩余部分各腿必须同时成交;Kalshi 的成交是依次发生的
跨平台套利(Kalshi ↔ Polymarket)❌ 多数人无法参与在两个平台上同时持有等价合约的仓位转移时间/成本会抹去优势;地域限制
延迟/抢先利用新闻(加密货币/指数小时合约)❌ 高频交易游戏在市场重新定价前,对公开信息源作出反应要求低于 100 毫秒的延迟;需同址托管;不适合零售交易者
日内接近确定的合约重新定价⚠️ 信息/延迟优势市场对接近确定的合约重新定价缓慢;捕捉剩余机会需要实时信息源和自动化
跟随高手❌ 幸存者错觉模仿表面上获胜的账户公开数据中没有可靠信号;过去的赢家会回归均值

总结: 经过正确核算,只有两种策略仍然成立——做市方一侧反向操作行为导致的尾部偏差,以及通过 θ 门槛后由预测驱动的 YES 入场。其他策略要么需要高频交易级别的能力,要么对基础设施要求很高,要么会在正确结算和扣费后失去优势。


费用感知的仓位 sizing 与边缘门槛

所有筛选均基于扣除费用后的净优势。原始胜率、名义金额收益率和正确率百分比都不是筛选指标。

净优势公式
net_edge = p_model - ask - kalshi_fee(ask)
# Kalshi taker fee: ceil(0.07 * price * (1 - price) * 100) / 100 per contract
# Polymarket fee: 0 (no explicit taker fee; spread is the cost)

仅当 net_edge > θ 时才选择交易。

预期优势门槛(θ)
账户规模θ(Kalshi)原因
< $2,00015%小额账户;费用造成的拖累占比更高
≥ $2,00020%标准门槛,涵盖费用和执行不确定性
Polymarket~5%没有明确的 taker 费用;价差和 gas 是成本
限价单挂单

挂 maker 订单时,报价应比模型公允价值低 θ:

limit_price_cents = floor((p_model - θ) × 100)

这样可以确保,只有当市场至少朝有利于你的方向变动 θ 时,订单才会成交。

分数凯利仓位 sizing
f_star = edge / (1 - entry_price)          # full Kelly fraction
stake = min(kelly_frac * f_star * bankroll, max_bet_fraction * bankroll)
contracts = stake / entry_price
# Defaults: kelly_frac=0.25 (quarter-Kelly), max_bet_fraction=0.015

对大多数交易而言,1.5% 的资金上限是实际起约束作用的限制。四分之一凯利足以积极复利,同时又足够温和,能够承受一连串相关的不利结果。

敞口上限(观察到的默认值)
上限数值
单份合约的账户资金上限账户资金的 1.5%
单一城市/单一事件账户资金的 5%
总未平仓敞口账户资金的 20–25%
最大滑点占优势的比例50%
滑点也是筛选的一部分

沿着真实的 NO/YES 订单簿梯度逐档成交,直到达到完整仓位,以计算深度加权入场价。如果逐档成交使 net_edge 低于 θ,或滑点超过优势的 50%,就跳过这笔交易。逐档计算前,必须从订单簿梯度中排除虚假的一分钱档位(≤2¢ 的卖单价,这些价格不会在连续快照中持续存在,且没有成交记录佐证)。

Maker 与 taker

挂出限价单(maker)可以赚取价差,而不是支付价差,并避免(或减少)taker 费用。这也是盈利账户采用的执行方式。Maker 优势会叠加结构性的长尾反转收益。仅当限价单的成交概率相对于交易机会低到不可接受时,才应使用市价单(taker)。

所有仓位 sizing 函数都在 scripts/sizing.py 中。可直接运行以查看完整示例。


回测方法

首要规则:以平台自身的结果结算

绝不要根据第三方来源重新推导结算结果。应使用平台的 result 字段(Kalshi:result: "yes"/"no";Polymarket:结算交易)。任何仅与平台结算结果相关的推导真值,都可能导致约 10% 的结果翻转,并凭空制造出两位数的虚假优势。

方法核对清单
  • 使用平台的 result 进行结算——绝不自行计算真值
  • 使用 close_time(或从 ticker 获取的结算日期),而非爬取日期
  • 决策特征应截止于城市/事件自身的本地决策时间——避免 UTC 时间不匹配
  • 入场价格应取自决策时的快照,而非已趋于收敛的临近收盘价格
  • 按完整仓位沿真实订单簿梯度逐档计算;以最优买卖价深度为上限;对成交去重
  • 仅使用扣除费用后的 PnL——绝不使用名义金额
  • 仅使用时间留出验证或扩展窗口的滚动前推验证——不使用随机打乱的交叉验证
  • 投入实盘资金前,先进行前向模拟交易:记录模型 p、决策时卖价和结果;并与回测的 Brier 分数/准确率进行比较
Phantom-Edge 名人堂

以下每个问题都曾产生看似合理的回测结果,但经仔细检查后都站不住脚。

Bug症状修复
结算数据源错误重新推导真实结果后,约 10% 的结果发生反转 → 虚假的 +18% 反向投注优势使用交易场所的 result
区间边界差一位将包含 2°F 的区间 {floor,cap} 误当作半开区间 1°F → +1640% 的虚假回测仔细阅读合约规范
虚假的低价卖单对 ≤2¢ 的伪造价位过度计入深度,夸大 23×(25 万 vs 约 9 千笔真实成交)仅统计在多个快照中持续存在且有成交记录佐证的深度
误读 strike_type根据代码推断大于/小于 → 44% 的影子交易方向错误从 API 读取 strike_type — 切勿推断
混淆影子交易与实盘重放混合影子和实盘持仓的日志 → 虚假的每份合约 $14K 盈利只根据实盘成交追踪 PnL(PositionStore);切勿重放内存中的数据
先验平坦或未校准预测中心配置错误 → 单日实盘亏损 $121.93所有决策都必须基于经过校准并签名的先验
运行极值初始值过期被污染的持久化 day_max 让每个低位区间看起来都已获胜启动时重置/重建运行极值状态;切勿继承
时钟不匹配导致前视使用 18:00Z 的订单簿快照成交,而特征数据截至 14:00 LST,导致非东部城市泄漏未来信息在每个市场自己的本地决策时间进行决策和成交
前向纸面交易

在投入实盘资金前:以影子模式运行完整流程。记录模型的 p、决策时的卖价和实际结算结果。将所得 Brier 分数和准确率与回测数据进行比较。如果在 100 个以上样本中,差距持续超过 2–3 个 Brier 分数点,就说明存在数据泄漏或分布漂移,必须在实盘前查明原因。


为什么预测能力 ≠ 交易优势

良好的预测是交易优势的必要条件,但并非充分条件。

  1. 市场会汇总信息。 到了决策时,市场价格已经反映了 NWS 模型输出、近期实况,以及实力强劲的账户所获得的优势。你的预测必须可衡量地优于市场 — 而不只是准确。

  2. Brier 分数不等于优势。 OOS Brier 分数为 0.07(优于气候基准)仍可能意味着净优势为零,前提是市场定价也为 0.07。

  3. 真正的优势来自行为。 对冷门选项的过高定价并非信息因素所致,而是行为因素所致(散户对低价合约过度自信)。无论你对这些区间的预测质量如何,只要在尾部充当流动性提供者,就能从中获利。

  4. 基于预测的 YES 入场只在边际情况下有效。 当你的校准模型认为某个区间的定价明显偏低(扣除费用后的优势 > θ)时,买入 YES 是有效的。但这只适用于少数决策点,而尾部市场深度不足也限制了成交率和容量。

实际启示:应出于预测本身的价值来构建和验证预测模型(它能改进 NO 报价目标,并在不利条件下限制敞口),但不要假设预测准确率会自动转化为交易收益,除非另有正确且计入费用的回测。


证据与文献

基础研究结论
  • Whelan,做市商与吃单者:Kalshi 预测市场的经济学(CEPR VoxEU;GWU/UCD 工作论文)。研究涵盖 30 多万份 Kalshi 合约。平均费用前收益 ≈ −20%,亏损主要集中在吃单者和冷门选项买家身上。做市商获得正收益。基础性结论:赢家提供流动性,输家吃掉流动性。

  • 大规模 Polymarket 做市商—吃单者研究(5.88 亿多笔交易,SSRN)。排名前约 1% 的账户拿走约 76.5% 的利润,主要通过挂出限价单实现。该研究证实,做市优势可推广到不同交易场所。

  • Gupta,谁能在二元预测市场中获利?Kalshi 上的做市商—吃单者动态、行为偏差与情绪套利(SSRN)。该研究从微观结构和行为偏差角度分析谁能获胜以及原因。

最爱—冷门偏差
  • 经典博彩市场文献(Thaler、Ziemba):在大多数博彩市场中,冷门选手的胜率低于其赔率所暗示的水平。
  • Kalshi 特有情况:历史上,价格约为 $0.05 的合约胜率约为 2%;价格低于 $0.10 的合约会让买方损失约 60% 的本金。热门选项的定价公允至略低。
  • 可交易的策略:在便宜的区间上挂 NO 侧做市买单,并进行分散投资。
内部验证(bracket-model skill)
  • 对 Kalshi 天气市场进行包含手续费的轮换式交叉验证回测:做空冷门选项的 taker ROI 约为 +1.7–3.3%,maker ROI 约为 +7.9–9%。
  • 定价约为 10% 的区间,实际命中率约为 3–7% → 每份合约毛收益约为 +6.7¢;maker 的收益表现会进一步提升。
证据不支持的结论
  • 准确的天气或事件预测能在决策时点战胜市场(这与价格所反映的信息重复——见上文经验教训)。
  • 零售用户可见的跨平台或平台内套利,扣除手续费、地域限制和资金锁定成本后仍能反复获利。
  • 优势集中在预测最准确的地方(实际上,它反映的是市场流动性不足或零售用户占比较高)。

确定仓位规模前,请根据一手来源核实具体数据——数值会因样本窗口和交易平台而异。


文件

参考资料
  • references/strategy-catalog.md — 完整的策略评估结果,包括证据和注意事项
  • references/sizing-and-edge-gates.md — 完整的手续费感知仓位规模规则和门槛推导
  • references/backtesting-methodology.md — 按交易平台结果结算的规则、虚假优势案例集、方法检查清单
  • references/evidence-and-literature.md — 一手来源:Whelan、Polymarket 588M、Gupta、最爱—冷门偏差幅度
脚本
  • scripts/sizing.py — kalshi_fee、net_edge、theta_for_account、limit_price_cents、kelly_contracts、slippage_ok — 纯标准库,无需联网即可运行

评论

支持 Markdown