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)
cfo
t = 0时的初始现金流量在哪里,cfall
表示以下现金流量,i
是使用的贴现率.
但是,鉴于现金流量,我无法找到计算内部收益率的方法.我相信excel使用一个滚动可能值的函数,直到找到cfo加上折扣后的现金流等于零的值.谁能指出我正确的方向?
期望输出的示例如下:
cfo=[-100];cfall=[30,30,30,30]
Out: 0.07713847
因此,内部收益率为7.713847%.
谢谢您的帮助.
进行此计算的一种方法是使用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测试
归档时间: |
|
查看次数: |
299 次 |
最近记录: |