Uniswap V3的流动性做市策略

链得得的朋友们
链得得的朋友们

2021年07月30日 链得得的朋友们

摘要: 在 Uniswap 推出 V3 版本后,LP(流动性供应者)可以选择不同的价格区间为同⼀个交易对提供流动性。这种新的规则⼤⼤增加了资本的效率。

本文所需基础知识:概率,⻢尔可夫链,优化

1. 前⾔

在 Uniswap 推出 V3 版本后,LP(流动性供应者)可以选择不同的价格区间为同⼀个交易对提供流动性。这种新的规则⼤⼤增加了资本的效率。对于 LP 来说,V3 的机制使得他们能够在较⼩的价格区间集中较⼤的资⾦获得更⾼的收益,但是在同等程度的价格波动下,需要接受⽐ V2 更⼤的⻛险(⽆常损失)。本⽂基于以太坊的历史价格,研究了三类流动性做市策略:uniform, proportional, and optimal, 并对⽐其在不同情景下的优劣。在研究问题部分会具体介绍三类⽅法,并给出三种策略的详细对⽐,以及和在 V2 中做市的h对⽐。

2. 背景: V2 与 V3 的机制对⽐

假设 x, y 为 AMM 中的⼀对交易对币种,例如 ETH-DAI。在 V2 中,交易对在池⼦中的数量曲线总是 xy = k, 其中 x, y 可以在 [0, +∞) 取到任意值。这意味着 LP 在池⼦中注⼊资⾦后,将服务于 [0, +∞) 整体,资⾦的使⽤效率是固定的且仅仅反应在 k 值⼤⼩上,每个 LP 获取的交易费收益将按照各⾃在池⼦中的份额按⽐例确定。 

但是在 V3 中,LP 被允许为特定的价格区间集中提供流动性。例如,张三觉得 x 的价格⼤部分时间都在 [pa, pb] 之间,他只想为这⼀段价格区间提供流动性。那么他可以选择只在这⼀个价格区间提供流动性,当价格不在此区间的时候就和张三没有关系。因此,张三能够获取所有在此区间产⽣的交易⼿续费分成,收益取决于张三在 [pa, pb ] 之间的提供的流动性份额⽐例。此时的真实数量曲线为:

(可以发现,在区间  [pa, pb]  中,在 v3 中提供数值更⼩的 x1 , y1,达到 v2 中提供 x,y 的同等效果)。

🏝 这⾥的资本效率可以直接计算出来,假如我们把资本效率定义为构建常数为K的虚拟池所需要的资⾦量时,当选取 [pa, pb] 为真实区间时,资本效率为:

3. 问题研究

既然 LP 能够⾃由选择价格区间来提供流动性,那么如何选择是最优的?如何能让⾃⼰的单位资本收益最⼤化?如何选择策略是⻛险最⼩的?详细讨论之前,本⽂先对提供流动性这个问题进⾏数学建模,在规范梳理完后再讨论相应的策略。

定义3.1. (格⼦) 我们定义⼀列⼩格⼦ B = {b1 , b2 ..., bc , ...},  每⼀个⼩格⼦ bi ⼀⼀与价格区间 [li, ri) 对应,其中 l1 = 0, ri = li+1 对所有 i ∈ {1, 2, ...} 成⽴, 这些区间⼀起构成  [0,∞) 的⼀个划分。格⼦ bi 对应于 [li, ri) 区间 , bc表⽰包含当前资产价格的⼩格⼦。

🏝 在 Uniswap V3 的⽩⽪书中提到了具体代码实施的部分,阐述了实际实施的价格区间最⼩单元是由点构成的。例如 [1, 1.00005))。

1. 前提假设

(1)平稳价格分布(stable price distribution):我们假定在任意时刻,任意价格点位,接下来的价格变化率构成的后继价格分布(next-price distribution)是恒定的且不依赖于时间和价格。在验证 ETH 以⼗分钟为间隔的历史数据时,我们发现以下两个后继价格分布对的相关系数⾼达0.98(i) ETH 价格在300以上和以下的后继价格分布(ii)ETH 在2018年4⽉到2019年4⽉的后继价格分布和2019年4⽉到2020年4⽉的后继价格分布。这⼀实验证据⽀撑这⼀假设的合理性。

🏝 后继价格:指接下来的价格;另外从 (i),(ii) 可以看出价格和时间对后继分布的影响很低

(2)流动性再分配的成本固定:我们假定每⼀次再次提供流动性(撤出到再分配流动性)所造成的开销(包括 gas fee 等)都是1,其余数值按照这个标准进⾏正则化处理。例如,如果张三进⾏ l = 100 单元的流动性再分配,那么开销就是100.

(3)周期性更新:我们假定 LP 的流动性分配结果周期性更新,并且再分配所消耗的时间为0。 事实上在更新时间充分久的时候撤出到重新分配所需时间是可以忽略的。

(4)我们为⼀个流动性提供商制定 Uniswap V3 的流动性供应策略,⽽假定其余的流动性提供商都按照 V2 的思路提供流动性,即不选择特定价格区间。

🏝 注释:由于本⽂的⽬的是⽐较⼏个流动性供应策略的优劣,这4个假设对这⼏个策略的影响均不存在特殊性,因此属于合理假设。

2. τ − reset 策略

在详细描述策略之前,我们先定义随机过程 {Pn : n ∈ N} ,n为时间标签, Pn 为 n 时刻的价格。回到上⽂关于格⼦的定义,我们把当前价格所处的格⼦定义为 bs ,并也将其记录为 b(0) . 记 b(−k) 和  b(k) 分别表⽰ bs 左边的第 k 个格⼦和右边的第 k 个格⼦。同时,后继价格分布的⽀撑集被包含于 Bk = {−kmax, −kmax + 1, ..., 0, ..., kmax}, 其中 kmax 表⽰后继价格所能达到的最⼤范围。因此,根据我们平稳价格分布的假设,我们有: P r(Pn+1 = b(k) ∣Pn = b(0)) = h(k), for k ∈ Bk , (1)

 h(k)是价格右移 k 个格⼦的概率(如果 k 为负数则为左移)。此时,我们能定义⼀类简单的流动性策略。

定义3.2. 重置流动性供应策略(reset-LP strategy)由如下⼏个部分组成:

(1)包含 重置流动性分配时价格的格⼦, b (s) = b(0).

(2)⼀个分配 (allocation)规则, A(i) ∈ [0, 1] 指定每⼀个格⼦ b(i) ∈ Bk 中流动性分配的⽐例。

(3)⼀个重置条件,指定 Bk 中导致重置流动性分配的⼀个⼦集。

定义3.3. 我们称 τ − reset strategy 是⼀个 reset-LP strategy 当且仅当重置流动性发⽣的必要条件为当前价格在集合之外。

为⽅便⾏⽂,我们将 Bτ 记为 {−nτ , ...0, ...nτ }  。同时, τ也表⽰后继分布被 Bτ  覆盖的概率质量(Probability mass),例如,当 τ = 0.5  时, nτ 则为最⼩的数使得 Bτ 能够覆盖50%的后继概率质量。

现在我们介绍⼏类策略,为了便于理解,我们先介绍以下⼏个例⼦:

例1(Fixed strategy):永远在⼀个价格区间提供流动性,例如只在 [$30, $50] 提供流动性。

例2(Uniform τ − reset strategy): 在以当前价格为中⼼的⼀列格⼦中提供流动性,且每个格⼦提 供等量流动性,当价格⾛出这列格⼦所包含的范围时触发流动性重置。

例3(Proportional τ − reset  strategy #1 ):令  τ = 0.5,因此 Bτ 包含后继概率分布中间部分 50%的概率质量,根据概率质量⼤⼩所占⽐例来给这个范围内的格⼦再分配流动性。

例4(Proportional τ − resetstrategy #1):令 τ = 0.5 ,因此 Bτ 包含后继概率分布中间部分 50%的概率质量,根据概率质量⼤⼩所占⽐例来给这个范围内占据 Bτ 90%概率质量的格⼦再分配流 动性,末尾占据Bτ 10%概率质量的格⼦不分配流动性。

🏝 上图演⽰了例2介绍的策略。在后⾯提到的策略会以上⽂的例⼦为基础。因此理解上⽂集中策略会加深对后⽂的理解。

3. ⻢尔可夫分析

这⼀部分将给出⼀套分析框架来针对 τ − reset 策略进⾏期望效⽤的分析。

定义3.4. 记 f(i, j) : Bk × Bk → [0, 1] 为价格从 Bk 中的第 i 个格⼦移到第 j 个格⼦的概率, f(i, j) = P r(Pn+1 = b(j) ∣Pn = b(i)), for i, j ∈ Bk . (2)

可以看出, f(i, j) = h(j − i) , 根据前⽂中定义的 h(j − i) 为价格移动 j − i 个格⼦的概率。

定义3.5. 记 g(i) : Bτ → [0, 1] 表⽰当价格在第 i 个格⼦,发⽣重置流动性的概率

 (3)

当价格⾛出  Bτ 区间时,按照 τ − reset 策略就得重置流动性。此时价格所在的区间将重置为 b(0).

定义3.6. 定义重置⻢尔可夫链 , 其中 M(i, j) 表⽰从状态 i 转移到状态 j 的概率,M 描述了价格围绕 Bτ 移动的随机过程。我们有:

定义3.7. 给定 Bτ , 记 pτ ∈ R 1×(2nτ +1) 为重置⻢尔可夫链的常稳分布(stationary distribution): 

因此,在任意时刻,价格停留在 Bτ 中第 i 个格⼦的概率为pτ (i)。

考虑到流动性的提供并不局限于 Bτ (当然我们可以只在 Bτ ⾥⾯提供),我们有如下定义。

定义3.8. 记 Bα 为以 b(0) 为中⼼的 2nα + 1 个格⼦,, 类似于 Bτ, 为⽅便可将 Bα 记为  Bα = {−nα, ...0, ...nα}。

🏝 注:这⾥的 Bα 表⽰的是真实提供流动性的格⼦集合(不⼀定充满),集合可以⼤于 Bτ. 

定义3.9. 流动性分配 A : Bα → [0, 1]  定义了分配给 Bα 内格⼦的流动性划分,且满⾜

定义3.10. 结果矩阵表⽰从任意 Bτ 中的格⼦移动到 Bα 中的格⼦的概率转移矩阵, 

价格停留在 Bα 的第 j 个格⼦的概率的计算⽅式如下:

等价于重置⻢尔可夫链的平稳分布 pτ 与结果矩阵 O 的点积。

此外,我们需要知道在每⼀个 Bα 中格⼦提供流动性的效⽤函数,我们采取指数效应函数 (exponential utility function),以便考虑不同⼈的⻛险偏好。

定义3.11. 记 u(c) 为指数分布函数,

其中  a ∈ R是度量⻛险偏好程度的指标。a = 0 表⽰⻛险中性, a < 0 为追求⻛险,a > 0 为厌恶⻛险。

定义3.12. 在 Bα 中的第 j 个格⼦产⽣的回报为 RA(j) 。记 κ ∈ R + 为⽐例常数,则:

🏝 理解⽐例常数 k:在固定的时间内,你在⼀个格⼦中获取的流动性收益只和你投⼊的流动性数量成正⽐。这利⽤了上⾯的第四条假设。 

定义3.13. 在 Bα 中第 j 个格⼦产⽣的效⽤为 UA(j) : 

🏝 这⾥括号⾥“+1”的⽬的是为了保证效⽤函数的数值为正数,由于效⽤⼤⼩是相对的,这种平移不影响结论。

定义3.14. ⼀个流动性分配(allocation) A 的期望效⽤为:

上⾯的定义中给出了分配策略的期望效⽤度量⽅法,接下来正式给出不同策略的定义。

4. 介绍三类 τ − reset 策略

定3.15. 我们定义⼀类 τ − reset 策略为⽐例策略 (proportional strategy) 当且仅当分配函数 A(j) 与价格待在 Bα 中第 j 个格⼦的概率成正⽐。

🏝 按概率⼤⼩分配流动性,例如在[0,1]中,价格在0.5附近的概率较⼤,就给0.5附近的格⼦多分配流动性。

定义3.16. 我们定义⼀类 τ − reset 策略为⼀致分配策略(uniform allocation strategy)当且仅当分配函数 A(j) = 1/(2nα + 1), for j ∈ Bα

定义3.17. 我们定义⼀类 τ − reset 策略为最优化分配策略(optimal liquidity strategy) 当且仅当分配函数 A是以下优化问题的解:

🏝 该优化问题的解是使得期望收益最⼤的分配⽅式

5. 以太坊的历史数据

上述所有的分析都基于后继价格分布是平稳分布的假设,⽽该假设基于以太坊历史数据。本⽂所⽤数 据为2018年3⽉到2020年4⽉期间每10分钟以太坊的数据,改变⽐率的计算⽅式为:

🏝 图中⼀共记录了在价格变动率为[-3%, 3%]129个格⼦的后继价格分布,每个格⼦⼤约包含 0.046%的概率质量。可以发现在最中间的格⼦包含⼤约0.15的概率质量,可以认为价格通常是趋于稳定的。

6. 不同策略的对⽐

⾸先我们考虑⻛险中性情形下的⽐例策略。我们依据定义3.14计算不同参数下的期望效⽤。下列实验图中的结果来⾃50000次模拟的平均值:

🏝 左边是期望效⽤的密度图,可以看到期望效⽤的最⼤值在最左下⻆的地⽅。右边是分别固定τ 对 α 的观察和固定 α 时对 τ 的观察。两张图都显⽰,当 α 和 τ 都和期望效⽤递减,当  τ , α 都等于1时期望效⽤最⼤,即只取中间⼀个格⼦。

图8为最优化分配策略在不同⻛险偏好下的实验模拟图。

🏝 图8对⽐了不同⻛险偏好程度下的期望效⽤,可以看到,当⻛险偏好程度越⾼时(a越⼩),只 取中间⼀⼩部分或者只取中间⼀个格⼦来提供流动性将获得最佳期望收益。但是当⻛险厌恶 程度增加时(a变⼤),需要为更多的格⼦提供流动性,且提供的量的分布随着厌恶程度的增加 ⽽越趋于平坦。当a=15时,在 Bα 中的每个格⼦提供等量流动性能取得最⼤的期望效⽤, 这个时候所采取的策略等价于⼀致分配策略。

🏝 图9对⽐了在不同⻛险偏好程度下不同策略的期望效⽤,可以看到当⻛险偏好程度⾼的时候,选择⽐例策略要远远优于⼀致分配策略;当⻛险厌恶程度⾼时,选择⼀致分配策略要优于⽐ 例策略。

🏝 图10对不同⻛险偏好程度下 τ 值对期望效⽤的影响做了实验。结果表明,对⻛险偏好程度越⾼的LP,他们应当于选择较⼩的 τ,这意味着他们更应该集中筹码把流动性提供到价格概率质量较⼤的地⽅,也意味着他们得不停的 reset 。对⻛险厌恶程度较⾼的LP,他们应当选择较⼤的 τ,将筹码摊平到相对更⼤的区间,并且较少的 reset 以避免 gas 费⽤。

7. 和 Uniswap V2 对⽐

我们选取 ETH 的价格区间为 [81$, 830$], 价格所在时间如下图。选定 τ = 0.5 ,  a = 0.1, 并将⼤的价格区间分成5500个⼩格⼦,我们⽤⼀致分配策略估计估计 V 2 的效⽤,将流动性平摊给5500个⼩格⼦。最终的计算结果表明,对于稍有厌恶⻛险的 LP(a=0.1),最优分配策略的期望效⽤超过 v2 的230倍。

4.结论

本⽂根据 Uniswap V3 的机制定义了⼀类常规的 LP staking 策略,τ − reset 策略。在这类策略空间 τ 中,对⽐了不同⻛险偏好程度下,⼀致分配策略和成⽐例分配策略之间的关系。并对⽐了不同值在不同⻛险厌恶程度下的影响。最后和V2进⾏了⽐较。

总体来说,对于⻛险厌恶程度低的LP,集中筹码能获得较⾼的效⽤,⽽对于⻛险厌恶程度⾼的LP,分散筹码是更好的选择。但⽆论是否厌恶⻛险,V3的机制都能够⽐V2让LP获得更⼤的期望效⽤。

🏝 本⽂不⾜的地⽅在于讨论的策略空间较⼩,其次则是没有考虑其他LP做市策略的影响。如果所有LP的想法都⼀样,最终导致的结果是,所有LP的期望效⽤都和V2没有区别。但是V3对 LP 最⼤的好处就是带来了更多的选择,为不同⻛险偏好程度的LP提供了多样化的选择余地。

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 链得得的朋友们 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信