在Uniswap V3中使用Markout计算LP盈利能力

  • crocswap
  • 发布于 2022-11-23 20:52
  • 阅读 9

本文深入探讨了Uniswap V3平台中ETH/USDC流动性提供者的盈利能力,分析了原始计算方法的不足,提出了手动调整标记方法以提高准确性,并通过不同的标记周期评估流动性的表现。调查结果表明,虽然存在潜在的损失,但对于某些费用等级,流动性提供仍然可能在特定条件下获得盈利。文章总结了流动性层的动态定价策略对提升流动性管理可能的积极作用。

这篇文章是 @0xfbifemboy 关于 Uniswap 流动性池、集中流动性和费用动态的 持续系列文章 中的新一篇。

非常感谢 @thiccythot_ 0x94305 0xShitTrader 在准备这篇文章过程中的非常有帮助的评论和讨论。

引言

最近,关于 Uniswap V3 上 ETH/USDC 流动性提供者的盈利能力进行了大量讨论。这些辩论集中在 Twitter 用户 @thiccythot_ 制作的 Dune 数据仪表板 的有效性上,该仪表板使用基于 markout 的计算,证明 Uniswap V3 LP 由于易受有害订单流的影响,可能在过去一年里损失了约 1 亿美元:

稍后我们将更详细地讨论 markout 的概念;目前只需知道它是高频交易中用于分析策略盈利能力的常见指标。(在这个设置中,我们将 Uniswap 流动性池想象为实施一个在池中提交的每一个有效交易的对手方交易策略。)

@0xShitTrader普及下,这些发现引发了 Uniswap Labs 团队的 回应,他们生成了 自己的 Dune 查询,并声称证明了在正确考虑费用后 Uniswap LP 实际上总的来说相当盈利:

然而,@0xShitTrader 对 Uniswap Labs 分析的 详细检查 显示,他们的 Dune 查询存在一个重大缺陷,导致分析中 半数交易 被忽略!

此外,@0xShitTrader 指出费用实际上已经包含在原始分析中,这与 Uniswap Labs 的主张相悖。

纠正上述唯一发现的错误导致的 PnL 图与 @thiccythot_ 最初生成的结果相似,这表明 Uniswap V3 上的 ETH/USDC LP 确实亏损惊人:

这个错误已被 Uniswap 的 xin wan 宽容承认。尽管如此,他们对 markout 在 AMM 流动性提供者的上下文中作为有用指标的有效性表示怀疑:

关于 markout 的有效性之前曾被广泛讨论,虽然未达成共识

最终,我们整体印象是,尽管对于 markout 是否是 AMM LP 的有用指标存在分歧,但我们如果接受它是,则 ETH/USDC LP 由于有害的交换流而极为不盈利!

有趣的是,敏锐的读者可能会回忆起在我们之前的一项分析中,设计超越所有 Uniswap ETH/USDC 流动池的动态费用政策,似乎在同一费用层保持一单位的 ETH/USDC 肆意流动性在 0.3% 和 1% 费用流动池中实际上是净盈利的(考虑到暂时或偏离损失与费用的累积的平衡):

这些结果似乎与 @thiccythot_ 的结果相矛盾,这促使我们更深入挖掘并确定差异的来源。

markout PnL 的原始计算

当我们审查 @thiccythot_ 用于计算 markout PnL 的 Dune SQL 查询时,我们识别出了两个主要的分歧点,均与 markout PnL 的计算有关。

考虑以下代码块,它定义了 5 分钟的 markout PnL:

sum(
  protocol_buySell * (markout5m - swapPrice) * eth_swapped
) as pnl_5m

这与 @thiccythot_ 的 Dune 仪表盘中给出的计算 markout PnL 的公式完全相符:

我们将逐一讨论各个方面。

交换费用已纳入有效交换价格

首先让我们考虑费用的问题。Uniswap Labs 声称,这个分析不考虑 LP 费用,这是真的吗?表面上看可能是这样,因为 pnl_5m 没有明示附加与交换相关的 LP 费用。然而,这里需要注意的是,费用已经“被包含在” swapPrice 中。

下面是swapPrice 的定义:

CASE
  WHEN t.token_b_symbol = 'USDC' then t.token_b_amount / t.token_a_amount
  WHEN t.token_b_symbol = 'WETH' then t.token_a_amount / t.token_b_amount
END as swapPrice

这里的关键观察点是正如 @0xShitTrader 指出的 — 这个交换价格是根据向自动做市商和流动池的代币进出数量计算得出的,这些信息是在 Uniswap 事件日志中报告的。发生交换时,会发生以下过程:他们发送 X 代币的一种类型,费用为(1 - fee)*X(例如,fee = 0.01 对于 1% LP 费用)被提取出, Y 值的配对代币会根据销售(1 - fee)*X 代币返回。也就是说,计算有效执行价格时,较高的 LP 费用会使得交换者显得没有达到市场价,反之,LP 填充订单就显得好于市场价格。

让我们举个明确的例子。假设 ETH 在 0.3% 费用池的交易价格为 $1,000,且我们有无限流动性(因此价格影响为零)。某人想要购买 ETH,所以他们发送了 1,000 USDC,并收到 0.997 ETH。这里的有效交换价格是 1000 / 0.997 ~= 1003。现在,如果我们假设 ETH 的价格保持在 $1,000,markout PnL 的计算立刻反映出 LP 费用的累积:protocol_buySell 等于 -1,markout5m - swapPrice 等于 -3,因此我们有一个正数乘以 eth_swapped,因此 PnL 为正。

因此,原始的 markout 分析不包含费用这一说法是 错误的!实际上,从分析角度上讲,费用已自动纳入有效的交换执行价格中。

不过这为我们讨论我们发现的两个潜在的违规点奠定了基础。(这两个分歧紧密相关,都可以通过一个简单的变更解决;然而为了概念和阐述的清晰,我们选择单独呈现它们。)

分歧点 #1:markout 价格应为流动池价格

让我们看看 markout5m 是如何定义的:

LAST_VALUE(
  CASE
    WHEN t.token_b_symbol = 'USDC' then t.token_b_amount / t.token_a_amount
    WHEN t.token_b_symbol = 'WETH' then t.token_a_amount / t.token_b_amount
  END
) OVER (
  ORDER BY
    block_time asc range between current row
    and interval '5 minutes' following
) as markout5m

注意这与 swapPrice 的计算非常相似!简言之,它问的是:“对于任何给定的交换,在接下来的 5 分钟内取最后一次交换,包括这次交换,如果没有其他交换发生。然后,计算最后一笔交换的平均执行价格,无论是 t.token_b_amount / t.token_a_amount,还是 t.token_a_amount / t.token_b_amount,具体取决于交换的方向。这就是 5 分钟的 markout 价格。”

然而,这可能与最后一次交换后的流动池价格有显著不同!为了说明这一点,考虑以下示例。假设 ETH 的交易价格为 $1,000。

  • 你进行了一次交换,以零价格影响购买 0.00001 ETH。交换执行价格和池价格都为 1 ETH : 1,000 USDC。
  • 在接下来的 5 分钟,仅有 1 笔额外的交换。这笔交换购买了 1,000,000 ETH,并产生了巨大的价格影响。经过这次交换,池价格为 1 ETH : 1,100 USDC,比之前高出 $100。该交换的平均执行价格为 1 ETH : 1,050 USDC,低于池价格 $50。

对于非常长的 markout 周期,这影响会非常小。例如,如果你使用 1 年的 markout 周期,markout 价格和交换价格之间的差异将完全被这一年期间 ETH 价格的整体波动所主导,相对与这一年 中 last swap 的价格影响。然而,对于像 5 分钟这样的小 markout 周期,这可能导致整体结果的相当明显的变化。

分歧点 #2:不应有退出滑点

稍微退后一点: 通常,当你计算 markout PnL 时,你不应假设存在任何退出的“滑点”或“费用”。尽管 markout 作为一个指标关注的是单笔交易的盈利能力,但它几乎总是应用于连续交易 策略 的上下文中。在这个设置中,你是以相比你的 markout 间隔非常快的速度连续进行交易。例如,你可能根据买入信号 alpha 购买一些库存,然后根据卖出信号 alpha 卖出一些库存,依此类推。你只有在较长的交易期结束时才退出,如果你计算每笔交易的 markout PnL 假设有退出费用,你将大大低估策略的盈利能力。

这对于 AMM 更是如此,因为流动性提供者几乎总是在较长的时间范围内提供流动性(排除即时流动性,这只占少数交易,并且被知晓为高度盈利)。然而,回想起我们之前的讨论,我们意识到:

  • swapPricemarkout5m 的计算都使用平均(有效)交换价格
  • swapPrice 的计算隐含地包含了交换费用

因此, 分开 谈谈 markout5m 未反映实际(无穷小)池价格的问题,这也意味着通过在进入和退出交易中都出现的交换费用,markout PnL 的估计是向下偏差的!如果某给定的交换方向与上个 markout 周期的最后交换相同(包括它本身),这意味着 LP 费用完全抵消。

这一点通过一个例子可以清晰地看到。假设不存在价格影响,因此平均交换价格和最终池价格始终相同。如果某个给定的交换是其 markout 周期内唯一的交换,我们得到 swapPrice = markout5m,而总 PnL 为 0,显然是错误的,因为交换费用仍然被 LP 捕获。当然,如果最后一次交换方向相对相反,那么你捕获到的费用总数将是两倍。然而,前一种情况应该更加普遍,因为交换的方向通常是相关的,并且很可能在 markout 周期中包含多个没有额外交换的时段。因此,我们怀疑这会导致 markout PnL 的系统低估。

修订后的 markout PnL 计算

我们想知道:以上发现的两个分歧可能解释我们之前分析与 @thiccythot_ 获得的结果之间的某些不一致吗?为了解决这个问题,我们重新分析了 Uniswap V3 的交换数据。

具体而言,我们查看了从 Uniswap V3 事件日志直接获取的针对 0.05%、0.3% 和 1% ETH/USDC 费率的交换数据。我们匹配 @thiccythot_ 使用的分析方法,如下所示:

  • 限制为在 2021 年 8 月 1 日或之后进行的交换(Unix 时间戳 1627776000)(Dune 查询: t.block_time >= '2021-08-01'
  • 限制为非零的 USDC 输入或输出数量的交换
  • 限制为至少发送 1e-8 ETH 的交换(Dune 查询: eth_swapped > 1e-8
  • 限制为平均执行价格在 $500 和 $5,000 每 ETH 之间的交换(Dune 查询: [swapPrice expression] BETWEEN 500 AND 5000

为了确定流动池在任何给定交换后的最终价格,我们使用 Swap 事件中发出的 tick 变量。 Uniswap V3 文档 将其定义为“交换之后流动池价格以 1.0001 为底的对数”,这正是我们所需要的。注意,当在同一个以太坊区块中发生多次交换时,它们都具有相同的时间戳;为了便于数据分析,我们通过将每个时间戳与根据每次交换所发出 tick 值加权的 USDC 转移计算的平均 ETH 价格关联解决了此问题。我们期待这在分析中是相对较小的、无偏置的因素。

首先,我们通过绘制 ETH 价格以及每笔交易后的 1 个月 markout 价格来检查基本的数据一致性:

容易验证的是(1)黑线准确地追踪了 ETH 随时间的价格变动,以及(2)红线表示的 1 个月 markout 价格确实等于黑线向左偏移一个月。

接下来,我们确认在使用完全相同的方法能重复 @thiccythot_ 的结果,即通过计算在接下来的 N 分钟内最后一次交换的平均执行价格(包括费用)来计算 markout。

在算入 5 分钟 markout 周期时,我们计算的累计 PnL 约为 ~$2500 万美元:

这在质量上与原始 Dune 查询中的累计 5 分钟 markout PnL 图表 非常相似

它们并不是 完全 一致,且 Dune 查询中包含约一个月的交换数据,但它们的匹配程度相当高,在我们看来,这合理地表明我们忠实地重现了原始分析。

我们还使用 24 小时的 markout 间隔重复计算累计 PnL。在我们的分析中,我们发现损失接近 ~$1 亿:

这同样非常类似于原始 Dune 查询的结果,只是他们的数据集中包含了大约更多的一个月的数据:

我们认为这些比较表明(1)我们基本上使用同样的数据,以及(2)我们比他们在分析数据的方法上更能达成一致,尽管数据源和分析方法不完全相同(例如:我们使用 R 来执行分析而不是使用 Dune 的 dex.trades 表作为交换数据的来源)。

如果我们进行一次单一的变更:而不是通过最后一笔交换的平均执行价格来计算markout价格,我们使用最后一次交换之后流动池的价格。理论上,这应该解决前一节中指出的两个分歧。当我们重新计算所有 ETH/USDC LP 的累计 PnL 时,结果 明显 发生了改变:

修订后的分析显示,分析期结束时损失约为 -$7M,几乎比原始 5 分钟 markout 分析中的 $25M 损失低 75%。另外,在数据的前半部分存在一个较长的、多月的盈利期!正如我们所怀疑,这个看似微小的调整导致了相当大的差异。

如果我们分别查看每个费用层的性能呢?为简单起见,我们将考虑 0.05% 和 0.3% 费用层。(1% 费用层在交换交易量中所占比例非常小,在过去的分析中我们发现交换数据中存在奇特的伪影,因此我们觉得单纯考虑 0.05% 和 0.3% 层更为简单。)

使用原始方法论,我们看到 0.05% 流动池非常不盈利,0.3% 流动池在整个分析期内基本持平。值得注意的是,0.05% 流动池的 TVL 较大,并且接收了大部分 ETH/USDC 的交换量。(方法论注:每个费用层对的 markouts 是包含跨 所有 费用层的 AMM 交换数据进行的,因为(1)高费率层的交换出现得不那么频繁,(2)高费层的流动池价格通常会因有限的套利而远离真正的“公平”价格。)

然而,使用修订后的方法论,我们发现 0.05% 流动池的损失显著较少,0.3% 流动池实际上在整个分析期内净盈利:

这些大致与我们在之前博客文章中获得的结果一致!它们并不完全相同,但这在事物的本质上就是意料之中的——进行的分析的确切细节在许多方面有所不同。重要的是,对于 markout 价格计算的微小变更得出的结果(1)与之前的分析相符以及(2)明确表明某些费用层内提供流动性是可以盈利的。

更长的 markout 周期

有人可能会问:当我们将此修订应用于 24 小时 markout 周期时,原始分析显示损失约为 ~$1 亿,该怎么办?事实上,有人 争论,更长的 markout 周期更恰当地捕获有机 LP 风险,因为如果有人向 ETH/USDC 池提供流动性,且ETH 在起始和结束点的价格相同,他们必然从费用中获利,这个结果如果 markout 在这个过程中的中间点被计算出将无法重现。

我们认为较短的 markout 周期更加适宜。更具体地说,我们认为最佳的 markout 周期应该尽可能多地捕捉到 微观结构 特性,并尽可能少地捕捉到 资产价格漂移

例如,假设我们对 ETH 的价格使用 1 个月 markouts。目前,ETH 的价格约为 $1,200,而六个月前 ETH 的价格约为 $3,400。这意味着在这六个月中,ETH 的价格下降了近 3 倍!

直接从 ETH 的价格下跌可以推导出总体上,卖出的活动要多于买入的活动。相反,流动池在下跌过程中购买了比出售更多的 ETH(假设流动性保持大致不变)。因此,如果我们使用 1 个月的 markouts,在任何给定的月份,累计 PnL 都是负的,因为(1)流动池是 ETH 的净买家且(2)ETH 的价格下降。

这个思想实验确实表明我们不应使用 1 个月,甚至争辩意义上不应使用 24 小时的 markouts。这样会使得计算出的 PnL(通过 markouts)主要由 ETH 价格的 漂移 曝露来主导,而不是应收费用与有害流动之间的显露平衡!如果我们接受非常长的 markout 周期,我们可以画出 ETH 价格的平方根,而不是进行任何的 markout 分析,因为流动性提供者的整体价值 正好 与这个函数成正比。

可以说,许多 ETH/USDC 流动性提供者并不对冲其德尔塔;然而,这并不意味着在 markout 分析中隐含允许通过长 markout 周期积累未对冲德尔塔风险是有意义的! 从做市商的角度上说,合适的分析应该是使用较短的 markout 周期。当然,我们的 markout 周期不可以 短。在极端情况下,如果我们将 markout 周期设为零,并将每次交易标记为该交易后无穷小价格,PnL 通常会非常高,但显然这并未正确考虑短期流动的毒性。

我们的理论分析仍然对更长的 markout 周期成立。然而,当 markout 周期不断延长时,修订的方法与原始方法几乎趋同,因为未对冲的德尔塔风险对于 PnL 的主导作用超过了我们之前指出的分歧点。

究竟该选择如何的 markout 周期?这个问题很难准确回答。然而,对于 ETH/USDC 这个在加密货币市场上最具流动性和竞争力的交易市场之一而言,我们认为 5 分钟是足够长的,以捕获所有微观结构特点。

假如我们将 markout 周期延长到 10 分钟。(可以非常粗略的说,这大致对应于流动性提供者每 20 分钟调整自己的德尔塔风险的情况。)我们发现,累计 PnL 明显降低;例如,即使在修订后的分析中,0.3% 费用层的净盈利能力也徘徊在零附近:

如果我们查看交换的实际到达频率,并没有强烈迹象表明 10 分钟的 markout 周期优于 5 分钟的 markout 周期。即使在 5 分钟的 markout 周期中,数据集中的 98% 交换在 markout 周期内至少有一次交换。此外,ETH/USDC 交换块之间的间隔分布表明,紧接着任何给定交换之后,很可能至少会在万一再次报价中引入一单新的交换在接下来的 60 秒内,这使得 5 分钟的时间对于 CEX/DEX 的套利和一般微观结构现象的展开是足够的:

综上所述,值得注意的是,留在静态费用层中是相当低效的。正如我们在以往工作中 指出的,基于统计信号在不同费用层间切换的动态费用能够实现显著的超额回报。

每笔交换的“瞬时”盈利性

我们对流动性提供者 PnL 的讨论激励我们提出以下简单的疑问:假设我们仅从每笔交换的个体角度进行观察。某人购买 ETH 可能意味着流动性提供者受到不利的流动影响,考虑到未来 ETH 的购买,流动性提供者在几分钟后的相对 ETH 价格下承担损失;然而,即使我们抛开所有这些,我们至少应该希望 Uniswap 流动性提供者所收取的交换费用足够高,以补偿它因这笔交换自身的价格影响。如果交换在不考虑未来标记价格的情况下 不会 产生 个体 盈利,这将是一个严重的问题 — 这种结果将表明流动性严重被低估。

进行这样的分析,我们发现整体 ETH/USDC 流动池依然不盈利:

然而,将 0.05% 和 0.3% 费用层之间的累计 PnL 拆分,我们发现这在很大程度上是 0.05% 池深度亏损的功能:

至少,0.3% 流动池(可能还有 1% 流动池)定价流动性足够高,因此在仅从原子性基本原则来看,交换是盈利的。也就是说,正如我们刚才看到的,在考虑交换后价格走势时并不保证盈利 — 这只是一种“下限”启发式的论证,用于判断哪些费用层在某种意义上是“过于便宜”的。

使用 CEX 数据计算 markout 价格

我们如何进一步扩展我们的分析?一种可能的途径是获得在任何给定时间 ETH 公允价格的更好估计。

利用 Uniswap 池价格作为 markout 价格的一个主要问题在于, 基本上,只有 Taker 能在 Uniswap 上改变价格。正如 Alexander Nezlobin(@0x94305)和他人所 指出的,这意味着 Uniswap 流动池的价格往往“滞后”于资产的公允价格:成为 Uniswap 流动池上的 Taker 需要付出成本(等于交换费用加上固定 gas 费),并且只有当套利利润大于交易成本时,套利才会发生。

@0x94305模拟分析 指出,这种效应导致使用低至 5 分钟的 markout 周期来进行 LP 盈利时,会显著高估盈利:

具体而言,这也是为何有些人会更倾向于使用较长的 markout 期 —— 这是一个偏差-方差的权衡,其中较长的 markout 会导致来自积累的德尔塔暴露产生更高的方差,但相较于较短 markout 周期,给出 LP 盈利的过高偏差估计则不那么明显。

有趣的是,我们可以改善这种情况,可能同时保持较长 markout 的低偏差和短 markout 的低方差,方法是使用来自中心化交易所(CEX)的数据(比如 Binance)。使用 ETH/BUSD 市场的现货数据有几个好处:

  • 与以太坊上的 gas 费用不同,没有半固定的交易成本
  • 做市商和 Taker 的费用相对较低 — 所有 BUSD 交易对上的 Maker 费用为 0%,VIP 9 级交易者的 Taker 费用为 4 个基点
  • 做市商可以根据需要调整报价,因此价格发现并不完全由 Taker 促进

因此,我们通常期望 Binance 上的 ETH 现货价格对于 ETH 的公允价格来说是一个更准确且偏见较小的度量。

因此,我们下载了 2021 年 8 月 1 日起,Binance 的 ETH/BUSD 现货市场的所有 1 分钟 K 线(K-lines)数据。我们使用每根 K 线的开盘价和时间戳来计算 markout 价格。

这样做后,我们看到,使用 Binance 数据的 markouts 实际上提供的 LP 盈利的估计比原始 Dune 分析和我们的修订分析更差:

继续使用 5 分钟 markouts,我们发现当 markout 价格从 Binance 现货数据估计时,0.05% 和 0.3% 费率层明显不盈利:

这并不是特定 markout 周期使用的问题:更长的 markout 周期(例如: 10 分钟、1 小时等)都产生一致的结果。尽管在较长的时间范围内未对冲的德尔塔暴露主导了累计 PnL,但使用 Binance 数据计算的 markout 价格,所得出的 LP 盈利估计在过去一年中显示出没有费率层为净盈利。

根据活跃流动性进行归一化

在我们对池盈利性的分析中,有一个尚未考虑的因素。注意到直到目前为止,我们是从 整个流动性池 净盈利的角度来分析的!然而,从个体角度出发,一个更相关的问题是:如果我进入流动性池并待上一段时间,我的净盈利率是多少?换句话说,我们的 时间加权 盈利情况,而不是 交易量加权 盈利情况?

这不仅仅是一个闲聊或理论性的问题。随着时间推移,池中的流动性绝对数量剧烈波动 — 正如 Uniswap V3 的 TVL 从 $0 开始,如今已达数亿美元所证明的那样!此外,其中的 活跃 流动性部分的比例也剧烈波动,正如我们之前的工作所展示的。例如,查看 0.3% ETH/USDC 流动池,在任何给定时刻,池中实际处于范围内的流动性单位的比例在 20% 和 95% 之间波动:

0.05% 流动池的情况也是非常类似的。

这种波动的影响不能低估。例如,假设一个流动池在第 1 和第 2 个时间段的净利润为 -100 和 +1,但在这两个时间点分别有 100 和 1 个活跃流动性单位。通过按活跃流动单位归一化,我们预测,一批进入流动池并在这两个时间段坚持的净利润为 0,即使受池本身净盈利为 -99 的影响。当然,实际上,差异并没有 那么 截然不同,但该示例很好地说明了考虑该变量的重要价值。

因此,我们利用 Binance 现货价格修改了 5 分钟 markout 分析,按照每个时间点的活跃流动性单位数进行除法:

值得注意的是,即使在调整了池的 TVL 之后,0.05% 流动池仍然出现的损失明显大于 0.3% 流动池,这进一步加强了我们关于 0.05% 流动池定价低估了流动性的观点。此外,在此归一化后出现一个微妙但极其重要的现象:尽管累计 PnL 的方向一致,但往往有时 0.3% 池的累计 PnL 相较于 0.05% 池上升得更加明显(反之亦然)!这直接表明在某种程度上,智能地切换 在费率层间的策略,如我们在以前的研究中阐述的那样,实际上可能对流动性提供者提供正的累计 PnL,即使在长时间内保持静态费用层的情况下也可能是净不盈利的。这种动态费用可能是促进可持续提供链上流动性的系统发展的关键一步。

使用不同 markout 周期引起的最终 PnL 的变化

到目前为止,我们以对 Uniswap 数据的简单 Dune 查询为起点,并逐步应用了以下调整:

  • 通过使用流动性池自身的价格来计算 markout 价格,之后使用 Binance ETH/BUSD 单分钟 K 线开盘价格
  • 通过当时活跃流动性单位数来归一化每一笔交易的 PnL

之前我们在理论上简要考虑了何为“最佳 markout 持续时间”的问题。我们认为,markout 持续时间应长到足够捕获资产相关市场的微观结构特征,但除此之外应该尽可能短,以最小化 AMM 流动性设置中未对冲德尔塔的敞口。同时,其他人可能会不同意大多数人认为,markout 周期应实际反映 LP 在 Uniswap 流动池中的停留时间,而在这一点上,考虑未对冲德尔塔随时间变化的影响是恰当的。我们在关于“最佳”或“理想”选择时持谨慎态度,认识到不同的视角可能导致读者偏好不同的 markout 时间段。尽管如此,我们认为比较在评估期结束时的累计 PnL 随着 markout 时间段从1秒增加到24小时的变化是有意义的。例如,在整个 Uniswap ETH/USDC 池的情况下,我们看到不同分析方法之间的差异似乎随着 delta 曝露的主导作用而趋近于零:

让人稍感惊讶的是,“原始”与“新”分析之间的累计 PnL 差异(分别使用标记时间段内最后一次交易的平均价格或最终价格计算 markout 价格)随时间减少。这可能反映了交易流的一些分布特性,例如,小交易后接小交易的可能性较高,大交易后接大交易的可能性较高;如果情况如此,随着 markout 时间的增加,我们预计这种影响会逐渐减弱,并且两种分析的累计 PnL 之间的差异趋向于一个固定值。然而,我们没有详细探讨确切原因,因为我们认为“新”分析(使用最后一次交易的最终价格而不是平均价格)在方法上比原始分析更优。

我们也可以合理地询问,当我们将不同的费用等级分开并为每个等级的活跃流动性单位进行标准化时,累计 PnL 的图是怎样的。例如,在 0.05% 的费用等级中,从 8 分钟开始,一直到 20 小时,所有 markout 时间段都显得非常清晰和持续地处于亏损状态,且 приблизительно 处于相同的数值水平,此后大幅下降:

0.3% 池也观察到了类似的质性模式,在 10 分钟到 8 小时之间,markout 相对稳定,接近于零(实际上这是一个比我们在 5 分钟 markout 中的发现更加乐观的结果!):

如何解读这些结果并不完全显而易见。然而,可以合理地认为,适当地考虑在任何给定时间内活跃流动性波动,从而得出反映长期处于池中且保持恒定活跃流动性的流动性提供者的利润或亏损的 PnL 值,会导致累计 markout PnL 强烈暗示,在 5 分钟后,微观结构效应、不利流动等大部分被考虑在内,在 10 分钟后几乎完全被考虑在内,导致 PnL 在 markout 时间段达到足够长的时长(大约 8 小时或更长时间)之前相对稳定,以允许积累大量未对冲的 delta。

这实际上是我们迄今为止得到的关于 LP 盈利能力的最乐观的看法!在问题的这一框架下,尽管显然 0.05% 池的流动性提供者正承受着巨大的损失(问题实际上只是这些损失的具体 有多大),但是在某些合理设置下(例如,每 30 分钟重新对冲 delta,但保持活跃流动性单位数量恒定),0.3% 池中的 LP 结果可能会接近于盈亏平衡,尽管不完全可盈利。

结论

总结一下,我们做出了以下观察:

  • @thiccythot_ 所做的原始分析可以通过使用池价格作为 markout 价格来改进,这往往会提高 LP 盈利能力的估计
  • 当使用池价格计算 markouts 时,LP 盈利能力的估计增加,在使用 5 分钟 markout 时,有些费用等级进入净盈利状态
  • 如果我们将每次交易标记为其最终边际价格,我们得到相当确凿的证据表明,0.05% 的费用等级几乎肯定在低估流动性;因为大多数交易量流入了流动性,因此它是导致 Uniswap LPs 主要损失的原因
  • 当我们使用 Binance 现货数据来计算 markouts(这在某种程度上提供了更不偏见的公平价格估计)时,我们得到了非常悲观的 LP 盈利能力估计,没有任何费用等级在 5 分钟 markouts 时显得可盈利
  • 较长的 markout 时间段本质上会使 LP 收益向下偏斜,因为会累积未对冲的 delta 曝露;因此,尽管使用 Binance 现货数据获取的 markouts 会使 LP 盈利能力的估计变坏,但整体情况不再那么糟糕,原始估计的 1 亿美元损失显然是不准确的
  • 我们可以估计一个平均流动性单位的累计 PnL,而不是整个池;通过这样做,我们发现跨费用等级的累计 PnL 仍然略微为负,但发现了一些模式,这些模式暗示了动态费用策略的可行性
  • 如果我们查看不同设置下累计 PnL 随着 markout 时长的变化(改变分析方法,分离费用等级,并按活跃流动性进行标准化),经验模式提示,5-10 分钟的 markout 时间段,甚至肯定的 20 分钟以上,足以捕捉相关的微观结构特征,而不会有过度的 delta 曝露,而 0.3% 池的 LP 在特定框架下原则上可能接近盈亏平衡

真是一次过山车般的不同发现!

即使有人认为 markout 并不是完全适合真实用户行为或偏好的指标,我们相信,我们已经解决了若干方法上的分歧,并提供了一系列有用的经验发现,关于 Uniswap V3 上 ETH/USDC 流动性提供者的盈利能力。最后,确切的分析程序的选择也许更属于艺术,而非科学。然而,总体而言,我们认为我们的结果清楚地表明,静态流动性等级,尤其是 0.05% 的等级,往往随着时间的推移而不准确地定价流动性,给 LP 带来巨大的损失。因此,这些发现激励了新一代 DEX 的发展,具备现代化能力,如动态交易费用和降低的 gas 成本,这可能帮助我们缓慢推进toward建立一个可持续的去中心化流动性生态系统。

-0xfbifemboy

  • 原文链接: crocswap.medium.com/usag...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
crocswap
crocswap
江湖只有他的大名,没有他的介绍。