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.練習問題 (電卓を使った計算)
金利(年利)を10%とします。現在価値をJPY 100とすると, 1年後の将来価値はいくらになるでしょう か? 答え: 100 * (1+0.1) = 110
金利(年利)を10%とします。1年後の将来価値を120とすると, 現在価値はいくらになるで しょうか? 答え: 120 / (1+0.1) = 109.09…
金利(年利)を10%とします。現在価値を100 とすると、2年後の将来価値はいくらになるで しょうか? 答え: $${100*(1+0.1)^2}=121}$$
金利(年利)を10%とします。2年後の将来価値を100とすると, 現在価値はいくらになるで しょうか? 答え: $${100 / (1+0.1)^2=82.64…}$$
10年後に1000万円(将来価値)貯めたい。今持っている100万円(現在価値)を元手に投資することにした。毎年いくらのリターン(金利)が必要だろうか? 答え: $${(1000 / 100)^{1/10}-1=0.2589…}$$
現在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)
同じく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)
以上です。
この記事が気に入ったらサポートをしてみませんか?