2024-05-14 21:00:10 发布
网友
我正在寻找一个Python的财务库,它将使我能够做贴现现金流分析。我环顾四周,发现了QuantLib,这对我想做的事情来说太过分了。我只需要一个小图书馆,我可以用来输入一系列现金流,并让它输出一个净现值和内部收益率。有人有这样的东西,或者知道我在哪里能找到?
如果你真的只想计算净现值(=现金流和贴现因子向量的内积)和内部收益率(=对一个变量的简单迭代根搜索),那么你就可以对其进行编码。
我使用的R比Python多得多,所以这里有一个R解决方案:
R> data <- data.frame(CF=c(rep(2,5), 102), df=1.01^(-(1:6))) R> data CF df 1 2 0.9901 2 2 0.9803 3 2 0.9706 4 2 0.9610 5 2 0.9515 6 102 0.9420 R> NPV <- sum(data[,1] * data[,2]) R> print(NPV) [1] 105.8 R>
这就建立了现金流和贴现因子的两列数据结构,并将净现值计算为产品的总和。因此(简单化)6年期债券的票面利率为2%,收益率曲线为1%,价值为105.80英镑。
对于内部收益率,我们做的差不多相同,但使净现值成为利率的函数:
R> irrSearch <- function(rate) { data <- data.frame(CF=c(rep(2,5), 102), df=(1+rate/100)^(-(1:6))); 100 - sum(data[,1] * data[,2]) } R> uniroot( irrSearch, c(0.01,5) ) R> irr <- uniroot( irrSearch, c(0.01,5) ) R> irr$root [1] 2 R>
所以在平曲线世界中寻找2%债券内部收益率的“根”是。。。不出所料的是2%。
为了完整起见,既然我迟到了: numpy有一些基本的财务计算功能。也可以使用numpy,scipy,从R中的基本公式进行计算
现金流净现值
>>> cashflow = 2*np.ones(6) >>> cashflow[-1] +=100 >>> cashflow array([ 2., 2., 2., 2., 2., 102.]) >>> np.npv(0.01, cashflow) 105.79547647457932
获得内部收益率
>>> n = np.npv(0.01, cashflow) >>> np.irr(np.r_[-n, cashflow]) 0.010000000000000231
基本要求:
>>> [f for f in dir(np.lib.financial) if not f[0] == '_'] ['fv', 'ipmt', 'irr', 'mirr', 'np', 'nper', 'npv', 'pmt', 'ppmt', 'pv', 'rate']
有必要注意时机。
如果你真的只想计算净现值(=现金流和贴现因子向量的内积)和内部收益率(=对一个变量的简单迭代根搜索),那么你就可以对其进行编码。
我使用的R比Python多得多,所以这里有一个R解决方案:
这就建立了现金流和贴现因子的两列数据结构,并将净现值计算为产品的总和。因此(简单化)6年期债券的票面利率为2%,收益率曲线为1%,价值为105.80英镑。
对于内部收益率,我们做的差不多相同,但使净现值成为利率的函数:
所以在平曲线世界中寻找2%债券内部收益率的“根”是。。。不出所料的是2%。
为了完整起见,既然我迟到了: numpy有一些基本的财务计算功能。也可以使用numpy,scipy,从R中的基本公式进行计算
现金流净现值
获得内部收益率
基本要求:
有必要注意时机。
相关问题 更多 >
编程相关推荐