El sitio de ActiveState Recipes tiene una función de la implementación de Internal Rate of Return en Python:¿Cuál es el método numérico utilizado en esta implementación de 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
Este código devuelve valores correctos (al menos por el par de ejemplos que he comprobado en contra de Excel), pero me gustaría saber qué .
- No parece ser una implementación del Método de Newton (sin derivada) o el Método Secante (solo realiza un seguimiento de una iteración).
- En particular, la definición de la variable de inversión como el primer elemento de flujo de efectivo (y su uso posterior) me confunde.
¿Alguna idea?
Creo que espera la respuesta -0.5. (0.5 sería la TIR para los flujos de caja [-100, 150]). ¡Pero falsa en cualquier caso! –
@Gareth Rees: Correcto, gracias. – unutbu