atoti.experimental.finance.irr()#
- atoti.experimental.finance.irr(*, cash_flows, market_value, date, precision=0.001)#
Return the Internal Rate of Return based on the underlying cash flows and market values.
The IRR is the rate
r
that nullifies the Net Present Value:\[NPV = \sum_{i=0}^{T} CF_i (1 + r)^{\frac{T - t_i}{T}} = 0\]With:
\(T\) the total number of days since the beginning
\(t_i\) the number of days since the beginning for date \(i\)
\(CF_i\) the enhanced cashflow for date \(i\)
CF of the first day is the opposite of the market value for this day: \(CF_0 = - MV_0\).
CF of the last day is increased by the market value for this day: \(CF_T = cash\_flow_T + MV_T\).
Otherwise CF is the input cash flow: \(CF_i = cash\_flow_i\).
This equation is solved using the Newton’s method.
- Parameters:
cash_flows (VariableMeasureConvertible) – The measure representing the cash flows.
market_value (VariableMeasureConvertible) – The measure representing the market value, used to enhanced the cashflows first and last value. If the cash flows don’t need to be enhanced then
0
can be used.date (Hierarchy) – The date hierarchy. It must have a single date level.
precision (float) – The precision of the IRR value.
- Return type:
MeasureDescription
See also
The IRR Wikipedia page.