3、流动性池深度分析:深度对滑点的影响、深度分布曲线、如何评估一个池子的健康度

做DeFi做市,最核心的一个概念就是「流动性深度」。说白了,就是池子里到底有多少钱等着被交易。我见过太多新手,一上来就看APY,结果进去之后发现滑点大得离谱,一次交易就把利润全吃掉了。嗯,今天我们就来把这个东西彻底讲透。

3.1 深度与滑点:一对冤家

先问一个问题:为什么大额交易会滑点?

因为AMM用的是恒定乘积公式 x * y = k。你往池子里塞USDC换ETH,池子里的USDC变多了,ETH变少了,价格自然就往上跑了。跑得越多,滑点越大。

我个人习惯用一个简单的指标来判断池子深度是否够用——「1%滑点深度」。意思是:你砸进去多少钱,能把价格推高1%?这个数字越大,说明池子越深,越适合大额交易。

核心公式:

滑点 ≈ (交易金额 / 池子流动性) × 价格影响系数

说白了,池子越浅,同样的交易金额造成的滑点就越大。

我在项目中遇到过一种情况:某个新项目池子只有20万U的流动性,结果一个大户一次性买了5万U的代币,滑点直接干到了8%。等他买完,价格已经拉上去一大截,后面的人再买就更贵了。这就是典型的「深度不足引发的连锁反应」。

3.2 深度分布曲线:看懂池子的「肌肉分布」

光看总流动性还不够。你得知道这些钱是怎么分布的。这就引出了深度分布曲线。

你可以把池子想象成一个水池。深度分布曲线就是告诉你——哪个水位(价格区间)水最深,哪个水位水最浅。

对于Uniswap V2这种全区间做市池,深度是均匀分布的。但V3就不一样了,LP们可以自己选择价格区间。所以V3池子的深度分布曲线往往是中间高、两边低,像个山峰。

我的经验:

看深度分布曲线时,重点关注三个点:

  • 峰值位置:深度最厚的地方在哪?通常就是当前价格附近。
  • 左右对称性:如果左边(低价区)比右边厚,说明做市商更看好价格下跌?还是有人在刻意护盘?
  • 尾部厚度:极端价格区有没有深度?没有的话,一旦价格剧烈波动,滑点会瞬间爆炸。

我曾经分析过一个稳定币池子,深度分布曲线左边明显比右边厚。后来发现是有个做市商在低价区挂了大量买单,想抄底。结果市场真的跌了,他一个人扛住了所有卖压,价格硬是没怎么滑。这就是深度分布曲线的实战价值。

3.3 如何评估一个池子的健康度?

评估池子健康度,我有一套自己的打分体系。不复杂,就四个维度:

维度 指标 健康标准 我的备注
深度充足性 1%滑点深度 至少是单笔最大交易的5倍以上 低于3倍就要小心了
深度分布 峰值集中度 当前价格±2%内集中了30%以上流动性 太分散也不好,滑点会大
交易活跃度 24h交易量/总流动性 0.5~3之间比较健康 太低说明没人玩,太高说明池子可能被刷量
做市商结构 前5大LP占比 不超过40% 太集中容易被操纵

你想想看,如果一个池子前5大LP占了80%的流动性,那这5个人一撤资,池子就废了。这就是典型的「假深度」——看着总流动性很大,其实都是虚的。

避坑指南:

我曾经踩过一个坑:某个池子显示总流动性有500万U,我一看觉得挺深。结果仔细查了链上数据,发现其中400万U是一个地址提供的,而且这个地址是项目方自己的多签钱包。后来项目方 rug 了,流动性瞬间撤走,我手里的代币直接归零。嗯,从那以后,我每次看池子都会先查LP分布。

3.4 实战:用链上数据画深度曲线

光说不练假把式。我教你怎么用链上数据自己画深度曲线。其实原理很简单:

// 伪代码:计算某个价格区间的深度
function calculateDepth(pool, priceLower, priceUpper) {
    // 获取该价格区间内的所有流动性位置
    let positions = pool.getPositionsInRange(priceLower, priceUpper);
    
    // 累加每个位置的流动性
    let totalLiquidity = 0;
    for (let pos of positions) {
        totalLiquidity += pos.liquidity;
    }
    
    // 换算成美元价值
    let depthInUSD = totalLiquidity * currentPrice;
    return depthInUSD;
}

// 遍历价格区间,画出曲线
for (let i = -10%; i <= 10%; i += 0.5%) {
    let pricePoint = currentPrice * (1 + i);
    let depth = calculateDepth(pool, pricePoint - 0.25%, pricePoint + 0.25%);
    plotPoint(pricePoint, depth);
}

这段代码的核心逻辑就是:把价格切成一个个小格子,然后看每个格子里有多少流动性。格子越小,曲线越精细,但计算量也越大。我个人习惯用0.5%的步长,既能看清细节,又不会太慢。

画出来的曲线长什么样?我给你画一张图:

流动性深度分布曲线示例 -10% -5% 当前价格 +5% +10% 0 50% 100% 当前价格 深度峰值区 流动性最集中 尾部深度薄 滑点大 流动性深度 当前价格线

这张图里,中间那个山峰就是深度最厚的地方。越往两边走,深度越薄,滑点越大。如果你发现某个池子的曲线是平的(像V2那样),说明流动性均匀分布,但总深度可能不够。如果是尖峰状,说明流动性高度集中,适合小单交易,大单进去滑点会很大。

3.5 我的健康度检查清单

每次我要进一个池子做市之前,都会过一遍这个清单:

  1. 总流动性够不够? 低于100万U的池子,我基本不考虑(除非是刚上线的新项目,但我会控制仓位)。
  2. 深度分布是否合理? 当前价格附近有没有足够的厚度?如果峰值偏离当前价格超过5%,说明市场预期和当前价格不一致,可能有套利机会,但也意味着风险。
  3. LP结构是否分散? 前5大LP占比超过50%的池子,我会标记为高风险。
  4. 交易量是否真实? 我会去查一下Dune或者Nansen,看看交易量里有没有明显的刷量行为。如果24h交易量是总流动性的10倍以上,大概率是刷的。
  5. 历史滑点数据: 我会用一些工具(比如Parsec)拉一下过去7天的平均滑点。如果平均滑点超过0.5%,说明这个池子对交易者不友好,做市收益可能被滑点吃掉。

一个小技巧:

你可以用「深度/交易量」这个比值来快速判断池子的健康度。比值在0.5~2之间是比较健康的。低于0.5说明深度不足,高于2说明流动性过剩但交易量不够,做市收益会很低。

嗯,说了这么多,其实核心就一句话:别只看APY,先看深度。 深度不够的池子,APY再高也是空中楼阁。我见过太多人因为贪图高APY冲进一个浅池子,结果一次大额交易就把价格砸穿,自己反而亏了本金。

最后提醒一句:链上数据不会骗人,但解读数据的人会。多花点时间在深度分析上,比追着APY跑要靠谱得多。


公众号:蓝海资料掘金营,微信deep3321