Finance
InternalRateOfReturn
calculate the internal rate of return of a set of cash flows
Calling Sequence
Parameters
Options
Description
Examples
Compatibility
InternalRateOfReturn(cashflows, price, opts)
InternalRateOfReturn(bond, price, opts)
cashflows
-
data structure created using the SimpleCashFlow constructor or a list of such data structures; cash flows
price
real constant; market price of the set of cash flows
bond
fixed or floating rate bond data structure; bond
opts
equations of the form option = value where option is one of evaluationdate, compounding, daycounter, maxiterations, tolerance, or guess; specify options for the InternalRateOfReturn command
compounding = Simple, Continuous, Annual, Semiannual, EveryFourthMonth, Quarterly, Bimonthly, Monthly, SimpleThenAnnual, SimpleThenSemiannual, SimpleThenEveryFourthMonth, SimpleThenQuarterly, SimpleThenBimonthly, or SimpleThenMonthly -- This option specifies the compounding type for the given interest rate.
daycounter = a name representing a supported day counter (e.g. ISDA, Simple) or a day counter data structure created using the DayCounter constructor -- This option provides a day counter that will be used to convert the period between two dates to a fraction of the year.
evaluationdate = a string containing a date specification in a format recognized by ParseDate or a Date data structure -- This option specifies the evaluation date. By default this is set to the global evaluation date (see EvaluationDate).
tolerance = positive constant -- This option specifies the required absolute precision of the returned result. The default value is 1e-9.
maxiterations = positive integer -- This option specifies the maximum number of iterations that can be performed to obtain the result. When the maximum number of iterations has been reached, but InternalRateOfReturn cannot guarantee the requested accuracy of the result, an error will be thrown. The default value is 100000 iterations.
guess = positive constant -- This option can be used to specify the initial guess.
The InternalRateOfReturn command calculates the internal rate of return of a set of cash flows or a bond. This is the rate at which the present value of the set of cash flows or the bond is equal to the given price. For bonds the internal rate of return is the same as the yield (see YieldFromCleanPrice and YieldFromDirtyPrice).
with⁡Finance:
SetEvaluationDate⁡Jan-01-2005:
paymentdate1≔Jan-02-2007
cashflow1≔SimpleCashFlow⁡100,paymentdate1
cashflow1≔100. on January 2, 2007
value1≔NetPresentValue⁡cashflow1,0.05
value1≔90.47134762
InternalRateOfReturn⁡cashflow1,value1
0.05000000001
The following will throw an error because the specified number of iterations is insufficient to achieve the required precision.
InternalRateOfReturn⁡cashflow1,value1,guess=0.02,maxiterations=5
Error, (in Finance:-InternalRateOfReturn) maximum number of function evaluations (5) exceeded
InternalRateOfReturn⁡cashflow1,90
0.05260819182
Here is another example.
nominalamt≔100
rate≔0.05
paymentdate2≔Jan-01-2015
startdate2≔Jan-01-2006
enddate2≔Jan-01-2010
coupon2≔FixedRateCoupon⁡nominalamt,rate,startdate2,enddate2,paymentdate2
coupon2≔20. on January 1, 2015
Compute the value of this cash flow on January 1, 2005.
value2≔NetPresentValue⁡coupon2,0.07
value2≔9.931706076
InternalRateOfReturn⁡coupon2,value2
0.06999999998
Here is an example using bonds.
bond≔FixedCouponBond⁡100,5,Years,0.05
bond ≔ moduleend module
npv≔NetPresentValue⁡bond,0.03
npv≔108.9396460
YieldFromDirtyPrice⁡bond,npv
0.02999999994
InternalRateOfReturn⁡bond,npv
The Finance[InternalRateOfReturn] command was introduced in Maple 15.
For more information on Maple 15 changes, see Updates in Maple 15.
See Also
Finance[CompoundFactor]
Finance[DiscountFactor]
Finance[FixedRateCoupon]
Finance[InArrearIndexedCoupon]
Finance[ParCoupon]
Finance[SimpleCashFlow]
Finance[UpFrontIndexedCoupon]
Finance[YieldFromCleanPrice]
Finance[YieldFromDirtyPrice]
Finance[ZeroCurve]
Download Help Document