2016-12-30 25 views
2

我可以使用計算IRR在朱

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

cfo其中是在t = 0的初始現金流,和計算cfall NPV代表以下的現金流和i是正在使用的折扣率。

但是,我無法找到計算現金流內部收益率的方法。我相信excel使用滾動可能值的函數,直到找到cfo加上貼現的現金流量等於零的值。任何人都可以將我指向正確的方向嗎?

期望的輸出的一個例子是如下:

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

Out: 0.07713847

因此,IRR是7.713847%。

謝謝你的幫助。

回答

5

計算IRRRoot-finding問題(找到NPN = 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方法,該方法簡單高效。

朱莉婭0.5.0版

+0

測試,非常感謝你。我將再次訪問我的電腦後再測試一次。 –