LIVE
$7.62 的最小利润 / 每笔交易
获取机器人

构建 Polymarket 机器人:扫描器、仓位计算、执行架构

面向开发者的 Polymarket 机器人指南:扫描、仓位计算、执行与监控。包含实用架构和 API 参考。

更新于 2026-04-20· 2 min
bot
Polymarket
CLOB
arbitrage

构建 Polymarket 机器人:扫描、仓位计算、执行与监控

本指南展示如何构建一个持续扫描市场、计算仓位规模、通过 CLOB 执行并监控性能的 Polymarket 机器人。重点介绍可用 Polymarket 公共 API 与 Relayer 模式实现的架构与开发范式。

主要收获

  • 将机器人架构为四个独立服务:scanner(扫描器)、sizer(仓位计算)、executor(执行器)和 monitor(监控)。
  • 使用 Polymarket 的 Gamma 和 CLOB API 获取列表与下单;使用 WebSocket 获取实时盘口更新。
  • 优先使用 FAK 市价单以实现任意速度的执行,但始终考虑滑点和手续费。
  • 为预言机争议、结算延迟或意外成交配置监控和快速断路器。

为何采用此结构

当责任分离时,交易系统更容易推理与维护。scanner 查找候选边差,sizer 将边差转为仓位计划,executor 通过 CLOB 下单,monitor 确保正确性与安全性。该分离使你能够独立扩展、测试并推断延迟与风险。

H2: 数据源与 API

首先将以下 Polymarket 端点接入你的服务:

  • Gamma(市场元数据):https://gamma-api.polymarket.com — markets、events、tags、series。使用 after_cursor 分页;避免使用 offset。
  • CLOB(订单薄与交易):https://clob.polymarket.com — 订单簿读取为公开;交易需要 API key + HMAC。CLOB SDK 处理下单逻辑。
  • 市场 WebSocket(实时盘口):wss://ws-subscriptions-clob.polymarket.com/ws/market — 订阅 book、price_change、best_bid_ask 和 tick_size_change。每 10s PING。
  • Data API(持仓、未平仓量):https://data-api.polymarket.com 用于交易后分析。

设计提示:将 Gamma 列表与 WebSocket 流结合以实现高效的实时扫描。遵守 Gamma 速率限制(例如 /markets 限制)并注意 CLOB 下单需的密钥要求。

H2: Scanner — 发现候选机会

功能

scanner 发现符合策略的机会:二元市场内套利、多个结果的组合买入,或 endgame 模式。它应无状态、可水平扩展,专注于计算原始边差。

输入与频率

  • 使用 custom_feature_enabled: true 订阅 Market WebSocket,以接收 best_bid_ask 和 tick 变化。
  • 初次遇到新合约时,用 Gamma /markets 回填元数据与结果信息。
  • 为每个结果在内存中维护一小段 best asks/bids 视图。

边差计算

  • 二元市场内套利:计算 edge = 1.00 - (bestAsk(YES) + bestAsk(NO))。正的 edge 为候选。
  • 多结果市场:edge = 1.00 - sum(bestAsk(outcomes))。

阈值与过滤

  • 最小 edge 阈值(例如 > 配置的若干美分),以覆盖 taker 手续费和执行风险。
  • 最小流动性检查:best ask 的深度必须满足最小可成交量。
  • 注意 tick-size:处理 tick_size_change 事件——当价格接近极端时,价格粒度可能收紧到 $0.001。

H2: Sizing — 风险与资金分配

目标

-sizing 将原始 edge 转为下单计划:每个结果买入多少份额,以及如何在多笔订单间拆分以限制滑点。

组成部分

  • 风险敞口上限:按单市场与全局 pUSD 敞口限制。
  • 基于深度的 sizing:计算 ask 端连续价位的累计可用量;仅按能将预期滑点保持在容忍范围内的量来定仓位。
  • 手续费预留:在决定交易前从毛 edge 中扣减预期 taker 手续费(按类别可变,最高可达 1.8%)。

实用模式

  • 从保守成交开始:优先使用多次小额 FAK 市价单,而不是单笔大额下单,除非你能控制盘口。
  • 如果通过 CTF split/merge 流程买入完整组合,记得包含 split/merge 的成本(由 Relayer 代付 gas)以及因 tick size 导致的可能四舍五入。

H2: Executor — 下单与成交处理

订单类型与约束

  • 使用 CLOB 交易端点下单:https://clob.polymarket.com。CLOB SDK 与 Relayer 管理钱包部署、授权与订单签名。
  • 为了速度,在合适场景下使用 FAK(Fill-And-Kill)市价单。FAK 会立刻成交或取消;它们有助于避免长期敞口,但可能发生部分成交。

执行流程

  1. 准备交易意图:由 sizer 返回的 outcome token ids 列表与目标数量。
  2. 若执行多结果完整组合,你也可以先执行 CTF split(铸造完整组合),然后再卖出各腿——Relayer 与 SDK 会抽象化 CTF 操作。
  3. 通过 CLOB 交易 API 提交订单;若你参与 Builder Program,请附带合适的归属头(attribution headers)。
  4. 从 WebSocket 的 last_trade_price 与 best_bid_ask 更新或从 CLOB 交易响应观察成交情况。

安全与对账

  • 跟踪部分成交并取消剩余委托或立即重新定价。
  • 在成交后通过 Data API 对链上 CTF 余额进行核对,确保你确实持有预期的 outcome token。
  • 为订单重试实现幂等性键与 nonce 处理。

H2: 监控与运营安全

需要监控的内容

  • 成交率、平均滑点与预期相比的偏差、手续费后的实现边差。
  • WebSocket 更新与下单提交之间的延迟。
  • 异常事件:UMA 争议、tick_size_change、整个市场的中断。

告警与断路器

  • 自动软断路:当净实现 P&L 低于阈值或成交滑点超过限制时,暂停新委托。
  • 硬断路:若 UMA 报告你持仓市场发生争议,或 Relayer 发出结算问题信号,立即停止所有流量。

审计日志与可观测性

  • 存储所有订单意图、原始市场快照与已执行成交。将这些日志用于事后分析与回测。
  • 在日志中标注 market id、condition_ids 和 request ids 以便与 Gamma 与 CLOB 记录匹配。

H2: Builder Program、凭证与速率限制

若计划以归属方式路由订单,请加入 Builder Program 并在 Polymarket 设置中管理密钥。Builder 等级控制每日 Relayer 限额与奖励。通过 CLOB 交易需要 API key + HMAC,并须遵守速率限制与 Relayer 配额。

H2: 常见风险与缓解措施

切勿假设数学上的 edge 就能保证获利。需考虑的风险:

  • 解析风险:UMA 争议可能暂停或改变支付。
  • 滑点与部分成交:FAK 可能部分成交;需要为残余敞口预留计划。
  • 手续费:taker 手续费按类别变化,可能侵蚀小边差(Geopolitics 类别免手续费)。
  • 结算时间:redeem/merge 的时机与预言机解析延迟可能占用资金。
  • 智能合约或 Relayer 故障:为此设计回退措施与人工告警。

这如何影响你的交易

将你的机器人设计为每笔交易单位小、可观测且在风险限额内可逆。保守的仓位、快速监控与明确的断路条件能降低尾部风险。使用 Gamma 与 CLOB 端点获取确定性的市场状态,优先 FAK 以加速执行,但始终衡量实现滑点与预期的偏差。

结语

上述架构为构建 Polymarket 交易机器人提供一个务实的蓝图:高吞吐的 scanner、保守的 sizer、使用 CLOB 与 Relayer 的健壮 executor,以及分层的监控。小规模起步、积极埋点并随着实盘数据不断迭代 sizing 与过滤器。

常见问题

我应该使用哪些 API 来获取市场列表与实时盘口数据?

使用 https://gamma-api.polymarket.com 获取市场元数据(/markets),并使用 wss://ws-subscriptions-clob.polymarket.com/ws/market 获取实时订单簿与 best_bid_ask 事件。使用 https://clob.polymarket.com 获取订单簿读取与交易;读取为公开,但交易需要 API key + HMAC。

在套利中我应该使用限价单还是市价(FAK)单?

FAK(Fill-And-Kill)市价单通常用于速度与避免长期敞口。它们可能部分成交,因此在 sizing 与对账上需要相应设计。CLOB SDK 提供创建 FAK 市价单的辅助函数。

我在计算仓位时如何考虑手续费?

在交易前从毛 edge 中扣除预期 taker 手续费。taker 手续费按类别变化(当前范围 0% 到 1.8%)。使用覆盖手续费、预期滑点和监控缓冲的净 edge 阈值。

运行中的机器人需要哪些监控?

监控成交率、实现滑点、延迟、UMA 争议通知、tick_size_change 事件以及 Relayer 健康。为大幅滑点、P&L 回撤或预言机争议实现软断路与硬断路。

我可以通过 Builder Program 路由订单吗?

可以。Builder Program 允许第三方带归属路由订单并赚取 builder fees。不同等级控制每日 Relayer 限额与奖励;凭证在 polymarket.com/settings 获取。

参考术语

相关指南

仅供教育用途。非金融、法律或税务建议。Polymarket在你的司法管辖区可能不可用。