サルでもできるuniswap V3 集中流動性のインパーマネントロス(と集中度)の計算方法とシミュレーター ~JPYC-USDCを例に~

uniswap v3難しすぎる!
※本記事は金融助言ではありません、記事及びシミュレーターを参考・使用した結果について、一切責任は取れません。
HiDEの皆さん初めまして、親からもらった教習所代横流し仕送り前借り奨学金全ツッパトレーダーの29おじです。
実は先日まで、Uniswap v3で流動性の設定したレンジの端っこの価格になってしまったら、インパーマネントロス(Impermanent Loss,通称IL)が50%になると無条件に思っていたのですが、全然違うことが判明しました。
きょろなっつさんのUniswap v3インパーマネントロスの記事(下記URL)に書いてあることが全然わからず(きょろなっつさんごめんなさい)、一番最後にある具体例が50%だったので、「uniswap v3って端っこに行ったらIL50%だよ怖すぎ……」と勝手におびえてました
https://alis.to/lisalisa/articles/3Vjl8bqdqGJz
事実は全然違うと判明したのは2日前。私はJPYCファンコミュニティの運営をしているんですが、そこでILの話になり、「uniswap v3のILって端っこ行くと50%ロスなんですよね?」と言ったら、ちゃんと理解してらっしゃるファンコミュメンバーのitoさんからツッコミが。
途端に湧き出る脂汗。慌ててきょろなっつさん作成の記事を読み返した所(その日で読むの5回目くらい)、やっと理解できました!(遅い)
きっと同じ感じになっている方もいると思うので(*0)、数学的厳密性とか導出方法ははしょって、「何が分かって、どうすればIL(および集中度)を求められるのか」に重点を当てて解説しようと思います!厳密性を求める方は引用元の記事を読んで下さるようお願いしますm(_ _)m
計算なんて、どうでもいい、一秒でもはやくILが知りたいんだ!というそこのあなたは一番最後にシミュレーターのURLを貼っておいたのでそちらを。
一応数学の教育実習にも行ったことがある(*1)ので、わかり易く解説できる……はず!
何が分かればILは求められるか
- 流動性を提供し始める時の価格(Pinと置きます、以下同様)
- 流動性を提供し終えた時の価格(Pout)
- 流動性の設定幅の最大値(Pmax)
- 流動性の設定幅の最小値(Pmin)
以上の4つが分かれば(設定すれば)ILを求めることができます。(基準は全部統一して下さい。ETH/BTCで計算するなら、全部BTC建てかETH建てのどちらかに統一して4つの価格を設定して下さい)
次に、その4つを以下の数式に代入して計算すると、求めることができます!(意味不明だったらその次の計算方法に飛んでください!)
ILの式
です!(まさかの手書き(*2)
これでIL分かった方はもう閉じてOKです!
意味不明なそこのあなた!大丈夫です!
それぞれの部分をA,B,Cとおいて一緒に計算していきましょう!
計算方法(JPYC-USDCを例にして)
計算するために、例を設定します。
例)1USDC=121JPYCから144JPYCでレンジを設定した集中流動性を、1USDC=132円のときに提供して121円(あるいはそれ未満)の時に提供をやめる
Pmin = 121, Pmax = 144, Pin = 132, Pout =121 となりますね!
Aの部分について
まずwindowsで電卓を起動します。
Pout(121)をPmin(121)で割って、更にルートを付けます(画像の青で囲ったボタンを押す)
そのあと2をかけるとAが求まります。A=2
Bの部分について
Pmin(121)とPmax(144)を掛け算して、ルートを付けます(132)
Pout(121)を上の値(132)で割った値(0.91666...) に1を足します
B=1.91666...
Cの部分について
Pout(121)をPin(132)で割って、それに1を足した値(1.91666...)と、Pin(132)をPmin(121)で割った値(1.0909...)にルートを付けたもの(1.04446...)を掛け算します
C≒1.91666*1.04446≒2.00187
ILを計算しよう
A-Bと、C-Bを計算します。(それぞれ0.08334,0.08521)
前者を後者で割った値(0.97805)から1を引くと、ILが求まります。
IL=-0.02194
例の場合、**ILは大体2.2%**となります!
集中度の式
はい、意味不明。ルートについてる4って何?となったそこのアナタ!大丈夫です!
windowsの電卓で計算できるので心配なく。
集中度の計算方法
ILと同じ例で計算します。
Pmax(144)をPmin(121)で割って、ルートを付けるボタンを2回押します(*3)。(値は1.0444....)
そのあと、ルートを付けるボタンの2つ左隣の「1/x」のボタンを押して(*4)、0の左隣のプラスとマイナスを切り替えるボタンを押して、1を足します(値は0.04257....)
(導出には青で囲んだボタンを使います)
最後に、もう一回「1/x」のボタンを押すと集中度が求められます。
集中度=23.489...
JPYC-USDCペアを、1USDC=121JPYC~144JPYCのレンジで流動性すると、uniswap v2で普通に流動性提供するのに比べて、約23.5倍の流動性を提供できる、ということですね!(その分、ILも上記の様に大きくなる。
シミュレーターも作ったよ
計算したくないんじゃぁぁぁというそこのアナタのためにシミュレーターも作りました!
https://docs.google.com/spreadsheets/d/1dNGzF6M0MayEYciaC8r-loDxDn2Bj-8CQf0mNk33mLg/edit?usp=sharing
ファイルを複製してぜひ使ってね♪ついでに投げ銭もしてね♪
宣伝
JPYCというみんなで育てていくタイプのステーブルコインのファンコミュニティ運営をしています。
クリプト歴何年もの手練から始めたばっかりの人まで、いろんな人がいて面白いからぜひ遊びにきてね!
polygonチェーンにJPYCが対応してるのもあり、手前味噌ながらpolygonのDappsの情報は結構日本でも集積していると思ってます。
最後に、集中流動性の解説記事を書いて下さったきょろなっつさんに感謝申し上げます。
最後の最後に、アイキャッチ用の富山県魚津市のゆるきゃら「ミラたん」の写真を。
かわいい!
*0 いや、私だけ……?
*1 なんで数学の教員免許取ろうとしてたくらいなのにきょろさんの記事が理解できなかったのか……涙 ちなみに「集合位相論」の単位が取れなかったので数学の教員免許は2単位だけ残して取れませんでした!w
*2 数学の教員免許取ろうとしてたのにTeXも使えないなんて、そんなことはありませんよハハハ……HAHAHA!
*3 ルートの横に4って付いてるのは、数学的に言えば「1/4乗」といって、私達が普段つかってるルート(1/2乗)を2回くっつけたものだよという意味です。
*4 数学用語で逆数をとるといいます