计算朱莉娅的内部收益率

时间:2016-12-30 22:15:01

标签: julia quantitative-finance

我可以使用

计算NPV
tvmnpv(i,cfo,cfall)=begin
n=collect(1:length(cfall));
cfo + sum(cfall./(1+i).^n)
end

其中cfo是t = 0时的初始现金流,cfall表示以下现金流,i是使用的折现率。

但是,鉴于现金流,我无法找到计算内部收益率的方法。我相信excel使用一个滚动可能值的函数,直到找到cfo加上折扣后的现金流等于零的值。谁能指出我正确的方向?

所需输出的示例如下:

cfo=[-100];cfall=[30,30,30,30]

Out: 0.07713847

因此,内部收益率为7.713847%。

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

计算IRRRoot-finding问题(NPV = 0时查找i)。

进行此计算的一种方法是使用Roots.jl包(Pkg.add("Roots")),如下所示:

julia> using Roots

julia> tvmnpv(i,cfo,cfall)=begin
         n=collect(1:length(cfall));
         cfo + sum(cfall./(1+i).^n)
       end
tvmnpv (generic function with 1 method)

julia> f(x)=tvmnpv(x, cfo, cfall)
f (generic function with 1 method)

julia> cfo=-100.0
-100.0

julia> cfall=[30, 30, 30, 30];

julia> fzero(f, [0.0, 1.0])
0.07713847295208355

可以更改间隔[0.0, 1.0]以获得更好的效果。

如果您不想安装软件包,我建议您实施简单有效的Bisection方法。

使用Julia Version 0.5.0进行测试

答案 1 :(得分:1)

ActuaryUtilities软件包提供了internal_rate_of_return(也别名为irr)功能。