如何将Uniswap V3 USDC/WETH流动性仓位以美元计价展示
Uniswap V3 仓位美元价值计算方法
核心逻辑
Uniswap V3的流动性(L)是仓位的核心度量,要算出美元价值,可通过两种方式:一是将流动性转换为对应仓位内的两种资产数量,再乘以各自美元价格求和;二是通过流动性占比结合池总TVL快速估算。
方法一:精确计算(基于资产数量)
准备关键参数
- 你的仓位流动性
L = 18203455433937 - 当前池价格的固定点表示
sqrtPX96(当前价格平方根 × 2^96,可从Uniswap合约或链上数据获取) - 仓位价格区间的固定点表示:
sqrtLowerX96(区间下限价格平方根 × 2^96)、sqrtUpperX96(区间上限价格平方根 × 2^96) - Token0(USDC)美元价格:1 USDC = 1 美元;Token1(WETH)当前美元价格(记为
priceWETH)
- 你的仓位流动性
计算仓位内的资产数量
所有计算结果需除以2^96转换为实际资产数量:- 若当前价格 ≤ 仓位下限价格(
sqrtPX96 ≤ sqrtLowerX96):token0数量 = L × (sqrtUpperX96 - sqrtLowerX96) / (sqrtLowerX96 × sqrtUpperX96) / 2^96 token1数量 = 0 - 若当前价格 ≥ 仓位上限价格(
sqrtPX96 ≥ sqrtUpperX96):token0数量 = 0 token1数量 = L × (sqrtUpperX96 - sqrtLowerX96) / 2^96 - 若当前价格在仓位区间内(
sqrtLowerX96 < sqrtPX96 < sqrtUpperX96):token0数量 = L × (sqrtUpperX96 - sqrtPX96) / (sqrtPX96 × sqrtUpperX96) / 2^96 token1数量 = L × (sqrtPX96 - sqrtLowerX96) / 2^96
- 若当前价格 ≤ 仓位下限价格(
计算美元总价值
仓位美元价值 = (token0数量 × 1) + (token1数量 × priceWETH)
方法二:快速估算(基于TVL占比)
如果不需要极致精确,可通过流动性占比结合池总TVL计算:
仓位美元价值 = (你的流动性L / 池总流动性) × 池总TVL(美元)
注:池总流动性是该USDC/WETH池所有仓位的流动性之和,池TVL是池内所有资产的总美元价值,两者均可从链上合约或Uniswap官方数据读取。
内容的提问来源于stack exchange,提问作者Akii J
相关产品推荐
相关产品推荐

