Bond Valuation and Analysis in Python
Joshua Mayhew
Options Trader
deposit_fv = 1000 * (1 + 0.03) ^ 3
topup_1_fv = 100 * (1 + 0.03) ^ 2
topup_2_fv = 100 * (1 + 0.03) ^ 1
topup_3_fv = 100
print(deposit_fv + topup_1_fv + topup_2_fv + topup_3_fv)
1401.82
print(deposit_fv + topup_1_fv + topup_2_fv + topup_3_fv - 1000 - 100 - 100 - 100)
101.82
import numpy_financial as npf
?npf.fv
Signature: npf.fv(rate, nper, pmt, pv)
Given: * an interest `rate` compounded once per period, of which there are
* `nper` total
* a (fixed) payment, `pmt`
* a present value, `pv`
Return: the value at the end of the `nper` periods
npf.fv(rate=0.03, nper=3, pmt=-100, pv=-1000)
1401.82
How much do we have after 10 years investing $1,000 (no top-ups) at:
# Using annual compounding frequency
npf.fv(rate=0.05, nper=10, pmt=0, pv=-1000)
1628.89
# Using monthly compounding frequency
npf.fv(rate=0.05/12, nper=10*12, pmt=0, pv=-1000)
1647.01
# Using daily compounding frequency
npf.fv(rate=0.05/365, nper=10*365, pmt=0, pv=-1000)
1648.66
Bond Valuation and Analysis in Python