I can calculate NPV using
tvmnpv(i,cfo,cfall)=begin
n=collect(1:length(cfall));
cfo + sum(cfall./(1+i).^n)
end
where cfo
is the initial cashflow at t=0, and cfall
represents the following cashflows and i
is the discount rate being used.
However, I can not find a way to calculate the IRR given the cashflows. I believe excel uses a function that scrolls through possible values until a value where cfo plus the discounted following cashflows equals zero is found. Can anyone point me in the right direction?
An example of desired output is as follows:
cfo=[-100];cfall=[30,30,30,30]
Out: 0.07713847
Therefore, the IRR is 7.713847%.
Thank you for your help.
Calculate the IRR is a Root-finding problem (find
i
for NPV=0).One way to do this calculation, is to use the Roots.jl package (
Pkg.add("Roots")
), as following:The interval
[0.0, 1.0]
could be changed for better performance.If you don't want to install the package, I would recommend you to implement the Bisection method, which is simple and efficient.
tested with Julia Version 0.5.0