首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python基础金融库

Python基础金融库
EN

Stack Overflow用户
提问于 2010-02-14 06:40:24
回答 2查看 7.4K关注 0票数 8

我正在寻找一个适用于Python的金融库,它将使我能够进行现金流贴现分析。我环顾四周,发现了QuantLib,这对我想做的事情来说太过分了。我只需要一个小型库,我可以用它来输入一系列现金流,并让它输出净现值和内部回报率。谁有这样的东西,或者知道我在哪里可以找到它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-25 10:57:51

只是为了完整,因为我来晚了: numpy有一些用于(非常)基本的财务计算的函数。numpy,scipy也可以用来从R中的基本公式进行计算。

现金流量净现值

代码语言:javascript
复制
>>> cashflow = 2*np.ones(6)
>>> cashflow[-1] +=100
>>> cashflow
array([   2.,    2.,    2.,    2.,    2.,  102.])
>>> np.npv(0.01, cashflow)
105.79547647457932

获取内部费率或返还

代码语言:javascript
复制
>>> n = np.npv(0.01, cashflow)
>>> np.irr(np.r_[-n, cashflow])
0.010000000000000231

只有一些基本的东西:

代码语言:javascript
复制
>>> [f for f in dir(np.lib.financial) if not f[0] == '_']
['fv', 'ipmt', 'irr', 'mirr', 'np', 'nper', 'npv', 'pmt', 'ppmt', 'pv', 'rate']

而且有必要注意时间的选择。

票数 12
EN

Stack Overflow用户

发布于 2010-02-14 07:02:19

如果你真的只想计算净现值(==,现金流和贴现率向量的内积)和内部收益率(==,一个变量的简单迭代根搜索),那么你可以编写代码。

我使用R比使用Python多得多,所以这是一个R解决方案:

代码语言:javascript
复制
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> 

这建立了现金流和贴现因子的两列数据结构,并将NPV计算为产品的总和。因此,一个票面利率为2%、收益率曲线为1%的(简单的)6年期债券将价值105.80。

对于IRR,我们做了几乎相同的事情,但使NPV成为比率的函数:

代码语言:javascript
复制
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%。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2259379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档