无常损失是向自动化做市商(AMM)提供流动性的代价。当池中两种资产的相对价格发生变动时,恒定乘积公式会迫使仓位被动再平衡,其最终价值低于直接持有同样两种资产的价值。这是新流动性提供者最常问的问题,也是被误答最多的问题——通常是一堆含糊其辞,而不是一个数字。下面直接算。
本文就干这件事。你会看到 50/50 池的闭式公式、任意配比的加权通式、10,000 美元仓位在 2 倍、4 倍、10 倍相对价格变动下的完整算例、池权重如何改变结果、Uniswap v3 价格区间为何让画面更尖锐,以及决定这套策略是否值得跑的手续费算术。任意价格对与任意配比的同一套计算,都可以用无常损失计算器直接得出。
无常损失到底是什么
AMM 池持有两种资产,其数量由恒定乘积 x · y = k 维持平衡。用户之间的兑换会把池内比例推离外部市场价格比例,套利者随即抹掉这个差价。结果是:外部相对价格每变动一次,池子就机械地卖出涨了的资产、买入跌了的资产,因为只有这样乘积才能保持为 k。
于是任何相对价格变动之后,池里持有的"赢家"比静态持有更少,"输家"更多。这个价值差就是无常损失。它有两个重要性质。第一,它只取决于相对变动的幅度,与方向无关:2 倍上涨和 2 倍下跌的损失完全相同。第二,它是以持有为基准的,因此是一个反事实量。一个大幅上涨的币对,池仓位的美元价值仍然可能上涨——你只是比直接持有赚得少。
无常损失公式
对 50/50 池,答案有闭式解。设 r 为相对价格变动:当前 A 对 B 的价格比除以初始价格比。流动性仓位相对持有仓位的价值是 2√r / (1 + r),它恒小于等于 1。因此无常损失系数为 IL = 1 − 2√r / (1 + r),美元损失就是这个系数乘以持有价值。
公式有三个值得内化的性质。曲线关于 r 与 1/r 对称,所以 2 倍变动和 0.5 倍变动的损失相同。小变动下损失随变动幅度的平方增长:10% 的相对变动约损失 0.11%,20% 约 0.45%,所以平静的市场几乎不花钱。公式还能推广到任意配置权重 w(资产 A 的权重):仓位价值变为持有价值的 r^w / (w·r + (1 − w)) 倍,这就是倾斜配置损失更少、但上涨也少的原因。
实例:10,000 美元投入 50/50 池
取 10,000 美元平均分配:资产 A 5,000 美元,资产 B 5,000 美元。让 A 相对 B 翻倍(r = 2)。直接持有值 15,000.00 美元;池值 14,142.14 美元,无常损失 857.86 美元,即 5.72%。若 A 变动到 4 倍(r = 4):持有 25,000.00 美元,池 20,000.00 美元,损失 5,000.00 美元,即 20.00%。10 倍变动(r = 10)时差距达到 23,377.22 美元——池持有 31,622.78 美元,而持有为 55,000.00 美元,损失 42.50%。下跌是镜像:r = 0.5 时池持有 7,071.07 美元,持有为 7,500.00 美元,同样是 5.72%。
- 相对变动 2.0 倍 → −5.72%(10,000 美元亏 857.86 美元)
- 3.0 倍 → −13.40%
- 4.0 倍 → −20.00%(亏 5,000.00 美元)
- 5.0 倍 → −25.46%
- 10.0 倍 → −42.50%
- 0.5 倍 → −5.72%(亏 428.93 美元)
- 0.25 倍 → −20.00%
池的配比权重是同一曲线上的旋钮。50/50 池在 2 倍变动下承受完整的 5.72%;偏向稳定资产的 80/20 池为 3.27%,95/5 的稳定币式池只有 1.04%。即便 10 倍变动,95/5 也只损失 6.68%,而 50/50 是 42.50%。代价是对称的:被低配资产的上涨也按同样比例让出——这正是人们在稳定币对上接受倾斜配比的原因。
产生损失的同一个恒定乘积规则,也决定了任何一笔兑换对池的价格冲击,所以进出场时你的仓位规模相对池深度的比例很重要。在投入资金前,你可以用DEX 兑换计算器先模拟这个冲击。
为什么叫"无常"——以及何时变成永久
"无常"这个词是精确的,附带一个条件。只要你持续提供流动性,损失就是未实现且可逆的:如果相对价格回到你存入时的位置,再平衡反向进行,差距归零。一个入场、持有、并在同一相对价格退出的提供者,无常损失为零。
在不同的相对价格退出,损失就凝固了:池的兑付价值与同样资产持有价值之间的差额,变成已实现的、永久的损失。实践中,无常损失只对"在价格变动后仍敞口"的仓位才是暂时的。还要精确一点它不是什么:它不是绝对亏损。在一个单边强势的币对上,池的美元价值仍然上涨,所以一个"盈利退出"的提供者,也可能比单纯持有者少赚了恰好等于无常损失的金额。
Uniswap v3:集中流动性改变了数学
经典 v2 池把流动性摊在整个价格区间上,在价格从不交易的地方浪费资金。Uniswap v3 让你把同样的资金集中在自选的价格区间内。区间内每一美元流动性都更高效:每美元赚更多手续费,且仓位的有效配比权重随价格在区间中的位置移动,所以局部损失曲线由你在区间内的位置决定,而不是固定的 50/50。
这种效率的代价在边界上。相对价格一旦离开你的区间,仓位会完全转换为一直在跌的那个资产:你持有 100% 的输家,停止赚手续费,无常损失在变动的最不利点被锁定。价格日后回到区间时,池会按恰好标出这笔损失的价格买回另一种资产。区间越窄,手续费越多,暴露在这个事件上的概率也越大;区间越宽,越接近 v2 的曲线。
- 区间内:手续费收入放大,损失曲线由局部权重决定
- 区间外:仓位全部变成贬值资产,零手续费,损失锁定
- 区间选择是主动决策,不是一劳永逸的输入项
因为 v3 仓位的损失路径取决于币对的整段价格历史,诚实的度量是"你实际持有期间"的已实现损失,而那是一次回撤计算。最大回撤计算器把标准回撤数学应用到任意净值序列,包括你的 LP 仓位每日价值与持有价值的对比。
手续费能覆盖无常损失吗?
盈亏平衡条件很简单:你的累计手续费收入必须超过无常损失系数乘以持有价值。2 倍变动后那是 5.72%;4 倍变动后是 20%。你的手续费收入 = 池的成交量 × 费率档位 × 你的池份额,随时间累积。所以问题从来不是"手续费是否为正"——它是正的——而是手续费的速率能否跑赢价格路径造成的损失。
上数字。一个每天兑换量 1,000,000 美元、费率 0.30% 档位的币对,每天付给池 3,000 美元。若池的 TVL 是 500,000 美元,那就是每天池价值的 0.60%。按这个速率,2 倍变动(价值的 5.72%)约 10 天赚回,4 倍变动(20%)约 33 天——前提是价格整段时间一动不动,而这当然不会发生。
小变动很便宜:10% 的相对变动约损失 0.11%,在上面例子里就是几个小时的手续费。真正的风险不是平均手续费日,而是单次大变动,它可以在一个交易日里抹掉几个月的收入。费率档位选择本质上是这个比较,这也是为什么你应该把仓位与无聊的替代方案对标——持有同样的资产并赚其质押收益。如果池的净手续费速率跑不赢你投入资金所放弃的质押利率,这笔交易在任何价格变动之前就在亏。那个基准收益率是多少,可以看质押 APY 计算器。
管理无常损失
真正能改变数字的有三个杠杆。区间管理:窄区间每美元赚得更多,但提高出区间事件的概率,所以再居中是策略的一部分,不是意外。币对选择:损失随相对变动放大,所以一个相对自身很少变动的币对(稳定币对)产生的损失只有高波动币对的零头,这还没算手续费。还有对冲:多头/多头池的相对敞口可以用做空相对变动来抵消,把敞口从"只能估计的价格路径成本"变成"可以度量的持有成本"。
- 像给交易定规模一样,用风险预算给仓位定规模
- 在出区间事件锁定损失之前,重新居中 v3 区间
- 先度量对冲成本(资金费率),再决定对冲是否值得
对冲腿有自己的算术。在永续合约上做空相对变动,意味着每 8 小时支付或收取一次资金费,且符号随市场仓位翻转,所以你对冲的持有成本不是固定的。资金费率工具和资金费率文章对任意名义本金和持有期都能量化这笔支付。如果你对池加杠杆放大手续费,对冲腿还有自己的强平价格,可以在定规模前用加密强平价格计算器和强平价格文章算出来。
无常损失不是税、手续费,也不是你看不见的风险溢价。它是相对价格路径与池权重的确定性函数,在存入任何东西之前就能算到分。实用的纪律是先跑数字:把你真实的起始价格、真实配比、真实计划持有期代入模型,读出你认为可能发生的变动幅度下的损失,再问这个具体池的手续费速率能否覆盖它。如果你在预期的变动下算术不成立,再多费率 APR 的营销也改变不了答案。