我爱编程金融python学习

Python数据分析_Numpy中的金融函数

2016-11-14  本文已影响6075人  ChZ_CC

numpy中的金融函数一览:

终值                  fv
现值                  pv
净现值                npv
每期支付金额          pmt
内部收益率            irr
修正内部收益率        mirr
定期付款期数          nper
利率                  rate


终值:fv,计算的是未来的价值。

numpy.fv(rate, nper, pmt, pv[, when='end'])
#参数:
rate:每一期的利率(rate of interest)。数值或矩阵(M, )。
nper:期数。
pmt:payment。
pv:present value,现值。
when:{{‘begin’, 1}, {‘end’, 0}}, {string, int}, optional. 
    每一期的开头还是结尾付。
    
# 例子:年利率为5%,存100,然后每个月存100,10年后可以得到多少。【零存】
>>> np.fv(0.05/12, 10*12, -100, -100)
15692.928894335748

【负值代表现金流出,比如存到银行后目前就不可用了。】

如果传入的参数是array性质的,那么计算结果也是array。比如比较不同利率的终值。
>>> a = np.array((0.05, 0.06, 0.07))/12
>>> np.fv(a, 10*12, -100, -100)
array([ 15692.92889434,  16569.87435405,  17509.44688102])

现值:pv,计算未来金额在现在的价值。

numpy.pv(rate, nper, pmt, fv=0.0, when='end')
#参数含义同fv

#例子:年利率5%,每月投入100,需要投入多少本金才可以在10年后的15682.93。
>>> np.pv(0.05/12, 10*12, -100, 15692.93)
-100.00067131625819

每期支付金额:pmt

numpy.pmt(rate, nper, pv[, fv=0, when='end'])
参数:利率,分期数,现金值。

例子:月付,200,000,15年还清,年利率为7.5%

>>> np.pmt(0.075/12, 12*15, 200000)
-1854.0247200054619

每期支付金额之本金:ppmt

每期支付金额之利息:ipmt

分期数:nper

numpy.nper(rate, pmt, pv, fv=0, when='end')
参数:略
例子:如果你以每月150,年利率为7%,来还清8000的贷款,需要多少期?
>>> print(round(np.nper(0.07/12, -150, 8000), 5))
64.07335

同样也可以计算不同利率,做比较。

利率:rate

numpy.rate(nper, pmt, pv, fv[, when='end', guess=0.1, tol=1e-06, maxiter=100])

以上这些都是当前资金和未来资金的转换。


净现值:npv(net present value)

numpy.npv(rate, values)
参数:
rate: scalar数值,折现率。
values: 现金流。正数代表‘收入’或‘取款’,负数代表‘投资’或‘存款’。
        第一个值必须是初始的投资,也就是必须是负数。

公式:
NPV=Σ(CI-CO)(1+i)^(-t)
式中:CI——现金流入,CO——现金流出,(CI-CO)——第t年净现金流量,i——基准折现率

>>> np.npv(0.281,[-100, 39, 59, 55, 20])
-0.0084785916384548798

内部收益率:irr

numpy.irr(values)返回Internal Rate of Return (IRR).
参数:
values: array形式,每一期的现金流。

#用例子来解释:
一个人投资100,然后按照固定的时间间隔进行取款,[39,59,55,20]。
假设最终值是0,那么他投资的100,最终产出是173。
因为阶段性取款,收益率不是简单的做平均。而是用以下公式计算:
-100 + 39/(1+r) + 59/(1+r)^2 + 55/(1+r)^3 + 20/(1+r)^4 = 0

代码:
>>> round(np.irr([-100, 39, 59, 55, 20]), 5)
0.28095
>>> round(np.irr([-100, 0, 0, 74]), 5)
-0.0955
>>> round(np.irr([-100, 100, 0, -7]), 5)
-0.0833

修正内部收益率: mirr(modified internal rate of return)

numpy.mirr(values, finance_rate, reinvest_rate)

参数
values : array_like
    现金流(必须有一个正值和一个负值),第一个值可以看做是沉没成本。
finance_rate : scalar
    Interest rate paid on the cash flows
reinvest_rate : scalar
    Interest rate received on the cash flows upon reinvestment
Returns: float
    Modified internal rate of return
上一篇下一篇

猜你喜欢

热点阅读