计算朱莉娅的内部收益率

Ale*_*aun 2 quantitative-finance julia

我可以使用计算NPV

tvmnpv(i,cfo,cfall)=begin
n=collect(1:length(cfall));
cfo + sum(cfall./(1+i).^n)
end
Run Code Online (Sandbox Code Playgroud)

cfot = 0时的初始现金流量在哪里,cfall表示以下现金流量,i是使用的贴现率.

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

期望输出的示例如下:

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

Out: 0.07713847

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

谢谢您的帮助.

Gom*_*ero 5

计算IRR寻根问题(找到iNPV = 0).

进行此计算的一种方法是使用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
Run Code Online (Sandbox Code Playgroud)

[0.0, 1.0]可以更改间隔以获得更好的性能.

如果您不想安装软件包,我建议您实现Bisection方法,这种方法简单而有效.

用Julia Version 0.5.0测试