DODO 文档中心

数学背后

PMM价格曲线定义#

PMM描述的价格曲线在数学上定义如下:

P=iRP=iR

如果B<B0B<B_0,则R=1k+(B0B)2kR=1-k+(\frac{B_0}{B})^2k

如果Q<Q0Q<Q_0,则R=1/(1k+(Q0Q)2k)RR=1/(1-k+(\frac{Q_0}{Q})^2k)R

否则,R=1R=1

其中

  • ii是初始“引导价格”
  • kk是“滑点因子”
  • BB表示当前基础代币供应量
  • B0{B_0}表示平衡基础代币供应量
  • QQ表示当前报价代币供应量
  • Q0{Q_0}表示平衡报价代币供应量

价格曲线积分#

对于交易者来说,最重要的是平均交易价格。平均交易价格是边际价格PP的积分。让我们研究一下基础代币不足的情况。

下面的方程描述了用户持有B1B_1个基础代币,并希望购买足够的基础代币以获得B2B_2个代币的情况。为了做到这一点,用户需要计算他们每个购买代币的平均价格。

ΔQ=B1B2PdB\Delta Q =\int^{B_2}_{B_1}PdB

=B1B2(1k)i+(B0/B)2kidB= \int^{B_2}_{B_1}(1-k)i+(B_0/B)^2kidB

=i(B2B1)(1k+kB02B1B2)= i(B_2-B_1)*(1-k+k\frac{B_0^2}{B_1B_2})

上述方程可重排得到以下表达式求解平均代币价格:

P=ΔQB2B1=i(1k+kB02B1B2)P=\frac{\Delta Q}{B_2-B_1}=i*(1-k+k\frac{B_0^2}{B_1B_2})

解决用于交易的二次方程#

让我们推导一下当基础代币不足且只给出想要购买或卖出的报价代币数量(即ΔQΔQ)时如何计算价格。

ΔQ=i(B2B1)(1k+kB02B1B2)\Delta Q = i(B_2-B_1)*(1-k+k\frac{B_0^2}{B_1B_2})

现在给定ΔQ,B0,B1ΔQ, B_0, B_1,我们需要计算B2B_2,即通过解二次方程找到的。将方程转化为标准形式:

(1k)B22+(kB02B1B1+kB1ΔQi)B2kB02(1-k)B_2^2+(\frac{kB_0^2}{B_1}-B_1+kB_1-\frac{\Delta Q}{i})B_2-kB_0^2

令 a=1k, b=kB02B1B1+kB1ΔQi, c=kB02令 \ a=1-k, \ b=\frac{kB_0^2}{B_1}-B_1+kB_1-\frac{\Delta Q}{i}, \ c=-kB_0^2

由于B2>=0B_2>=0,我们舍弃负根,得到

B2=b+b24ac2aB_2=\frac{-b+\sqrt{b^2-4ac}}{2a}

DODO V2专注于验证k=0和k=1的特殊情况,以支持恒定的卖出价格和标准AMM的债券曲线。

变量#

BBQQ表示当前代币供应,即因变量。为了确定这个价格曲线,我们还需要知道四个参数iikkB0{B_0}Q0{Q_0}

然而,这四个参数彼此之间不是独立的,给定其中任意三个,可以计算出第四个。

计算第四个参数的过程称为“回归”,并在参数更改时进行。DODO的PMM遵循“长久回归”规则,这是一条旨在将被高估的资产恢复到其平衡值的规则。

当代币供应发生变化时,交易对中的两种资产之一必须超过平衡值,而另一种资产则低于平衡值。这对应于交易池在一种资产上持有多头仓位,而在另一种资产上持有空头仓位。

然后,“长久回归”规则旨在将多头端资产恢复到其平衡值。一旦多头资产恢复,无论空头资产的新值如何,资产价值被认为是新的平衡值。也就是说,空头持有利润或损失。

计算回归目标#

假设当前状态是B<B0,Q>Q0B<B_0, Q>Q_0。这里,QQ是多头资产,BB是空头资产。我们知道参数i,k,Q0i,k,Q_0,需要解决的是最后一个参数B0B_0-回归目标。为了计算特定预言机价格的回归目标,进行以下推导:

QQ0=ΔQ=i(B2B1)(1k+kB02B1B2)Q-Q_0=\Delta Q = i(B_2-B_1)*(1-k+k\frac{B_0^2}{B_1B_2})

根据定义,当供应返回平衡值时,新的库存将是B2B_2,它将与原始的平衡供应B0=B2B_0=B_2相同。因此,可以将公式组织成二次方程的标准形式。

kB1B02+(12k)B0[(1k)B1+ΔQi]=0\frac{k}{B_1}B_0^2+(1-2k)B_0-[(1-k)B_1+\frac{\Delta Q}{i}] =0

消去负根,得到回归目标B0B_0

B0=B1+B12k(1+4kΔQiB11)B_0=B_1+\frac{B_1}{2k}*(\sqrt{1+\frac{4k\Delta Q}{iB_1}}-1)

类似地,如果BB成为多头资产,则需要解决Q0Q_0,得到:

Q0=Q1+Q12k(1+4kiΔBQ11)Q_0=Q_1+\frac{Q_1}{2k}*(\sqrt{1+\frac{4ki\Delta B}{Q_1}}-1)

应计收益与损失#

当系统参数保持恒定时,价格曲线也保持恒定。即使供应发生变化,供应也最终会恢复到平衡状态。换句话说,由于供应变化而产生的收益或损失只是一种“浮动”收益或损失,这种现象被称为“非永久性损失”。

PMM算法与AMM算法类似,如果参数保持不变。然而,在实践中,人们经常需要调整价格曲线。如果执行“长久回归”规则,则会重置空头端的平衡值。重置后的平衡值可能会变大,相当于盈利。它也可能变小,相当于亏损。每次回归都将未实现的浮动收益或损失转化为实际的收益或损失。

每次更改参数时,应理想地及时消除多余仓位,以避免过度损失。至于何时以及如何调整曲线,这是主观的,我们希望开发者和交易者能充分利用这个框架,以适应自己的市场策略。