一笔大单会把价格推多远:恒定乘积池价格冲击的近似算法 图 1
一笔大单会把价格推多远:恒定乘积池价格冲击的近似算法 · 图 1

在恒积池里换一笔钱,价格会滑多远有个好用的近似:成交金额相当于池子总储备的一定比例时,价格冲击大致是这个比例的一半。拿两成储备的资金换进去,价格约被推一成;拿半成资金进去,冲击约四分之一成。这条估算式不是精确解,是恒积公式在小额近似下的一阶项,适用条件、偏差方向、什么时候会失灵,恰好构成读 AMM 深度最好的一堂课。

推导本身只有三步。池子的规则是两侧储备之积恒定,你想多取走一点资产 B,就得按规则多塞进资产 A。设池内两边价值各为半,成交规模记作总量的一个分数,把恒等式展开后取主导项,输出价格的变化率约等于成交分数的一半。直觉版本是这样:双边池子对成交的缓冲来自整体储备,你动用的每一块钱同时被两边摊薄,冲击自然折了个半。手续费是在这条价格变化之外单列的一行账,滑点估算常被错当成含费成本,其实是两笔支出。

近似式的第一条适用边界是规模。成交越接近储备量级,一阶近似越失真:展开式里的高阶项让真实冲击大于一半比例,单子越大越超线性。所以用这条式子估小单很准,估逼近池深几成的巨单会系统性低估,实际报价页给你的数字会明显比口诀算的差。判断标准朴素但可靠:成交金额与池内储备同一量级时,别用口诀,用完整公式或者直接看模拟报价。

第二条边界是报价基准。式子里的当前价指按池子当前储备折算的中间价,它与外部市场参考价之间可能本就有偏差:费率收入结构会让池子一侧偏多,最近的大单会把池价暂时推离外部价。用外部价当基准去对比口诀结果,会把池价已有的偏移记在你这笔单的冲击头上。估冲击永远拿池内基准算,估成交质量再和外部价对表,这是两把尺子。

第三条边界是曲线类型。这条口诀专为恒积曲线,恒定和曲线在大额接近失衡前冲击更小、集中流动性区间在带内像恒和、出带后像加速版恒积。同一句储备除以二的口诀拿到别的池型上,方向都会错。所以估算动作前先认池型,再套对应近似:看成交规模、看池型、看基准,三个条件核对了,口诀给出的半个比例才有意义。

实战用法是三行:把成交金额除以两侧储备之和,得分数;分数折半,得近似冲击;若结果超过一两个百分点,说明你已进入高阶区,改用完整恒积式或多池拆分再算。同一笔单子的冲击近似与单笔规模成正比,两笔对半拆进同一个池子,第二次成交的池内基准已被第一笔改变,拆单对总冲击的节省并非来自魔法分摊,而来自分笔报价的间隙让套利者回来补库存。口诀告诉你大单该不该发、怎么拆,剩下的交给报价模拟与执行。

把时间因素再拧一格:同一近似在时间维度还有镜像问题——分多笔跨块成交时,块与块之间会有外部行情漂移与套利者回填,实际总冲击通常低于一次性成交的近似值;但回填需要交易激励,激励不够时池价漂移会累积,分批反而更贵。同一个池子在这两种策略间的甜点区由深度、费率与外部流动性共同决定,而近似式的作用正是把这个问题定量化:先估冲击决定拆不拆,再看执行决定拆几笔。先算后做,比凭感觉下单更接近专业执行的起点。

本文为机制说明,不构成投资建议,不涉及任何收益承诺或买卖建议。链上参数、费率与清算规则随时可能变化,请以协议官方文档与链上合约当前状态为准。