集中流动性无常损失计算器(Uniswap v3)
设定价格区间和价格变动:查看相对持币的无常损失、回本所需的手续费,以及仓位相对全区间仓位的集中程度。然后看看真实池子里每个区间扣除无常损失后实际赚了多少。
不同区间和价格变动下的无常损失
| 价格变动 | ±5% | ±10% | ±20% | 全区间 |
|---|---|---|---|---|
| -50% | -33.00% | -32.54% | -31.22% | -5.72% |
| -30% | -16.91% | -16.03% | -13.78% | -1.57% |
| -20% | -10.17% | -9.08% | -6.36% | -0.62% |
| -10% | -4.13% | -2.83% | -1.43% | -0.14% |
| -5% | -1.33% | -0.67% | -0.34% | -0.03% |
| +5% | -1.20% | -0.61% | -0.31% | -0.03% |
| +10% | -3.50% | -2.32% | -1.18% | -0.11% |
| +20% | -7.79% | -6.57% | -4.34% | -0.41% |
| +30% | -11.71% | -10.45% | -8.14% | -0.85% |
| +50% | -18.63% | -17.34% | -14.92% | -2.02% |
| +100% | -31.97% | -30.66% | -28.16% | -5.72% |
怎么看结果
- 无常损失:新价格下仓位的价值,与直接持有你存入的代币相比的差距,不计手续费。
- 回本所需手续费:仓位要追平持币,需要赚到的手续费占存入金额的比例。
- 集中度:每一美元对应的流动性,相对全区间仓位的倍数。在区间内时,手续费和无常损失都按它放大。
公式
对于从 pa 到 pb 的区间,价格 p 在区间内时,一单位流动性持有 x = 1/√p − 1/√p_b 个 token0 和 y = √p − √p_a 个 token1;价格在区间下方时只持有 token0,在上方时只持有 token1。无常损失 = 这些数量在新价格下的价值 ÷ 开仓时数量在新价格下的价值 − 1。对全区间仓位,它就变成熟悉的 2√r / (1 + r) − 1,其中 r 是价格比。
为什么窄区间损失更大
同样的存入金额,±10% 区间的流动性约是全区间仓位的 20 倍。价格留在区间内时,它赚的手续费也约是 20 倍。如果价格上涨 20%,它最终比持币落后 6.6%——要赚到相当于存入金额 7.2% 的手续费才能回本——而全区间仓位只落后 0.4%。集中度同时放大手续费和损失。
从计算器到回测
计算器假设只有一次价格变动,也不计手续费。一个区间的真实回报取决于价格走过的路径,以及价格在区间内时池子付出的手续费。LPSignal 用每个覆盖池子的真实逐小时历史、按池子手续费增长计数器的精确手续费回测每个区间,并按净 APR(手续费减无常损失)排序。参见机会列表、各链最佳池子——Ethereum、Base、Arbitrum、BNB Chain——以及回测方法。
常见问题
Uniswap v3 的无常损失怎么计算?
取一单位流动性在开仓价格和新价格下、在该区间内持有的代币数量(区间内 x = 1/√p − 1/√p_b,y = √p − √p_a;区间外只有一种代币),都按新价格估值,用仓位价值除以持有开仓数量的价值,再减一,就是无常损失。
集中区间的无常损失更大吗?
是的。窄区间每一美元对应的流动性更多,所以同样的价格变动下相对持币损失更多——价格留在区间内时赚的手续费也更多。±10% 区间的集中度约是全区间仓位的 20 倍。
价格离开我的区间会怎样?
仓位只剩一种代币:价格跌破区间时全是 token0,涨过区间时全是 token1。它不再赚手续费,价格离得越远,与持币的差距就越大。
要赚多少手续费才能回本?
等于以金额计的无常损失:计算器把它显示为存入金额的比例。LPSignal 的净 APR 对真实池子做的正是这件事——一个区间在最近一天、一周、一个月里赚到的手续费减去它的无常损失。