Polymarket PnL精准计算:为什么你算的盈亏可能是错的?

区块律动

原文标题:《Polymarket PnL 精准计算:为什么你算的盈亏可能全是错的》
原文作者:Leo,加密分析师

我在 Polymarket 自研自动化交易半年,踩过的最大坑不是策略失灵,是连自己赚了多少钱都算不对。

不是我菜。是 PM 的 PnL 计算本身就是雷区。官方 API 给你的数字是错的,第三方分析网站展示的排名也是错的。你自己写脚本算?大概率还是错的。

偏差有多离谱?排行榜第 3 名 kch123,用错误方法算出来亏 $350 万,实际盈利 $1140 万。不是差几个百分点——是盈亏符号都反了。

这篇把我踩过的每个坑拆开讲。做交易的、写工具的、看排行榜的,迟早会遇到。

坑 1:cashPnl 不包含已结算的盈利

最直觉的做法:拉 /positions 接口,求和 cashPnl(现金盈亏)字段。

拿排行榜前 15 的三个地址实测:

**swisstony:**cashPnl 求和 +$3.5 万,排行榜实际 +$560 万,差 158 倍

**kch123:**cashPnl 求和 -$352 万,排行榜实际 +$1140 万,符号反转

**gmanas:**cashPnl 求和 -$264 万,排行榜实际 +$502 万,符号反转

三个地址,两个盈亏符号直接反了。

原因:/positions 接口返回的 cashPnl 不包含已 closed/redeemed 的 realized PnL。赢了的仓位被自动赎回成 USDC 后,这个 position 就从 API 响应里消失了。留下来的是未结算的持仓——往往以浮亏为主。

你以为在算全部盈亏,其实只拿到了未结算的部分。

坑 2:makerPnl 字段与链上现金流不一致

交易数据 JSONL 里有个 makerPnl(做市盈亏)字段,看名字就是给你算 PnL 用的。别信。

我在做市数据中观察到,SUM(makerPnl) 算出来的数字跟链上现金流核算结果差了一个数量级。具体倍数可能因场景不同而变化,但方向一致:makerPnl 的内部计算逻辑跟实际 USDC 流动对不上。

不管偏差多大,结论一样:不要用这个字段算 PnL。

坑 3:不能按 txHash 单独去重

这个最反直觉。

同一个 txHash(交易哈希)出现了多条记录,正常人第一反应:重复数据,去重。

不能这么做。PM 的 CLOB(链上限价订单簿)在一笔链上交易里可以撮合多个 maker 订单,同一个 txHash 下的多条记录是真实的独立 fill。

我之前按 txHash + asset 去重,BUY 侧少算了 $133。上 Polygon 链验证,一个交易哈希里确实有多个独立的 USDC Transfer event,每条都对应一笔真实成交。

结论:不能按 txHash alone 去重。要算 PnL,直接对 /activity 原始数据求和。

坑 4:offset 翻页有天花板

/activity 接口翻页,用 offset(偏移量)?超过 3000 条直接 400 报错。文档里没写。

上面三个地址全部验证过:GET /activity?offset=3100 返回 HTTP 400,错误信息 max historical activity offset of 3000 exceeded。头部玩家动辄上万笔交易,3000 条根本不够。

用 end 参数(传上一页最后一条的时间戳 - 1)做游标翻页,没有上限。

坑 5:排行榜 PnL 口径差异

你算完一个地址的 PnL,去排行榜一对比,差了一点。

大多数情况下差距在 $10 以内(来自持仓市值的实时波动)。但如果差距明显更大,可能的原因包括:排行榜的聚合窗口、缓存刷新延迟、或者用户绑定了多个 proxy wallet。

实测中,用现金流法算出的单地址 PnL 跟 lb-api 返回值高度一致。如果你的结果差距较大,先检查翻页是否完整(坑 4)、是否用了错误字段(坑 1-2)。

正确做法

试了各种歪路之后,我验证下来最可靠的方法是 Data API 现金流汇总。不用任何预计算字段,直接从原始交易记录算资金进出。

公式:

PnL = SUM(TRADE where side=SELL) + SUM(REDEEM) + SUM(MERGE) + SUM(MAKER_REBATE) + SUM(REWARD) - SUM(TRADE where side=BUY) - SUM(SPLIT) + 持仓市值

· TRADE BUY:花 USDC 买 token(支出)

· TRADE SELL:卖 token 回收 USDC(收入)

· REDEEM:赢的仓位赎回 USDC(收入)

· SPLIT:USDC 铸造成 token 对(支出)

· MERGE:token 对合并回 USDC(收入)

· MAKER_REBATE:Maker 返佣(收入)

· REWARD:奖励/空投(收入)

· 数据来源:

GET /activity?user=

&limit=500,用 end 翻页,全量拉取后按类型求和。

· 持仓市值:

GET /positions?user=

,size × curPrice。

· 交叉验证:

拿计算结果跟 Polymarket 排行榜 API(lb-api.polymarket.com/profit?window=all&address=X)对比,差 <$10 就算过。差距来自持仓市值的实时波动。

验证:排行榜前 15 实测

用现金流法算完后,拿排行榜 API 交叉验证:

swisstony:现金流法 +$560.1 万,排行榜 +$560.1 万,差距 < $10

kch123:现金流法 +$1139.6 万,排行榜 +$1139.6 万,差距 < $10

gmanas:现金流法 +$502.4 万,排行榜 +$502.4 万,差距 < $10

三个地址误差均在 $10 以内,差距来自持仓市值的实时波动。

方法跑通之后,我拿它分析了上百个头部地址的真实盈亏。那是另一回事了。

汇总

SUM(cashPnl) from /positions → 不行,不含已结算盈利,符号可能反转

makerPnl 字段求和 → 不行,与链上现金流不一致

按 txHash 去重后计算 → 不行,$100+,删了真实 fill

offset 翻页 + 求和 → 不行,数据截断,>3000 报错

Data API 现金流法 → 目前最可靠,<$10

做量化的第一步不是找 alpha。是先确认你算得对。

以上全部来自实盘踩坑,不是理论推导。PM 的 API 随时可能调整行为,建议定期用排行榜 API 交叉验证你的计算结果。

原文链接

点击了解律动BlockBeats 在招岗位

欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

免责声明:本页面信息可能来自第三方,不代表 Gate 的观点或意见。页面显示的内容仅供参考,不构成任何财务、投资或法律建议。Gate 对信息的准确性、完整性不作保证,对因使用本信息而产生的任何损失不承担责任。虚拟资产投资属高风险行为,价格波动剧烈,您可能损失全部投资本金。请充分了解相关风险,并根据自身财务状况和风险承受能力谨慎决策。具体内容详见声明

相关文章

Polymarket 和 Kalshi 合计终身成交量在 4 月突破 1,500 亿美元

据 The Block 称,Polymarket 和 Kalshi 的合计终身交易量在 4 月突破 1500 亿美元。该里程碑出现在这两家平台连续七个月刷新月度历史新高的纪录结束之际,标志着自 9 月以来该行业交易活动首次下滑。Polymarket 的全球平台s

GateNews2小时前

a16z 周五评论函支持 CFTC,援引州级预测市场规则作为准入门槛

据 The Block 报道,Andreessen Horowitz 于周五向 CFTC 提交了一封 18 页的意见函,支持对预测市场的联邦层面监管,并辩称州级法规会造成通往公平市场准入的壁垒。该风投机构表示,停止并终止函以及拟议的禁令 f

GateNews2小时前

Polymarket、Kalshi 累计成交量达 1,500 亿美元:4 月单月 219 亿创创新高

4 月 Polymarket 与 Kalshi 的累计成交量突破 1,500 亿美元,月度合计 219 亿美元(Kalshi 134 亿、Polymarket 85 亿),合计占比 85%。自开站以来累计达 1,500 亿美元,YTD 至 4/20 Kalshi 374.9 亿、Polymarket 292.3 亿、合计 667 亿。Kalshi 凭借 CFTC 完整监管与接近体育博彩接口领先;Polymarket 则开放国际、USDC 结算、议题更广。未来观察点为 CFTC 解禁谈判、Polymarket 募资与 Kalshi 估值动向。

鏈新聞abmedia3小时前

a16z 支持 CFTC,并警告州级预测市场规则会制造市场准入壁垒

据 The Block 称,Andreessen Horowitz 于周五向美国商品期货交易委员会提交了一封 18 页的意见函,支持对预测市场实施联邦层面的监管,并反对各州层面的严厉打击。A16z 认为,停止及终止令以及拟议的州级禁令

GateNews10小时前

Polymarket 和 Kalshi 在 4 月的 $150B Combined Lifetime Volume in April 组合终身成交量

根据 The Block 的数据,Polymarket 和 Kalshi 的合计终身交易量在 4 月突破 1500 亿美元。然而,4 月是自这两大平台在 9 月开始出现爆炸式增长以来,总板块交易活动首次出现月度下滑,结束了连续七个月的上涨势头,o

Crypto Frontier14小时前

以太坊 ETF 在连续 4 天下跌势头的 $184M 后仍在下跌

根据市场数据,截至 4 月 30 日,以太坊交易所交易基金(ETF)在连续四天内录得 1.84 亿美元的资金流出,地缘政治不确定性抵消了美国股市的涨幅。资金流出延续了本周早些时候开始的连跌态势,其最大单日撤资

Crypto Frontier14小时前
评论
0/400
暂无评论