Các trang web ActiveState Recipes có chức năng thực hiện Internal Rate of Return bằng Python:Phương pháp số được sử dụng trong việc thực hiện IRR này là gì?
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
Mã này trả về giá trị đúng (ít nhất là trong vài ví dụ mà tôi đã kiểm tra đối Excel), nhưng tôi muốn biết tại sao .
- Nó dường như không thực hiện Phương pháp Newton (không phái sinh) hoặc Phương pháp bảo mật (chỉ theo dõi một lần lặp).
- Cụ thể, định nghĩa của biến đầu tư là phần tử ngân lưu đầu tiên (và việc sử dụng tiếp theo) gây nhầm lẫn cho tôi.
Bất kỳ ý tưởng nào?
Tôi nghĩ bạn đang mong đợi câu trả lời -0.5. (0,5 sẽ là IRR cho các dòng tiền [-100, 150].) Nhưng không có thật trong mọi trường hợp! –
@Gareth Rees: Phải, cảm ơn. – unutbu