程式

計算內部收益率 IRR 最有效的方法是什麼?

  • September 10, 2020

我已經建立了一個為金融資產定價的程序,它部分通過計算 IRR 來做到這一點。問題是它沒有像我希望的那樣快速執行。

我目前使用 Newton-Raphson 方法計算方程的根,但在嘗試了一定次數後切換到區間二分法。這是因為 Newton-Raphson 方法有可能無法找到 IRR,例如,由於漸近線。我的理解是,Newton-Raphson 方法在實際使用的情況下更有效,這就是為什麼我的系統目前是這樣設置的。

有沒有比我目前使用的更有效的公式或算法來計算金融資產的 IRR?或者,如果沒有,有沒有辦法可以改變我目前的計算順序以提高效率?

如果您需要我在這個問題中實際使用的任何公式,請告訴我。感謝您的時間。

更新

我設計的定價軟體是一個用 C 語言編寫的 PHP 擴展。這是因為它是一個基於網路的程序。由於與我工作的公司有關的原因,我無法更改語言,因此,儘管它們是很好的建議,但我無法使用 PERL 或 Excel IRR 函式。我之前沒有提到這些語言,因為我認為它們不太重要,因為我正在尋找數學效率的提高,而不是計算。

你可以試試布倫特的方法,效果很好。

我已經計算了幾個星期的內部收益率。我已經實現了 5 種不同的方法,並得出結論,哈雷方法是迄今為止最有效的(在我的例子中,使用 Python)。布倫特的方法也很有效!

將淨現值函式表示為 $ P(r) $ . 我們知道找到 IRR 需要找到 $ r_{} \in \mathbb{R} $ 這樣 $ P(r_{}) = 0 $ .

自從 $ P(r) $ 是多項式,我們可以利用二階導數。根據 Wikipedia,我們獲得了三次收斂,而不是 Newton-Raphson 的二次(一般)收斂。

引用自:https://quant.stackexchange.com/questions/12892