在Uniswap V3 中以正確的比例提供流動性需要考慮很多因素,例如時間間隔內的不同流動性值以及如何使用池數據來計算需要交換的代幣數量。
撰文:Mellow Protocol
合成:布萊克
各位好,客套話就不講了,讓我們傳播Uniswap V3 的數學邏輯吧!
我們將深入探討Uniswap V3 中流動性供應商的工作原理,如何調整兩種代幣的最大投資,從而使您產生的LP 頭寸,以及IL 降至最低。
Uniswap V2回顧:交易者的角度
Uniswap V2 是一個自動化的做市商,它允許:
- 交易者將一種資產另一種資產;
- 流動性提供者LP(LP)提供流動性並交易費用。
每個池內有兩種代幣:X 和Y。磷 個X代幣和Y磷 的Y代幣(也池池),則池流通性L定義為:
當前池中代幣的比例定義了當前的交換價格:
如果交易者想要交換y 個Y 代幣,他們將y 個代幣存入池中並得到x 個X 代幣。 x 由池使用以下等式決定:
這裡的ϕ是池費。對於Uni V2來說,它的數值是0.3%。
現在假當ϕ= 0 時,讓我們看看如果當前價格p = 1,池袋X磷=1,是磷=1,並且交易者想要交換交換y=1個單位的Y代幣會發生什麼。
圖1:Uniswap V2 交易者的角度
交易者將通知X 的x = 0.5 代幣。池儲備和價格將更新為 X磷 = 0.5, 是磷 = 2, p = 4。
我們當前價格=1時x=1,但實際x會受到損失,我們經歷滑點(sl=0.5):
好消息是sl→0,因為池流動性l增加或交換量減少,即為了交換交換量,您以價格p交換的交換量。
Uniswap V2回顧:流動性提供者的角度
現在讓我們看看如果p = 4,池準備金X磷 = 0.5,是磷 = 2,L = 1 並且流動性提供者等待時間x = 0.25 的代幣X 和y = 1 的代幣Y 會發生什麼。
圖2:Uniswap V2流動性提供者的角度
在這種情況下,池的新保留X磷 = 0.75、Y磷 = 3 和L² = X磷·Y磷 = 2.25,因此L = 1.5 並且流動性提供者以Uni V2 lp 代幣的形式收到ΔL = 0.5 的流動性。現在,在每筆交易中,流動性提供者將收到ΔL/L=1/ 3 資助的費用。
在這個例子中,我們故意使用x = 0.25 和y = 1 是流動性提供者的投資,因此y / x = 4 = p。
如果y/x≠p會發生什麼? ) = p。如果流動性提供者想要充分利用他們的幣並獲得最大的流動性,他們首先必須交易他們的代幣,以便代y / x = p 然後將他們的再生生物池中。
Uni V3 會怎麼樣呢?事實證明這更複雜了。
Uniswap V3:單倉
2021年5月,Uniswap團隊推出了V3。在Uni V3中,您可以將流動性上任何價格區間 [pᵃ, pᵇ]。只要價格在 [pᵃ, pᵇ] 範圍內,有流動性L 並時您的付款方式。當價格超出範圍內,您的價格不會到距離範圍內。
首先,讓我們考慮一個持倉且價格區間為 [pᵃ, pᵇ] = [0.25, 4] 的礦池。當前池準備金為X磷 = 是磷 = 0.5,價格為p = 1。
圖3:Uniswap V3 單倉
這裡的曲線是用於交換的實際代幣儲備(真實流動性曲線),紅色曲線是虛擬流動性曲線,模擬用戶在Uni V2 上進行交換。
我價格在 [0.25, 4] 範圍內,池的行為就與擁有流動性的UniV2池完全相同。當價格越界時,虛擬流動性降低零,實際流動性集中在X或Y代幣中,不用於交換。
Uniswap V3:多倉
現在讓我們看看如果在 [pᵃ₁, pᵇ₁] 上有兩個流動性投資x₁, y₁和在 [pᵃ₂, pᵇ₂] 上有x₂,y₂會發生什麼。
圖4:Uniswap V3 兩個倉位
可以宣告,當兩個短期都覆蓋價格時,兩個實際儲備都被使用,池虛擬流動性等於性總流動性和。當只有一個短暫的覆蓋價格時——僅其流動性。當價格在兩個期間以外的時間,流動性關係(或者您的不池任何費用)。
這為Uni V3 提供了一個獨特的特點——流動性功能。當價格虛擬化運動時,流動性價值在某些(即流動性頭寸的價值)上變化了一些ΔL。可以在圖3中看到在價格pᵃ₁和pᵇ₁處發生的這種跳躍。
月和月十
Uniswap V3 的實際情況比上顯示的要困難一些。在真正的Uni V3 中,你不能將流動性再現任何價格區間。取而代之的是,某個月在價格範圍內形成了一個離散的網格。週由定義定義(i 是可能):
每一個池,還有一個月亮間隔的概念。一周時間是周過的另一部分,它限制了你可以放置流動性的周末,例如,對於0.3%-費用的池週間隔是60,這樣你只在每60 分鐘的時間上放置流動性,例如,0, -60, 60, 120, -120, …
圖5:周和月曲
因為你的流動性價格區間是過生日,所以任何時間間隔內的流動性都是有限的,並且在價格過生日瞬間會改變。
因此,我們有一個流動性的功能,可能會在過早的時間突然發生(突然圖2)。
倉位的流通價值
讓我們看看流通性L是如何計算的,給定初始代幣x和y、價格區間 [pᵃ, pᵇ] 和當前價格p。
從這些等式中可以確認,如果x 和y 代幣的比例不正確(Lx≠Ly),那麼一些代幣將返回給這流動性提供者。與我們在Uni V2 中觀察到的行為類似。
但是對於Uni V3 來說,它更複雜,因為我們有流動性流動性,在時間間隔時間處跳躍函數。在下一章中,我們將展示如何在Uni V3 上以最有效的方式放置代幣。
有效的流動性提供
如果我們有一個由x 個代幣X 和y 個代幣Y 組成的投資組合,並且我們想為價格範圍 [pᵃ, pᵇ] 提供流動性,我們應該交換多少代幣X 或Y 來獲得最大的流動性?
為了這個問題,讓用R = y / x 來表示——我們投資組合中代幣的運動和rr r可以得出:
所以我們的目標是使R = rᵃᵇ。
然而,這任務比自己將x 和y 像這樣到了指定的足球rᵃᵇ 很像一些複雜的。當我們開始x 交換為y 或反之亦然,池價格p 開始變化,rᵃᵇ也是如此。這種行為圖所示:
圖6:將R 女到rᵃᵇ
另一層複雜的是,隨著價格變化以及其他時間間隔分時池流動性L 主要變化!為了解決使用問題,讓我們首先了解流動情況L 下,當我們代幣Y 交換代幣X 時,孩子R 生日。
從p和L²=xy = y / x很容易推導出:
因此,如果我們用Y 交換X,從Y 中交換,交換後的價格結算為p₁ (p₁ > p₀):
如果是用X 交換Y,則p₁< p₀,我們有:
下一個問題是:
R在什麼時間時會穿過整個時間以及流動性變化?
如果我們將表示為穿越上月的月月,R-表示下月的月牙,p₀是初始價格,p-、p+是各自在月上月的價格,L為每個月的間歇的流動性,然後我們得到:
最後,我們已經準備好解決問題。
首先,我們需要回答2個問題:
- R > rᵃᵇ(p₀) 嗎?如果是,我們需要將Y 兌換為X,否則的話將X 兌換為Y。
- 如果是-我們一直需要我們調整,就像我們一直交換到週末值,然後在新的流通中性上重複我們的算法。
這些問題的答案我們將看到4 個不同的案例中:
- 在一個週期間隔內用Y 交換X:R > rᵃᵇ(p₀), R+ ≤ rᵃᵇ(p+)
- 在一個週期間隔內用X 交換Y:R < rᵃᵇ(p₀), R- ≥ rᵃᵇ(p-)
- 在不同的每個週末中用Y 交換X:R > rᵃᵇ(p₀), R+ > rᵃᵇ(p+)
- 在不同的每個週末中用X 交換Y:R < rᵃᵇ(p₀), R- < rᵃᵇ(p-)
情況1:在一個每月間隔內用Y 交換X:R > rᵃᵇ(p₀), R+ ≤ rᵃᵇ(p+)
圖7:在一個每月間隔內將Y 交換為X。當我們從Y 交換到X 時,價格增加到p₃,R 減少到R+,而rᵃᵇ 增加到rᵃᵇ+。由於原來的R > rᵃᵇ 且R+ ≤ rᵃᵇ+ ,因此可以保證R = r 在每一輪間隔內。
如果我們用y 交換x 並且交換後的價格穩定在p₁,我們只需要確保Ryx(p₁) = rᵃᵇ(p₁):
如果我們假的z = 又醜又√p的項,我們將得到一個二次驚喜:
因此我們可以求解它並找到p₁:
要交換的代幣Y 的數量是:
情況2:在一個每月間隔內用X 交換Y:R < rᵃᵇ(p₀), R- ≥ rᵃᵇ(p-)
圖8:在一個每月間隔內用X 交換Y。當我們從X 交換到Y 時,價格下降到p₂,R 增長到R-,而rᵃᵇ 下降到rᵃᵇ-。因為最初R < rᵃᵇ R- ≥ rᵃᵇ - 可以保證R = r 在每個時間間隔。
我們情況與情況1 非常相似,除了我們是將X 交換為Y,因此我們需要確保Rxy(p₁) = rᵃᵇ(p₁):
與情況1類似,我們可以得到:
要交換的代幣X 的數量是:
情況3:在不同的一周間隔中用Y 交換X:R > rᵃᵇ(p₀),R+ > rᵃᵇ(p+)
圖9:在不同的每個月間隔中將Y 交換為X。當我們從Y 交換到X 時,價格會增長到p2,然後增長到p₃,R 減少到R+,而rᵃᵇ 增加到rᵃᵇ+。因為最初是R > rᵃᵇ和R+ > rᵃᵇ+,因此當交換我們到R=r = rᵇᵇᵇ,可以保證價格將rᵃᵇ全程一周
在這種情況下,我們將Y 交換為X,直到R = R+ p = p+ 記得我們還會有新的流動性的某個時間間隔中。我們我們交換了多少個Y 標記,以便稍後將它們添加到最終數字中。然後我們開始重新開始並重複,直到我們遇到案例1。那我們就重新定義:
情況4:在不同的每個月間隔中用X 交換Y:R < rᵃᵇ(p₀), R- < rᵃᵇ(p-)
圖10:在不同的一周間隔中將X 交換為Y。當我們從X 交換到Y 時,價格下降到p₃然後到p₂,R 增加到R-,而rᵃᵇ 減少到rᵃᵇ-。因為最初R < rᵃᵇ和Rᵃᵇ-可以保證在我們交換
與情況3 相似,除了我們將X 交換為Y,直到R = R-並重複直到我們遇到的情況2。我們重新定義:
結論
在Uni V3 中以正確的比例提供流動性是非常複雜的任務。你需要考慮很多因素,例如每個月間隔內的不同流動性。上面的算法描述瞭如何使用值池數據來計算需要交換的代幣幣數量最高的流通性。
數字圖表可在此處獲得:
https://www.desmos.com/calculator/rqbrnapxbj
https://www.desmos.com/calculator/ys7kcfgjxe
https://www.desmos.com/calculator/ehdwkbtu7z
在以後的文章中,我們計劃討論Uni V3 的其他方面,如無常損失、多頭投資組合、策略風險等。
Mellow Protocol 正在探索AMM 的流動性提供和做市空間。您還可以在 這裡
查看我們的研究論文。
我們將其體驗到一種產品,我們將其體驗到真正的數學可以為DeFi 領域帶來並且帶來的收益。與Uniswap 和Curve 創新用戶交易體驗的方式類似,我們相信LP 優化體驗分享的業績。
在接下來的文章中,我們將討論有關如何實施適當的再平衡策略的更多建議,並會繼續討論DeFi 中更廣泛的主題。