numpy中的金融函数

fv: Futrue Value          终值

pv:Present Value          现值

npv:Net Present Value 净现值,净现值是指投资方案所产生的【现金净流量】(流入-流出)以资金成本为贴现率折现之后与原始投资额现值的差额

pmt:Payment               每次所要还的本金加利息

ppmt:Principal Payment    每期所还的本金

ipmt:Interst Payment      每期所还的利息

irr:Internal Rate of Return 内部收益率,内部收益率

mirr:Modified Internal Rate of Return 修正内部收益率

nper:Number of periodic payments 付款期数

rate: 利率


numpy.fv(rate, nper, pmt, pv, when='end')   #计算未来的值

#例子:年利率为5%,每年定期存款14000,40年为累积财富为1691196.84

In [4]: np.fv(0.05, 40-1, -14000, -14000)
Out[4]: 1691196.839394904


numpy.pv(rate, nper, pmt,fv=0.0, when='end') #计算现值

#例子:年利率5%,每月投入100,需要投入多少本金才可以在10年后的15682.93

In [8]: np.pv(0.05/12, 10*12, -100, 15692.93)
Out[8]: -100.00067131625819


numpy.pmt(rate, nper, pv, fv=0, when="end")#计算每期应还的本金加利息


#例子:贷款434000,利率4.66%,240期

In [9]: np.pmt(0.0466/12, 20*12, 434000)
Out[9]: -2783.3228668907836


numpy.ppmt(rate, per, nper, pv, fv=0.0, when="end")#计算应还本金

per:表示第几个还款日

#例子:贷款434000,利率4.66%,240期

In [3]: np.ppmt(0.0466/12, 1, 240, 434000)
Out[3]: -1097.9562002241169


numpy.ipmt(rate, per, nper, pv, fv=0.0, when="end")#每期应还利息

#例子:贷款434000,利率4.66%,240期


In [5]: np.ipmt(0.0466/12, 1, 240, 434000)
Out[5]: array(-1685.3666666666668)


numpy.nper(rate, pmt, pv, fv=0, when="end")#计算付款次数

#例子:贷款434000,利率4.66%,每月还款2782


In [9]: np.nper(0.0466/12, -2782.14, 434000)
Out[9]: 240.1684400099434


numpy.npv(rate, values)

In [3]: np.npv(0.281,[-100, 39, 59, 55, 20])
Out[3]: -0.0084785916384513271



numpy.irr(values) #返回内部收益率

In [5]: np.irr([-100, 39, 59, 55, 20])
Out[5]: 0.28094842115996066



numpy.mirr(values, finance_rate, reinvest_rate) #返回修正内部收益率

values:现金流,一个列表,正数代表'收入'或'取款',负数代表'投资'或'存款'

In [6]: np.mirr([-1000, -4000, 5000, 2000], 0.1, 0.12)
Out[6]: 0.17908568603489283

image


Ref:
1.http://www.jianshu.com/p/9ad131856078
2.https://en.wikipedia.org/wiki/Modified_internal_rate_of_return#Calculation_of_the_MIRR