目标C内部收益率计算与Excel内部收益率函数的比较



下面的讨论提供了目标C内部收益率计算中的代码,与Excel内部收益率函数相比,这些代码始终不正确。有人知道为什么会有这样的区别吗?

使用的代码在前面的讨论中提供:

在Objective-C 中用程序计算内部收益率和净现值

我用来计算内部收益率的测试现金流如下:"打印临时现金流:("-5099701.25","-22503.796875","-22503.79296875","-22503.79296875","-20907.26171875","-17899.7421875","-17899.7421875","-17899.7421875","-14660.69140625","-1247.80078125","-1247.796875","-12018.1640625","-5991.81640625","-5991.81640625","-5991.81640625","-2885.875","1653.125","1653.125","1653.125","8307.328125","11110408.45703125")

上述临时现金流包含5年期间的季度数据(即20个期间加上时间零点期间…因此现金流中有21个数字)。

该代码提供15.2%的内部收益率,而不是Excel内部收益率函数产生的约16.0%。我也手动测试过,我相信16%是正确的答案。有人能帮助理解代码可能出了什么问题吗?我看不出有什么问题。它似乎也与这个链接上推广的代码相同:

http://www.codeproject.com/Tips/461049/Internal-Rate-of-Return-IRR-Calculation

附言:我还注意到,如果我将现金流减少到2年而不是5年,误差幅度会急剧增加(例如,35%(不正确)与45%的内部收益率(正确答案)

Excel的IRR函数报告的该系列现金流的内部收益率为3.803961%(但假设它们是年度现金流)。您引用的C算法也返回3.803961%。因此,这两个计算值之间没有差异。如果我把这个比率应用于所有年度现金流的净现值之和,我得到零,从而验证3.803961%是正确的内部收益率。

您还没有分享如何使用ExcelIRR或该函数来处理季度现金流,但我怀疑您可能只是将该C函数的结果值乘以4,这是不正确的。你必须对它应用季度复利。如果我做前者,我会复制你不正确的15.215842%值,但如果我做后者,我会得到正确的值,16.106276%。再次,通过计算这些现金流的累积NPV来验证这一点,我得到零,确认16.1%是这一系列季度现金流的正确IRR。

最新更新