3

我目前正在寻找 ExcelRATE()IRR(). 我正在编写针对现代浏览器和 Rails 4 中的 Ruby 2.0.0 的 Javascript。我的目标是能够在具有 Rails 后端的响应式 Javascript 应用程序中计算 APR。

我查看并拒绝了以下选项:

金融宝石:无RATE()功能。IRR()似乎挂起许多测试向量。

Formula.js:没有工作RATE()功能。IRR()不适用于许多测试向量。

PHPExcel:具有RATE()我转换为Ruby的工作功能。这无法像 PHP 版本一样工作,并且对于重要的测试向量也失败了。这可能确实有一个IRR()功能,但我还没有测试过。我不希望我能找到一个有效的,但无论如何我都会测试它。

我对用数学公式编写自己的实现不感兴趣。我更喜欢似乎已经过良好测试的代码。

更新:

我找到了一个IRR()使用 R 执行的程序,它可能对我们的目的足够准确:https ://stat.ethz.ch/pipermail/r-help/2008-August/169619.html我将在第二天评估这个解决方案左右,如果我对此感到满意,请更新我的问题。

4

2 回答 2

0

我构建了一个名为 Exonio 的 gem:

github.com/Noverde/exonio

这个 gem 在 Ruby 中实现了一些 Excel 公式,也许它可以帮助你。为了实现该IRR方法,我使用了Newtonruby​​ 模块,它是一种求根算法。

很想知道对此有何改进。

于 2016-04-29T14:05:14.427 回答
-1

经过一些测试,我对IRR()R 中的这种实现感到满意:

https://stat.ethz.ch/pipermail/r-help/2008-August/169619.html

它是通过 Rscript 命令运行的脚本形式:

args <- commandArgs(TRUE)

periods = as.numeric(args[1])
payment = as.numeric(args[2])
value = as.numeric(args[3])
monthsInYear = 12

timeline <- (0:periods)
payments <- payment + (0 * timeline)
payments[1] <- value

f <- function(r) sum(payments * exp(-r * timeline))
irr <- function(f) uniroot(f, c(0, 1))$root

irr(f) * monthsInYear
于 2013-06-21T19:39:12.080 回答