火币研究院:AMM做市无常损失对冲分析 损益及期权对冲模型构建

  新闻资讯     |      2024-08-13 20:14

  火币研究院:AMM做市无常损失对冲分析 损益及期权对冲模型构建流动性做市是市场的热点之一,在Automated Market Maker系统下流动性做市商的本金会有无常损失。本文首先介绍了AMM做市机制,并且深入的分析了在该机制下为什么会形成无常损失。

  其主要原因是在AMM机制下如果流动性池中的非稳定资产价格上涨或下跌,做市商会完全自动的与市场一般交易者做出相反的行为,越涨越卖,越跌越买,因此池子中资产价格上涨,其数量就会减少,资产价格上升,其数量就会增加;之后我们重点分析了,对于一个非稳定币和稳定币币对的流动性池而言,AMM机制影响流动性做市商损益的全部因素,主要有四个方面,分别是Gas费用、交易手续费、非稳定币价格变动带来的损益和无常损失,并通过精确的计算展示这些因素对LP供应商损益的影响。

  最终我们合并推导出了在AMM机制下的非稳定币-稳定币流动性供应商的底仓随着价格波动带来的损益情况的综合损益计算公式。该公式可让市场中流动性做市商实现精确风控,并且为后续准确计算对冲产品打下基础。希望对各位参与流动性做市能有一定的帮助。

  我们根据综合损益公式和市场上现有可用的衍生品,精确测算了对冲方案。合约产品由于线性工具的特点不能很好地覆盖非线性的风险,因此不适合做对冲。我们发现理论上效果比较好的对冲方案是根据质押池中的非稳定币资产量,买入2份看跌期权和1份看涨期权。实际操作来讲如果考虑成本看涨期权可以考虑通过主动操作的方式来替代。

  对于场内期权产品也同样的存在一定的问题,主要体现在时间周期的覆盖和市场深度的不足。因此对于大体量的流动性做市商而言,定制化的场外期权产品可能是目前最佳的选择。

  近期很多加密数字货币投资者看到Defi项目层出不穷,市场中似乎都在挣钱,所以自己也按捺不住地想要参与。过程往往是投资人随即查阅相关的资料之后又和朋友了解了一下,发现大部分火热的项目都是要质押等量的两个币种,进行流动性做市,虽然还不太明白,但是网页上都写了有非常诱人的百分之好几百的年化收益,还有安全代码审计,问题应该不大。稍微查询看到很多挖矿攻略,发现好像就是转账质押之后就可以领到很多新的代币,并且代币直接拿到交易所里卖掉就可以挣钱了,于是就加入了流动性做市大军的行列。但是世事难料,质押池中的以太坊价格出现了大幅下跌,并且挖出来的治理代币价格也下跌了,投资人赶紧把资金撤出了流动性池,发现质押的币的比例变了,拿到了更多的价格更低的以太坊和更少的另一个高价值的代币。在卖掉奖励的代币之后,整体算下来自己的流动性挖矿并没有达到之前网页上写的好几百的年化收益率。收益少的可怜,可能还亏了钱,所以到底问题出在哪?有没有什么方法可以对冲掉这种损失呢?

  从上面的例子中不难看出,投资人参与的是由Uniswap设计的Automated Market Maker(AMM)机制下的各种项目的流动性挖矿活动。目前很多参与者都没有意识到参与流动性做市并不是无风险的,反而随着价格波动,做市的资金可能会出现一定的损失。这些风险主要来自于AMM机制所蕴含的无常损失。

  首先介绍一下Uniswap设计出来的AMM自动做市商机制。自动做市商的核心做市公式为:X×Y=K。

  这个公式的意义就是每次有流动性提供者存入资产乐鱼官网,计算两种资产数量的乘积,并保持恒定。存入的比例就是某时刻该资产的价格。例如某时刻ETH的价格是440 USDT,做市商就需要存入10个ETH和4400个USDT,乘积为44000。对于交易者而言,实时兑换用440USDT和千三的手续费就可以从流动性池中兑换1个ETH。在这个机制下做市商(流动性提供者/LP)需要存入等值的两部分资产后就可以获得流动性池的分红权益,其中包括LP Token和对应比例的手续费。

  假设最初有A和B资产的流动池,先不考虑手续费影响。做市商们最初冲入了 1000 枚 A,2000枚 B 时,这时根据上面的公式X×Y=K,可以算出常数K也就是乘积为 2000000。此时市场上的交易者认为每枚A的价格为2B非常合理,把手中的A换成2枚B很划算。交易者就立刻充入1 枚 A,那么上面公式中的 X 变为 1001,为了保证 K 仍然等于 2000000,则 Y 需要变为 1998,那么多出了2枚 B 正好给到交易员的手里。

  当然交易者不可能只有一个,很多人都会发现这个划算的交易。纷纷想去用1个A换2个B,由于供需的变化,A和B的价格也就会发生变化,因此慢慢随着交易的进行,流动性池子中A和B的比例就会发生变化,最终可能变成2000枚A和1000枚B,常数K,也就是乘积还是2000000,相对的A和B的兑换比例也就是相对的价格同时也是动态变化的。现在就需要2枚A兑换1枚B了。当然如果随着市场变化,A的需求上升,投资人同样还会进行反向操做开始用B换A,A和B可能会回到之前的比例。

  最终在这个案例中交易者们相当于从1A=2B的价格开始,一点点的用A从做市商手里换走了B,一直到2A=1B的价格的时候才停止,交易者们相当于总共卖出了1000枚A换来了1000枚B。于此同时做市商们则完全自动的进行了相反的交易。

  我们可以通过对上述实例的观察,总结出无常损失产生的过程。无常损失的产生与AMM模型密切相关。由于公式中的常数K恒定,做市商的交易行为就被确定了。在此我们简化一下变量,方便思考做市商的交易行为。我们假设池中一个资产的价格不变,另一个资产价格是不停变化的。这时如果非稳定资产价格上涨,做市商会完全自动的与市场一般交易者做出相反的行为,越涨越卖,因此池子中价格上涨的资产数量就会减少;相反非稳定资产价格下跌时,做市商同样会完全自动的与市场做出相反的行为,表现为越跌越买,因此池中价格下跌的资产的数量就会增加。这就是无常损失产生的过程。

  举个简单的例子:当1 ETH= 500 USDT,做市商存入10 ETH和5000 USDT。他的总资产价值是10000 USDT。当1 ETH= 550 USDT时,这个时候就存在套利的空间,做市商流动性池很快会随着交易者进行交易不断的买入ETH,最终价格很快会与其他市场价格同步,在AMM机制下,做市商就会自动卖出ETH换取USDT,因此,目前流动性池中资产变为9.53 个ETH和5244个USDT,对应的ETH的价格为550USDT,总资产价值是10488 USDT。如果不去做市USDT本位的价值为10500,这个价格变动里包含ETH涨价带来的500USDT和相对的112的USDT无常损失。相反的,当价格下跌1 ETH= 450 USDT时,套利者会来买入ETH直到ETH的价格与市场价相同,因此做市商的流动池就变为10.54 ETH和4743 USDT,总资产价值是9486 USDT。如果不进行做市活动,总资产价值是9500USDT。相对来看整体资产贬值了500 USDT,进行做市额外还损失14 USDT。从实际例子中不难看出不论价格涨跌,在AMM机制下,流动性供应商的反向操作都会造成一定的无常损失。

  通过实际的观察AMM做市主要面临几个维度的风险,最基础的是智能合约风险,项目是否开源代码是否经过审计,有些时候就算是经过审计仍然可能存在一些漏洞。流动性质押池的本金安全是通过智能合约的代码来保障的。本文不深入讨论这点,但投资者应该把这个作为最基本的对项目的判断。其次是质押池内部的金融风险,这个主要分为两部分,一是流动性质押池的资产比例情况,之后则是价格波动和AMM自身机制造成的包含在金融风险中的价格波动风险和无常损失结转风险。这两个风险是本文重点计算和讨论的对象。

  现有的研究提到过无常损失这个概念。由于之前的研究涉及了经济学中机会成本的概念,使得无常损失变得更加难懂。流动性做市商往往只有似懂非懂的概念,大致是知道有个风险在,并且只能祈求行情不要出现大的波动,就不会承担这个风险了。

  现有的根据机会成本概念推导的公式在实际操作的过程中不能让市场内的做市商直接使用。流动性做市商不能直接根据公式用价格波动比例计算自己的盈亏比例。目前的情况是投资人要计算收益的话,往往都要等完全清算完所有资产之后,在通过比较最终总金额和初始投资才能计算出自己的收益情况。在挖矿过程中就算出现了亏损其实也无法获知,想执行一些风控策略就很困难。更进一步的,如果想计算风险对冲策略更是无从下手。还有一些研究只是朦胧的提出了对冲方式,但是没有准确的计算,并无法确认对冲效果。本文将着重介绍通过数理方法计算质押池中资产变化的损益情况,并且推导出了准确的计算公式。此方法为之后对冲流动性质押带来的价格波动风险和无常损失结转风险提供了可以设计对冲方案的基础。最后我们会根据综合损益公式和现有的产品研究可能的对冲方案。

  为了弄清楚在AMM机制下做市商的损益情况,我们总结了所有影响损益的行为,按照性质进行了分类整理。假设我们把流动性做市获得的治理代币带来的收益当作初始收入,在AMM机制下LP供应商的损益情况分析如下:

  流动性供应商有4个方面需要考虑收益和损失:1)链上转账Gas费用,2)LP做市手续费收入,3)价格波动带来的损益,4)AMM机制造成的无常损失。

  转账手续费的损失主要是ETH链上转账产生的Gas费,这是个相对固定的值,其影响会随着资金体量的增加递减。为方便计算和绘制损益图,我们在下文的所有计算中将Gas费用相对于流动池价值的比例设置为一个常数。假设所有Gas费的总和是总LP资金池的0.05%

  这里假设平均24小时流动性池成交额度与当前流动池价值一致,则收益变动率随价格变动的公式如下:

  做市手续费的收入比例是基于流动池价值变化的比例,将上述公式综合一下就得到收益变动率随价格变动的公式。

  这部分收益和市场繁荣度有关。而且年化来看如果日交易量能达到质押池的100%,年化收益率=0.03%*365=109.5%,这部分年化收益率不容小觑。

  无常损失的具体细节前文之中已经仔细介绍过了。从机会成本的角度考虑,假设把没有提供流动性的组合价值变化与提供流动性后LP池的价值变化做对比,推导出无常损失的公式如下:

  其中,%Price Change是当前非稳定币价格变动比例,%Impermanent Loss是当前流动性池中的资产价值与该资产组合如果不提供流动性做市的价格变化比。

  这个损益图很明显的表明我们前文例子推断出的结论,也就是不论价格涨跌,由于AMM机制下流动性供应商的反向操作都会造成一定的无常损失。

  对于无常损失,如果价格波动最终回到质押初始的价格,这部分损失不会真实存在,但这种情况一般只出现在非稳定币价格稳定时。实际操作中往往价格不会回归到质押时的原点,无常损失最终会结转为真实损失。因为挖矿的周期不长,遇到的行情更有可能是单边行情,比如单边上涨或者下跌,这也是目前让很多参与流动性挖矿的投资人最困惑的一部分损失。

  上面的公式可以清晰的表现出机会成本的变化。但是就实际操作而言,LP供应商无法直接通过这个公式计算损益。因此我们从实际操作的角度将公式进行了转换。将无常损失转换为相对LP池价格初始价值的损益。

  这里的Real Loss Ratio的计算逻辑是当前LP池的价值相对初始投入的绝对价值的变动即

  根据上述公式,我们可以绘制出LP供应商和非LP供应商持有相同资产时损益随着价格变动的对比图:

  图中蓝线是同样资产下非LP供应商价值随价格波动的损益。图中橙色的线是对应相同资产LP提供者的损益情况。

  在上涨行情中,LP资产的短时收益会和非LP的收益基本持平。只有超过交点涨幅后才会出现分化,交点在价格上涨大致50%的位置,受到Gas费用和手续费的轻微影响。

  大致在下跌行情中,LP质押资产的亏损速率不像非LP的资产是恒定的,而是不断加速的,这是由无常损失造成的。

  经过上面的分析,我们不难看出随着币价波动在AMM机制下做市商主要要对冲2部分的损失。一是币价下跌造成的损失,二是随着不论非稳定币价格涨跌,随着其价格变化幅度的增加造成的无常损失。对于无常损失我们可以判断AMM做市机制下流动性做市商的交易策略与不做市只持币相比是凹的(concave),塔勒布(Nassim Taleb)对于风险投资的建议是在冒险时需要保持凸性(convexity),也就是不论价格向上还是向下都有对冲方案。基于这个原则我们对目前市场中可用的产品进行了选择。目前主要可用的产品有币种丰富的合约产品和主流币种为主的期权产品。

  目前市场中比好用的对冲工具是合约产品,经过上篇分析,我们看到LP供应商的损益不是线性的,那作为线性工具的合约产品不能很好地覆盖非线性的风险,下图为使用合约对冲的效果。在非稳定币价格下跌时,整个流动性池的价值加速下跌,在非稳定币价格上涨时,整个流动性池的价值缓速上涨,那如果我们做空合约来保护,在币价下跌时不能完全覆盖损失,在币价上涨时合约价值线性下跌,损失的速度比流动池价值增长的速度快,于是就造成下图的对冲效果。用合约产品套保并不合适。

  目前流动性做市的时间都不会很长,所以也不用购买非常远期的期权。期权内的时间价值并不高,因此期权价格也会相对便宜。从损益图上来看,大致使用深虚期权即可,因为平值附近的虚值期权价格较贵,会产生较大的成本,从绝对价格看深度虚值期权价格相对便宜,。

  比如使用看跌期权对冲非稳定币币价下跌的风险,在低于设定执行价格时,看跌期权的损益图与合约一样是线性的,如果采取买入量和流动性池中的质押量1:1对冲,在极端情况下可以对冲掉50%的损失。在非稳定币价格上涨时,该看跌期权的损益是0,不会对LP流动池的价格造成影响。

  价格变动的收益图如上。图中的展示的测算的是行权价在非稳定币初始价格80%处的看跌期权和140%处的看涨期权。

  我们首先单独测算了期权产品对冲无偿损失部分。使用看跌期权和流动性池中非稳定币价值1:1,对冲结果如下图:

  可以看出在价格变动较大时完全覆盖了无常损失。同时从上图看出,在价格变动不大时,对冲之后的损失略大于无常损失,这是因为这个价格区间不在期权的行权区间内,但我们付出了权利金,产生了一定的成本。

  根据之前的损益模型计算,在价格涨幅到约50%的时候上涨的收益才会出现分化。因此在对冲上涨的无常损失的时候看涨期权价格可以为平值的大约1.5倍。

  在下跌行情中,需要对冲无偿损失和实际价格下跌的两部分损失。我们先测算了看跌期权和看涨期权与流动性池非稳定币资产价值1:1的对冲方式。结果如下图:

  不难看出,在非稳定币价格上涨到对冲区间时,1:1买看涨期权不仅可以对冲掉无常损失,还能带来额外的收益。在极端情况下,1:1买看跌期权只可以对冲掉50%的损失。因此我们调整了看跌期权的比例,用2份看跌期权:1份看涨期权进行对冲,结果如下图:

  通过这种方式,只要时间周期可以完整覆盖流动性做市质押周期,对于非稳定币-稳定币流动性质押池中的资产可以做到基本无损挖矿,并且还有稍微的正向收益。

  我们以HuobiGlobal的ETH期权产品举个例子。当前是9月26日,参与ETH-USDT池的流动性做市,ETH的价格是350 USDT,一般挖矿周期较短,选择当周到期的行权价为270 USDT看跌期权来保护价格下跌风险,距离交割还有7天,1ETH的标记价格为2.64 USDT。当挖矿到期时,ETH的价格变动整体带来的损益如下图所示。当跌到行权价270以下时,看跌期权开始起到保护的效果。

  从图中可见买入和非稳定币总量1:1看跌期权能起到一定的对冲作用但是,流动性池中的资产在价格下跌的时候仍面临较大的风险。

  看涨期权方面,我们认为实际操作中由于价格涨幅超过50%才会开始分化,对于价格相对稳定的币种,这种情况的可操作空间极大,因此可以考虑不进行买入看涨期权进行对冲。可以根据行情主动操作节约成本。

  通过实际案例我们可以看出买入两份看跌期权基本可以覆盖住流动性做市的主要风险。如果非稳定币币价波动很大,

  通过实例我们不难看出场内期权也可能存在一定的问题,主要体现在对于时间的覆盖不准确和市场深度的不足。

  场内期权是标准化产品,行权价和到期日是平台已经设定好的,与挖矿的周期匹配的概率不大,如果无法匹配,做市商只能选择比挖矿周期略长的期权产品,到期可以将期权平仓。会有额外的成本消耗,可能还需要一些额外的主动交易操作。

  另外,受于市场深度的影响,如果挖矿资金体量比较大,可能买不到完全覆盖风险的额度。关于这点由于期权市场存在买卖双方的供需关系,随着市场需求的增大这个问题可能会逐步缓解。

  场外期权有以下几个优点,比较契合流动性做市商的需求。首先对冲标的可定制化,这更加契合流动性做市商的需求,这让流动性做市商的流动性池的有了更多的选择。其次是行权灵活,因为这个特点流动性做市商可以和场外期权供应商约定行权周期,因此场外期权可以精确覆盖流动性做市商完整的做市时间周期。最后是杠杆灵活,场外期权可以选择不同行权价格以及期限的特点,使得期权的杠杆是可调节的,这提高了流动性供应商的资金使用率。

  最后场外期权由于专业性极强,供应商的信誉背书也非常关键。因此在选择场外期权供应商的过程中其实还要注意供应商的兑付风险。

  目前根据现有的2:1的期权对冲方案基本可以覆盖住之前识别出价格波动风险和无常损失结转风险。但是同时也引入了一些新的风险点。由于我们使用期覆盖的是长尾风险,在发生极端行情时,期权的兑付风险就值得关注,在今年3月的极端行情中,某知名平台自己通过垫付的形式才保证了期权的兑付。对于这一点,选择卖方100%保证金的期权市场可能是个更好的选择。另外如果采用场外期权,供应商的兑付能力就更加值得关注。

  本文通过精确的计算,推导出了在AMM机制下的非稳定币-稳定币流动性供应商的底仓随着价格波动带来的损益情况的综合损益计算公式。该公式可让市场中流动性做市商实现精确风控,并且为后续准确计算对冲产品打下基础。之后本文根据市场中现有的金融衍生品探讨了可能的对冲方案。由于可以计算,我们可以得出精确的对冲结果,合约产品在对冲无常损失方面,由于合约产品是线性工具不能很好地覆盖非线性的风险。目前来看期权产品比较符合我们的对冲需求,从成本考虑用标准化的期权买入和非稳定币资产总量两倍的深虚看跌期权进行对冲,可以覆盖绝大部分损失。但是在时间周期和市场深度方面可能会有一些问题。因此,大体量的流动性做市商使用定制化的场外期权可能是目前最佳的风险对冲的选择。

  目前的研究是基于一个稳定币-非稳定币对的研究。我们目前已经完成了双非稳定币的计算和推导。预计在后面火币研究院《AMM做市无常损失对冲分析系列(二)——双非稳定币流动性池的损益与对冲》文章中详细介绍。