※本記事はQiitaに掲載されていたものの転載記事です。
APRとAPY
DeFiで資産を運用する場合に、得られる利率として「APR」と「APY」の二種類の表記があります。
一文字違いなので紛らわしいのですが、それぞれ下記のような略語となっております。
- APR – Annual Percentage Rate (年換算利回り)
- APY – Annual Percentage Yield (年間利回り)
「何の略語なのか分かっても違いが分からねぇ……。」という声が聞こえそうですが笑
単利と複利
これらの違いは「単利か複利か」の違いになります。
具体的には前者のAPRは単利で換算した場合の利率、後者のAPYは複利で換算した場合の利率です。
DeFiの場合にはものによっては毎秒(!)利子がもらえて、もらった利子にさらに利子がついて……という無限ループになりますので、瞬間風速的な利率はAPRで計算されますが、例えば一週間後にいくらになるかといった値はAPYを見る必要があります。
伝統金融においては債権は比較的長い一定の期間(1年とか)が経過しないと利子はもらえないため、例えば1年償還で年利10%であれば、10年間複利で運用した場合は 1.1^{10} = 2.59 = 15.9\%/\text{year}
と比較的簡単に計算できます。
DeFi市場における計算公式
ではこれが毎秒償還されるようなDeFi市場ではどう計算できるでしょうか?
基本的な考え方は1年償還のものとほぼ一緒ですが、償還間隔が1年未満であることを考慮して割り算して、その分べき乗の回数を増やすだけです。
これをきちんと数式で示してみましょう。
以下のように変数を設定します。
r_\text{APR}
– 年利 (%)t
– 償還間隔 (秒)T
– 1年間の秒数 (つまり、365 \times 24 \times 60 \times 60 = 31536000\text{秒}
)
すると、一回の償還期間における利率は r_\text{APR} \times \frac{t}{T}
になりますから、これを一年間の償還回数 \frac{T}{t}
回だけ掛け算すればいいですね。
つまり、
\displaystyle r_\text{APY} = 100 \times \left( \left( 1 + \frac{r_\text{APR}}{100} \cdot \frac{t}{T} \right)^{\frac{T}{t}} - 1 \right)
となります。
途中の計算でパーセント単位の利率を何倍かの値に変換しないといけない (例えば 10% ならば 1.1 にしなければいけない) ため少々複雑ですが、よ〜く数式を読み解けば分かるはずです。
指数関数近似
さてさて、厳密な式としては上記のとおりなのですが、上の式を見てなにか気づかないでしょうか……?
そうです!
なんか自然対数の底 (ネイピア数) の定義みたいな式ですね!
自然対数の底の定義式は
\displaystyle e = \lim_{n \rightarrow \infty} \left( 1 + \frac{1}{n} \right)^n
でしたね。
少し変形すると、任意の実数 x
に対して
\displaystyle e^x = \lim_{n \rightarrow \infty} \left( 1 + \frac{1}{n} \right)^{nx} = \lim_{n \rightarrow \infty} \left( 1 + x \cdot \frac{1}{n} \right)^n
が成り立ちます。
さて、ここでAPYの計算式の\frac{T}{t}
というのは非常に大きな値であったことを思い出すと、n = \frac{T}{t}
とおいてしまえば
\displaystyle r_\text{APY} = 100 \times \left( \left( 1 + \frac{r_\text{APR}}{100} \cdot \frac{1}{n} \right)^n - 1 \right) \simeq 100 \times \left( \exp\left(\frac{r_\text{APR}}{100}\right) - 1 \right)
と近似することができます。
これなら覚えやすい簡単な式になりましたね!
グラフ
APRとAPYをグラフにするとこんな感じになります。
厳密解と指数関数近似は重なってしまって違いがほとんどわかりませんね!
またAPRが20%程度になるとAPY換算では22%ほどになり、一割ほど実質収益が増えることが分かります。
APRとAPYの差は指数関数的に増えていきますので、APRが高ければ高いほど、APY換算での実質収益はますます増加していきます。
⇧ の計算テーブルは以下をご参照ください。
https://docs.google.com/spreadsheets/d/1ed2eF2hhpo33EIDsowjYFDuaJ5asyj9_zc1UX7c0erE/edit?usp=sharing
複利の計算は足し算と掛け算しか使いませんが、高校数学の知識を使うと指数関数で近似できるというのはなかなか面白かったのではないでしょうか?(当たり前なんだけど)
ではでは!