【发布时间】:2013-12-06 21:56:37
【问题描述】:
如果这个问题的答案已经在某个地方,我深表歉意,我已经搜索了几个小时,但找不到我要找的东西。
我正在构建一个简单的财务计算器来计算给定目标 IRR 的现金流量。例如:
- 我拥有价值 18,000,000 美元的资产(每年折旧 1,000,000 美元)
- 我的目标 IRR 为 5 年后 10%
- 这意味着初始投资为 18,000,000 美元,在第 5 年,我将以 13,000,000 美元的价格出售此资产
- 要达到我的 10% 目标内部收益率,年度现金流必须为 2,618,875 美元。现在,我通过猜测和检查在 Excel 表中手动计算。
还有其他变量和功能,但它们对于我在这里尝试做的事情并不重要。我发现很多库和函数可以计算给定数量现金流的 IRR,但是当我尝试获取给定 IRR 的现金流时却没有任何结果。
此时,我认为唯一的解决方案是基本上运行一个循环来插入值,检查 IRR 是高于还是低于目标 IRR,并继续计算 IRR,直到我得到现金流我想要的。
这是解决这个特定问题的最佳方法吗?还是有更好的方法来解决我错过的问题?非常感谢您的帮助!
另外,作为一个仅供参考,我正在用 Ruby on Rails 构建它。
编辑:
IRR函数:
NPV = -(I) + CF[1]/(1 + R)^1 + CF[2]/(1 + R)^2 + ... + CF[n]/(1 + R) ^n
NPV = 净现值(该值需要尽可能接近 0)
I = 初始投资(在本例中为 18,000,000 美元)
CF = 现金流量(这是我要计算的值 - 如果我手动计算它最终将是 2,618,875 美元。在我的财务计算器中,所有的现金流量都是相同的,因为我是为他们解决。)
R = 目标回报率 (10%)
n = 年份(所以这个例子将在 5 结束)
我试图将现金流量计算在 0.005% 的误差范围内,因为我们处理的数字是数亿。
【问题讨论】:
-
听起来像是 Newton-Raphson 的应用。您能否提供一个与这些变量相关的封闭式公式?我知道所需的值将是公式中的变量之一。
-
这不是编程问题,而是数学问题。取方程并求解未知变量。然后将生成的公式实现为 Ruby 代码。
-
我刚刚添加了带有解释变量的公式。刚刚查找了一些 IRR 的 Newton-Raphson 实现,我找到了this example on Google Code。唯一的问题是,这与其他实现一样,使现金流成为强制性输入。想法?感谢您的帮助!
-
啊。刚看了一眼,发现我是个白痴。这比我最初想象的要简单得多。我想我只需要离开这个问题一分钟。谢谢大家的帮助!