Polymarket Bot 教程 · 第 19 章,共 32 章
以程序化方式“farm” Polymarket 流动性奖励:返利计划如何运作、符合资格的 spread 阈值、ROI 计算、盈利市场排名,以及何时 farming 胜过其他策略。
本章内容
Polymarket 会通过 maker-rewards 计划在符合条件的市场向流动性提供者发放奖励。farm 这些奖励的策略定义清晰,但利润空间很薄,库存风险也是真实存在的。本章将介绍符合资格所需的 spread 阈值、ROI 计算,以及 farming 适合哪些场景、哪些场景会亏损。
- Polymarket 流动性奖励计划如何运作
- 符合资格的 spread 阈值
- ROI 计算:rebate + 费用节省 + spread
- 适合 farming 的最佳市场
- 风险:库存爆仓
- 代码:最小化 LP-farming MM
Polymarket 流动性奖励计划如何运作
Polymarket 运行着一个流动性奖励计划,会向在符合条件的市场中提供挂单限价单的交易者支付 maker rebate。交易所会按天汇总符合条件的报价,并按加权停留时间、以及改善 spread 的订单份额来分配奖励。
符合条件的市场会每周变化-通常是 Polymarket 希望提高 order book 深度的高优先级事件(选举年、重大体育赛事等)。符合条件的列表会发布在 Polymarket 的 rewards 页面上;在围绕某个市场制定 farming 策略之前,务必先检查该列表。
奖励以 pUSD 形式发放,按周期打入账户(通常是每日或每周)。它们与交易 PnL 是分开的-你可能在同一个市场、同一时期内,持仓亏损但奖励盈利。
符合资格的 spread 阈值
要获得奖励,你的报价需要位于 midpoint 的“qualifying spread”范围内,目前 binary market 大约是相对 mid 上下 ±3-5%。超出该区间的报价仍会挂在 book 上,但不会获得奖励。
你的报价越接近中间价,你在每个 block 奖励中的竞争份额就越大,但也越容易受到 adverse selection 影响。报价越宽,越安全,但奖励份额越小。对大多数市场来说,最佳甜蜜点大约是 mid 两侧各偏离 1-2 美分。
资格要求还包括最小订单量(通常是 5+ shares;与 GTC 最小值一致)。低于最小值的订单仍会挂在 book 上,但不计入奖励。
ROI 计算:rebate + 费用节省 + spread
完整的 reward-farming ROI 由三个部分组成。
- Rebate 收入:每股 rebate × 成交量,以 pUSD 支付。数值会变化;当前范围大约是每成交股 0.1-0.5 美分。
- 捕获的 spread:如果你在 mid 上下各报 1 美分,而且两边都成交,那么每次 round trip 可赚 2 美分。实际捕获率取决于成交不平衡程度。
- 库存 PnL:你累积的仓位会有 mark-to-market 风险敞口。可能为正也可能为负;如果策略设计得当,通常不大。
示例计算:在某个市场中,每侧报价 100 shares,24 小时内每侧 60% 成交率,rebate 为 $0.30/sh。奖励:100 × 0.60 × $0.30 = $18/天。spread 捕获:相同成交量,1c spread × 60 次 round trip = $0.60。对于低流动性市场,rebate 压过 spread;对于高流动性市场,spread 压过 rebate。
适合 farming 的最佳市场
更适合 farming 的经济特征:
- 高奖励率-查看 rewards 页面,了解当前每个市场的每股 rebate。
- 中等成交量-成交量足以获得有意义的奖励,但又不会高到让竞争 maker 吃掉你的份额。
- 稳定的 mid-优先选择隐含概率不会在一次新闻事件中波动 10c 的市场。新闻公布前的选举市场不错;临近结算的市场不适合。
- 较窄的自然 spread-现有 book 本来就很紧的市场,意味着你是在竞争奖励分配,而不是在打开市场。
应避免:距离结算前最后 24 小时内的市场(价格跳变会毁掉库存)、持续单边流入的市场(你会积累巨大的方向性敞口)。
风险:库存爆仓
farming 的主要风险是在价格变动期间积累方向性敞口。如果 mid 在一小时内从 0.55 跌到 0.42,你的 bid 会反复成交,而 ask 却一直挂着卖不掉;最后你会以高于当前 mid 的平均成本持有 N shares 的多头仓位。
应对方法:
- 库存上限:当你在某一侧已经持仓过多时,停止在该侧报价。
- Skew:持多时,把 bid 拉宽、把 ask 收紧。持空时则相反。
- Kill switch:当库存超过正常范围的 2 倍,或 mid 相比你开始报价时移动超过 X%,就停止并平仓。
farming 的 PnL 等于奖励 + spread − 库存 MTM。爆仓通常是因为在一次新闻驱动的 mid 变动中,第三项急剧转负。
代码:最小化 LP-farming MM
参考:最简可用的流动性奖励 farming maker。
QUOTE_OFFSET = 0.01 # 1c off mid each side
INV_CAP = 50 # max long or short
SIZE = 5 # GTC minimum
def farm_loop(token_id):
while True:
book = fetch_book(token_id)
mid = (book.best_bid + book.best_ask) / 2
inv = chain_balance(token_id)
cancel_my_quotes(token_id)
if inv < INV_CAP:
post_gtc(token_id, "BUY", mid - QUOTE_OFFSET, SIZE)
if inv > -INV_CAP:
post_gtc(token_id, "SELL", mid + QUOTE_OFFSET, min(SIZE, abs(inv)))
time.sleep(30) # re-quote every 30s
生产环境补充项:基于库存的 skew、新闻事件暂停、包含 rebate 流的每日 PnL 对账。





