2013-06-20 52 views
3

我正在尋找Excel的工作和準確實現RATE()IRR()。我在JavaScript中編寫了針對現代瀏覽器和Ruby 2.0.0的Rails 4.我的目標是能夠在具有Rails後端的響應式Javascript應用程序中計算APR。尋找準確的Ruby,Javascript或R Excel RATE()或IRR()函數實現

我看,並拒絕以下選項:

Finance Gem:沒有RATE()功能。 IRR()似乎掛起許多測試向量。

Formula.js:沒有工作RATE()功能。 IRR()不適用於許多測試向量。

PHPExcel:有一個工作RATE()函數,我轉換爲Ruby。這不能像PHP版本那樣工作,並且對於重要的測試向量失敗。這可能確實有IRR()函數,但我還沒有測試過它。我不希望我會找到一個有效的工作,但我會不顧一切地進行測試。

我對寫數學公式編寫自己的實現並不感興趣。我更喜歡看起來經過了嚴格測試的代碼。

更新:

我發現了一個程序,使用R,可能是我們的目的不夠準確執行IRR()https://stat.ethz.ch/pipermail/r-help/2008-August/169619.html我會評估這個解決方案在未來一天左右,並更新我的問題,如果我覺得它滿意。

回答

-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 
0

我建了一個叫做Exonio的寶石:

github.com/Noverde/exonio

這個gem在Ruby中實現了一些Excel公式,也許它可以幫助你。 爲了實現IRR方法,我使用了Newton ruby​​模塊,它是一種根查找算法。

想知道任何改進。