收益榜上只剩还在跑的池子:DeFi 排名的幸存者偏差怎么核对 图 1
收益榜上只剩还在跑的池子:DeFi 排名的幸存者偏差怎么核对 · 图 1

用收益排行榜挑池子,是大多数人进 DeFi 的第一步。这个动作看起来客观:数字来自链上、覆盖很多协议、还能按链和资产筛。问题不在数据真假,而在统计对象的选择:任何”今天看过去一段时间”的排名,分母都是此刻还在被追踪的池子。那些在此期间出问题、被下架、被合并、换了合约地址的池子,往往已经不在名单上。留下的样本天然是被筛选过的,这种偏差叫幸存者偏差,它会让历史平均收益被系统性高估。

失败样本是怎么从名单上消失的,值得说细一点。第一种最常见:池子被弃更或流动性被抽干,前端不再展示它,数据聚合方随后把它移出活跃列表,于是它在回溯区间里不再贡献数据。第二种是协议迁移:同一个策略搬到新合约、新地址,历史数据要么留在旧地址不再被计入,要么被接到新地址上,两种处理都会让连续区间失真。第三种是清盘与再基准化:净值一次性下调之后,有些统计口径会把它记成一次调整而不是收益下跌,甚至直接重置历史序列。第四种是名字变更与市场重开,让人以为这是一个”上线不久”的池子,实际它已经经历过一轮完整周期。这四类操作没有一类是造假,但每一类都在把不漂亮的过去从统计里挪走。

偏差的量级取决于失败有多集中。如果市场长期平稳、极少有池子退出,榜上中位数与真实经历过的收益差别很小;如果一段时间里频繁出现清算事故、脱锚、策略关停,那么榜上好看的数字和被伤到的资金可能同时存在,只是被伤到的那批已经不在榜上了。这也是为什么”这个策略历史上中位年化有八个百分点”这种句子,在 DeFi 语境里几乎不具备参考价值:它没有说明分母被筛过几轮。

更麻烦的是,收益榜的时间窗口设计会放大这个偏差。滚动三十天、九十天这类窗口,会把刚出事的产品自然排出统计;而”新池子上榜”与”老池子掉榜”这两个动作通常同时发生。结果是榜单上永远是最近顺利的那批池子,读榜单的人于是系统性地低估了尾部:因为尾部样本恰好是已经不在名单上的那些。要验证这件事,可以做一个粗筛:把今天榜单前十的池子逐个回看它们在更早期是否存在、有没有换过合约地址、历史净值序列有没有被重置。只要有一两个答案是”换过”或”重置过”,就说明这个榜单的连续历史并不连续。

那么怎么把”平均”还原成”经历过”。第一步,放弃中位数与均值这两个词,改看分布:把所有可查的同类池子分成”仍在运行”和”曾经存在但已退出”两组,分别看它们的收益区间与结束方式。如果第二组普遍以大幅下跌或长期低活跃度收场,那第一组的漂亮数字就只是活下来的部分。第二步,用”最坏的一个完整周期”代替”最近的滚动区间”:找到某类产品最近一次出现集中问题的时段,把当时在场的所有池子都算进去,包括已经退出的,看整体净结果。第三步,把退出成本计入:如果一个池子从出现问题的信号到你能实际取钱,中间有延迟、罚则或者深度不足,那它的历史收益对你就没有可实现性,需要在心里给它打个折。

还有两个与统计无关但会影响判断的心理效应。一是”最近顺利即安全”:一个池子已经平稳运行半年,我们对它风险的直觉会下降,可这半年同样可能只是波动没来。二是”排名变化当作信息”:某个池子从榜尾跳到榜头,多数时候是它刚调高了激励、或者区间刚好把一段顺风期纳入窗口,而不是它的风险结构变了。把排名变化读成”资金投票结果”,容易让人在收益最高、参数最松的时候进场,这正是被集中处置的经典时点。

对普通用户,最实用的做法是给自己设一条硬规则:任何被榜单吸引的池子,在投钱之前必须回答三件事——这个产品多久了,期间有没有换过合约或迁移过;同类的、已经不出现在榜上的产品是怎么结束的;如果它明天出问题,我实际的退出通道是什么、要等多久。这三个问题都不需要预测未来,只需要把”看不见的样本”逼回视野里。排行榜仍然可以用,但它的正确用途是发现有哪些品类,而不是判断哪个更安全。本文只做数据口径说明与风险提示,任何历史收益都不预示未来结果,不构成投资建议。

收益榜上只剩还在跑的池子:DeFi 排名的幸存者偏差怎么核对 图 2
收益榜上只剩还在跑的池子:DeFi 排名的幸存者偏差怎么核对 · 图 2