LZLZL/预测市场/坑与口径
免费深 · 动手 壬 坑与口径工程

8 个 API 口径陷阱

2026-08-21 · 全部来自我们自己踩过并修正的账 · 标注复核日期

这些接口都会给你一个看起来完全正常的返回:有数据、格式对、不报错。 问题在于它返回的不是你以为的那个东西 —— 少了一截、换了口径、或者干脆是个占位符。 八个都是我们自己撞过的,其中一个直接害我们发表了一个错的结论,后来撤回。

先看一次真实的翻车

我们做过一次赢家普查,想回答一个很自然的问题:拿 $1,000 进场,跟着顶尖玩家的打法能做到多少?

做法看着也没问题:拿排行榜接口查每个赢家的盈利,再拿另一个接口查他的持仓, 两者相除,得到「资金效率」,然后按 $1,000 的本金折算。算出来是 $1,000 → $3,723

这个数是错的,而且错得离谱。原因只有一句话:

分子是「终身」口径,分母是「此刻」口径 两个不同时间尺度的数相除,得到的东西没有意义

样本里有一个钱包终身盈利 $455 万,而当前持仓只有 $5,700 —— 一个早就收手、把钱提走的老玩家。这一除,他就成了「用几千块赚了几百万」的神。 整个推算被这类钱包拉爆了。

我们撤回了那个数字。接口没有骗人,是我们没问清楚它在说哪个时间尺度。 下面八条,本质上都是同一件事的不同版本。

八个陷阱速查

#接口 / 字段你以为实际
活动流 /activity这个钱包的全部记录最多 5,500 行,更早的取不到
同上,用在高频钱包上够算「每天多少」可能只覆盖几小时
排行榜 /profit这个人赚了多少不含任何补贴收入
/profit ÷ /value资金效率终身 ÷ 此刻,没有意义
某个高额收款地址一个超级玩家污染统计,必须剔除
clobRewards: []这个盘没有奖励推不出这个结论,得换权威源
公共 RPC eth_getLogs随便找一家就能查链上大部分直接拒你,能用的也有硬限制
/rebates/current文档说免鉴权,能查返利实测返回 None

下面按「它会让你犯什么错」分三组展开。

会让你算错速率的

① 活动流有硬顶:5,500 行

查一个钱包的历史成交,接口会一页一页给你,看起来能一直翻下去。 实际上翻到 5,500 行就没了 —— 不报错,不提示,就是没有更多了。

所以你拿到的永远是最近的一段,不是终身。这一段有多长, 完全取决于这个钱包有多活跃。我们拆过的两个例子,差了十几倍:

钱包类型5,500 行覆盖了如果你以为是终身
中频套利钱包18.5 天把半个月当成一辈子
高频做市钱包约 30 小时把一天当成一辈子

② 于是「每天多少」这个数会被算错

接上一条。你从活动流里加总出一个数,除以「天数」——问题是除以几天?

⚠ 正确做法:除以真实时间跨度,不是除以你以为的天数

拿到数据后,第一件事是看第一行和最后一行的时间戳差多少,用这个当分母。 一个高频钱包的 5,500 行可能只有 30 小时,你按「一个月」去除, 得到的日均收入会小 20 倍;按「一天」去除又可能高估。

而且更隐蔽的是:被截掉的那一段可能是它最赚钱的时期。 如果一个钱包在某个高收益阶段特别活跃,那一阶段产生的行数最多, 恰恰最容易被 5,500 的顶顶掉。你看到的是它的近况,不是它的巅峰。

会让你看错别人的

③ 排行榜的「盈利」不含补贴

这一条影响最大,因为排行榜是所有人抄作业的第一站。

/profit 这个字段是交易盈亏。而平台发的各种奖励和返利 是转账,不是交易 —— 它们不进这个字段。

真实净收益 = 交易盈亏 + 累计发放额 两条要分开查,再相加

后果是双向的:你会系统性地低估靠补贴吃饭的玩家(他们的排行榜数字可能很难看, 甚至是负的,实际却在稳定赚钱);反过来,如果你把自己收到的补贴算进了「策略赚的钱」, 就会系统性地高估自己的策略

这两类玩家的打法完全不同,而排行榜把它们混在了一起。补贴到底有几种、 分别怎么发,见 「四种返利」辨析

④ 终身口径除以当前口径

就是 §一 那个翻车。规则很简单:

⚠ 相除之前,先确认两个数的时间尺度一样

终身盈利是从开户累计到今天;当前持仓是此刻的快照。 一个是积分,一个是瞬时值,相除得到的东西没有物理含义

还有一个同族的:某些「周转量」字段没有写明统计窗口。 窗口未知的数,不要拿去和任何有明确窗口的数做比值 —— 不知道分母就不要除,这是硬规矩。

⑤ 有一个地址会污染统计

做收款人普查时会遇到一个地址(0x2d507657…), 它每天在批次里收到 $60 万到 $92 万,但排行榜上没有对应的交易记录

它显然不是一个普通玩家。任何按「人均」「中位数」「分布」做的统计, 必须先把它剔除,否则整张分布图都会被它一个拉歪。

口径声明我们只说这个地址会污染统计口径, 不对它做任何身份归因 —— 我们不知道它是谁,也没有去查。

会让你看错市场、或者直接卡住你的

clobRewards: [] 不等于这个盘没有奖励

想找「有流动性奖励的盘」,最顺手的做法是查事件接口里的 clobRewards 字段。 但这个字段返回空数组时,推不出「这个盘没奖池」

权威源是撮合层的抽样市场端点。我们照它全量拉过一次, 得到 8,631 个真正带有效费率的盘 —— 和按 clobRewards 筛出来的结果完全不是一回事。

⚠ 同族:元数据字段的存在 ≠ 这件事真的发生

盘的元数据里有「拿奖励要求的最小挂单量」「最大价差」这类字段。 它们存在,不代表这个盘真有钱发。它们只是配置模板的一部分。

判断「有没有奖励」只有一个可靠办法:去权威端点查,或者直接看链上有没有真的打过钱。

⑦ 公共 RPC 大多数会拒绝你

要把链上的转账全量枚举出来,得用 eth_getLogs。免费的公共节点在这件事上非常不友好:

节点实测结果
publicnode / polygon-rpc / ankr全拒(403 / 401 / 要 key)
1rpc限额
drpc能用,但必须带地址过滤 + 每次 ≤ 40 个区块

不带地址过滤的全链查询,任何区块档位都会被拒。 所以「把某个合约的全部事件拉下来」这件事,在免费档位上要拆成成千上万次小查询。

⚠ 顺带一个很难查的:裸调用要带 User-Agent

如果你不用现成的库、自己拼 JSON-RPC 请求,记得带 User-Agent 请求头 —— 否则会被静默拒绝。用库的人踩不到这个坑,因为库自带这个头。

「静默」是这里的关键词:它不会告诉你「缺 header」,它只是不给你数据。 这类失败最难查,因为看起来就像「链上没有这条记录」。

⑧ 有个端点文档说能用,实测返回 None

/rebates/current 这个端点,文档写着免鉴权就能查。实测返回 None, 参数形状我们没试出来。

不用在它身上耗时间:同样的信息可以从活动流里拿 —— 按记录的类型字段把收入拆开,转账类和交易类分别加总,得到的结果一样可靠,而且可核对。

另外有个端点确实能精确对账(按日按盘的收益明细),但它需要鉴权、只能查自己。 自己实盘之后可以用它做对账,做别人的普查用不上。

还有几个不够格进前八的

说明
排行榜硬顶 50 名翻页参数全部无效;100–200 名平台不暴露。想看长尾只能换路子
持有人索引有延迟分钟级。单次快照不可靠,要跨快照取并集
批量发奖一批 400 笔不是坑,是解析时必须知道的形状:奖励走批量转账,一笔交易里塞几百个收款人
配置里的费率字段撮合配置里那两个「基础费率」显示的是原始配置值,不是实际费率,别拿它算账

一条通用规矩

把这八条抽象一层,它们全都是同一个错误:把接口给你的东西,当成了你想要的东西。

凡是「看起来是全量」的接口,先证明它是全量

做法很便宜,一次就够:

① 数行数。如果返回的条数正好是某个整数(5,500、50、1,000), 八成撞顶了,不是真的只有这么多。

② 看首尾时间戳。它覆盖的真实跨度是多少?和你以为的一样吗?

③ 找一个你已知答案的样本去验。拿一笔你自己的、或者链上能独立核对的记录, 看接口给的和真相对不对得上。

④ 空值要分清是哪一种空。「确实没有」和「这个端点不告诉你」 是两件完全不同的事,而它们返回的东西长得一模一样。

第 ④ 条是这一篇里最贵的一条。我们在别的地方为「把『查不到』当成『没有』」付过学费: 一次是把「结算后两侧都显示可赎回」当成真的可赎回,一次是把 「活动流里没有记录」当成「没有亏损」 —— 后者差了八倍, 全过程在 589 股无声蒸发

一句话记住

这些接口不会骗你,它们只是回答了一个和你想问的略有不同的问题。 所以在拿任何返回值做除法之前,先问三句: 它覆盖多长时间?它包含哪些类型?它的「空」是哪一种空?

证据怎么自己核对

5,500 行硬顶 两次独立拆解都撞到同一个数:一个钱包 18.5 天 5,500 行、 另一个 30 小时 5,500 行(5,377 笔成交 + 60 合并 + 61 赎回 + 2 笔做市返还)。 自己找任意一个高频钱包翻页即可复现。
撤回的推算 「$1,000 → $3,723」是我们自己发表后撤回的数字, 原因写在本文 §一。撤回记录保留在案,不删。
/profit 不含补贴 把同一个钱包的排行榜盈利、与链上收到的发放额分别加总,两者互不重叠。
污染地址 0x2d507657…,批次内每日收款 $60–92 万、排行榜无对应交易记录。 链上公开可查;本站不做身份归因
奖励盘权威源 撮合层抽样市场端点全量拉取,约 10 页 × 1,000,得 8,631 个有效费率盘。
RPC 实测 三家公共节点的拒绝码与 drpc 的 40 区块上限,普查期间连续三天复现。
复核日期 全部为 2026-07 至 2026-08 的实测。接口行为会变,用之前请自行复核。
本文不含 我们自己的钱包地址、主机、密钥,以及任何策略参数。 文中出现的第三方地址是链上公开信息,只用于说明口径,不做身份归因

相关接着读什么

壬 · 坑与口径
589 股无声蒸发:活动流会让你高估自己
乙 · 费用与补贴
「四种返利」辨析——补贴为什么不进盈亏栏
甲 · 基础概念
术语中英对照表 · 带口径坑
辛 · 研究方法
你的回测赢了,可能只是尺子错了
本文属教育与研究记录,不构成投资建议,不承诺任何回报。接口行为与平台规则随时可能变更, 本文标注实测日期,使用前请自行复核。预测市场在部分国家和地区受限制或不可用,参与前请自行确认当地法规。