的ActiveState Recipes網站有Python實現Internal Rate of Return功能:這種實施IRR的數值方法是什麼?
def irr(cashflows, iterations=100):
"""The IRR or Internal Rate of Return is the annualized effective
compounded return rate which can be earned on the invested
capital, i.e., the yield on the investment.
>>> irr([-100.0, 60.0, 60.0, 60.0])
0.36309653947517645
"""
rate = 1.0
investment = cashflows[0]
for i in range(1, iterations+1):
rate *= (1 - npv(rate, cashflows)/investment)
return rate
此代碼返回正確的值(至少對於我所反對的Excel檢查了幾個例子),但我想知道爲什麼 。
- 它似乎不是牛頓方法(無導數)或分數方法(只跟蹤一次迭代)的實現。
- 特別是,將投資變量定義爲第一個現金流元素(以及它的後續使用)使我感到困惑。
任何想法?
我想你正在等待答案-0.5。 (0.5將是現金流量的內部收益率[-100,150])。但是無論如何都是假的! –
@Gareth Rees:對,謝謝。 – unutbu