No.009 NumPy Financialを使ったFinanceの基礎

1.目的

A nearby penny is worth a distant dollar.「すぐ手に入る1セントは、将来の1ドルに匹敵する」ということで、お金の時間価値を表した格言です。

Pythonで金利の概念を計算していきたいと思います。Numpy-financialを使って、現在価値、将来価値、金利、期間等を計算します。

2.Reference

numpy-financial moduleの使い方を下記参考にしました。
numpy-financial

3.練習問題 (電卓を使った計算)

  1. 金利(年利)を10%とします。現在価値をJPY 100とすると, 1年後将来価値はいくらになるでしょう か?   答え:  100 * (1+0.1) = 110

  2. 金利(年利)を10%とします。1年後将来価値を120とすると, 現在価値はいくらになるで しょうか?  答え:  120 / (1+0.1) = 109.09…

  3. 金利(年利)を10%とします。現在価値を100 とすると、2年後将来価値はいくらになるで しょうか?  答え:  $${100*(1+0.1)^2}=121}$$

  4. 金利(年利)を10%とします。2年後将来価値を100とすると, 現在価値はいくらになるで しょうか?  答え:    $${100 / (1+0.1)^2=82.64…}$$

  5. 10年後に1000万円(将来価値)貯めたい。今持っている100万円(現在価値)を元手に投資することにした。毎年いくらのリターン(金利)が必要だろうか?  答え:  $${(1000 / 100)^{1/10}-1=0.2589…}$$

  6. 現在200万円の預金(現在価値)がある。何年後かに500万円(将来価値)の高級車を買いたいと考えている。あなたは投資に自信があり年利10%のリターンを得ることができる。何年後に購入することができるか?  答え:  $${ln(1000/100) / ln(1+0.1)}=9.61…$$

現在価値 =  PV (Present Value)
将来価値   =  FV (Future Value)
金利          =  r (The interest rate)
期間          =  t (Number of time periods)
PV, FV, r, t のうち3つが求められれば、残りの1つも求められます。
Fundamental Equation:  $${PV= FV / (1 + r )^t} $$

4.Pythonでの計算

Step1:  さて、pythonです。pythonでは numpy_financialというモジュールを使います。Installされてないかたは  anaconda powershell等でpip installします。

 $ pip install numpy-financial

Step2: jupyter notebookでnpfとして読み込みます。

import numpy_financial as npf

Python numpy-financialで将来価値/現在価値/期間/金利を計算するためには以下のFunctionを使います。
fv(rate, nper, pmt, pv)  -将来価値を求める関数
pv(rate, nper, pmt[, fv) - 現在価値を求める関数
rate(nper, pmt, pv, fv) -金利を求める関数
nper(rate, pmt, pv, fv) -期間を求める関数

fv, pv, rateは分かると思います。  nper は number of period のことで 期間 (t)のことです。
pmtはローン計算等で支払いがあるときに使いますが、今回の例題では無いので0を入力します。
pvとfvを入力する際の正負符号は逆にします。

では問題を解いていきたいと思います。

1.金利(年利)を10%とします。現在価値をJPY 100とすると, 1年後の価値はいくらになるでしょう か? 

npf.fv(0.1, nper=1, pmt=0, pv=100) 

ここがわかりにくいところなのですが、PVを正の値で入力した場合FVは負の値で出力されます。FV (将来価値)は110となります。

2.金利(年利)を10%とします。1年後将来価値を120とすると, 現在価値はいくらになるで しょうか? 

npf.pv(0.1, nper=1, pmt=0, fv=120)

同じくfvを正の値で入力しているので、pvは負の値で出力されます。

3.金利(年利)を10%とします。現在価値を100 とすると、2年後将来価値はいくらになるで しょうか? 

npf.fv(0.1, nper=2, pmt=0, pv=100)

4.金利(年利)
を10%とします。2年後の将来価値を100とすると, 現在価値はいくらになるで しょうか? 

同じくpvを正の値で入力しているので、fvは負の値で出力されます。


npf.pv(0.1, nper=2, pmt=0, fv=100)

同じくfvを正の値で入力しているので、pvは負の値で出力されます。

5.10年後に1000万円(将来価値)貯めたい。今持っている100万円(現在価値)を元手に投資することにした。毎年いくらのリターン(金利)が必要だろうか?

npf.rate(nper=10,pmt=0, pv=-100, fv=1000)

pvとfvは、どちらかを負の符号とする必要があります。

6.現在200万円の預金(現在価値)がある。何年後かに500万円(将来価値)の高級車を買いたいと考えている。あなたは投資に自信があり年利10%のリターンを得ることができる。何年後に購入することができるか?

npf.nper(rate=0.1,pmt=0, pv=-200, fv=500)

以上です。

この記事が気に入ったらサポートをしてみませんか?