Objective C IRR 计算与 Excel IRR 函数的比较
Posted
技术标签:
【中文标题】Objective C IRR 计算与 Excel IRR 函数的比较【英文标题】:Objective C IRR calculation compared to Excel IRR function 【发布时间】:2015-04-25 00:57:35 【问题描述】:下面的讨论提供了与 Excel IRR 函数相比始终不正确的 Objective C IRR 计算代码。有谁知道为什么会有这样的差异?
之前的讨论中提供了使用的代码:
Calculate IRR (Internal Rate Return) and NPV programatically in Objective-C
我用来计算 IRR 的测试现金流如下: "打印 tempCashFlow: ( "-5099701.25", "-22503.796875", "-22503.79296875", "-22503.79296875", "-20907.26171875", "-17899.7421875", "-17899.7421875", "-17899.7421875", "-14660.69140625", "-12447.80078125", "-12447.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% 的 IRR,而不是 Excel IRR 函数产生的大约 16.0%。我也手动测试过,我相信 16% 是正确的答案。谁能帮助理解代码可能有什么问题?我看不到任何问题。它似乎也与此链接上推广的代码相同:
http://www.codeproject.com/Tips/461049/Internal-Rate-of-Return-IRR-Calculation
PS:我还注意到,如果我将现金流减少到 2 年而不是 5 年(例如 35%(不正确)与 45% 的内部收益率(正确答案)
【问题讨论】:
【参考方案1】:Excel 的IRR
函数报告的该系列现金流的内部收益率为3.803961%
(但假设它们是年度现金流)。您引用的 C 算法也返回 3.803961%
。因此,这两个计算值之间没有差异。如果我将所有这些年度现金流的 NPV 相加时应用该比率,我得到零,验证 3.803961%
是正确的 IRR。
您尚未分享您如何使用 Excel IRR
或此函数来处理季度现金流量,但我怀疑您可能只是将此 C 函数的结果值乘以四,这是不正确的。您必须对其应用季度复利。如果我做前者,我会重现你的错误值15.215842%
,但如果我做后者,我会得到正确的值16.106276%
。同样,通过计算这些现金流的累积 NPV 来验证这一点,我得到零,确认 16.1%
是这一系列季度现金流的正确内部收益率。
【讨论】:
Rob - 你是绝对正确的。谢谢 - 我的错误。我使用 XIRR 而不是 IRR 函数来检查,代码假设的是年度现金流而不是季度。以上是关于Objective C IRR 计算与 Excel IRR 函数的比较的主要内容,如果未能解决你的问题,请参考以下文章