Finance - Maple Programming Help

Home : Support : Online Help : Mathematics : Finance : Financial Instruments : Finance/FloatingRateBond

Finance

 FloatingRateBond
 create new floating-rate bond

 Calling Sequence FloatingRateBond(redemptionvalue, maturity, timeunit, rate, spreads, options) FloatingRateBond(redemptionvalue, maturitydate, rate, spreads, options)

Parameters

 redemptionvalue - bonds redemption value maturitydate - a date specified in a format recognized by the ParseDate command; maturity date maturity - a nonnegative integer specifying the quantity of the time units timeunit - Days, Weeks, Months, or Years; time units rate - benchmark rate data structure; variable rate spreads - a list or Vector of the spreads on the interest rate opts - (optional) equation(s) of the form option = value where option is one of calendar, convention, frequency, daycounter, issuedate, or settlementdays; specify options for the FloatingRateBond command

Options

 • calendar = a name representing a supported calendar (e.g. Toronto, NewYork) or a calendar data structure created using the Calendar constructor -- This option can be used to specify the underlying calendar.
 • convention = Unadjusted, Preceding, ModifiedPreceding, Following, ModifiedFollowing, or MonthEndReference -- This option can be used to specify business day conventions. The default value is Following.
 • 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.
 • frequency = Annual, Semiannual, EveryFourthMonth, Quarterly, Bimonthly, or Monthly -- This option specifies coupon frequency. The default value is Annual.
 • issuedate = a string containing a date specification in a format recognized by ParseDate or a date data structure -- This option provides the issue date of a bond. It is set to the global evaluation date by default.
 • settlementdays = positive integer -- This option specifies the number of settlement days. The default value is 1.

Description

 • The FloatingRateBond commands creates a new floating-rate bond with the specified parameters. It is assumed that the face value of the bond is $100.0$.

Examples

 > $\mathrm{with}\left(\mathrm{Finance}\right):$
 > $\mathrm{SetEvaluationDate}\left("January 15, 2007"\right):$
 > $\mathrm{Settings}\left(\left[\mathrm{daycounter}=\mathrm{Historical},\mathrm{businessdayconvention}=\mathrm{Unadjusted},\mathrm{settlementdays}=0\right]\right)$
 $\left[{\mathrm{daycounter}}{=}{\mathrm{Historical}}{,}{\mathrm{businessdayconvention}}{=}{\mathrm{Unadjusted}}{,}{\mathrm{settlementdays}}{=}{0}\right]$ (1)
 > $\mathrm{rate}≔\mathrm{BenchmarkRate}\left(0.03\right)$
 ${\mathrm{rate}}{:=}{\mathbf{module}}\left({}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end module}}$ (2)
 > $\mathrm{LoadHistory}\left(\mathrm{rate},"December 23, 2006",\left[0.023,0.025,0.021,0.022,0.023,0.02,0.021,0.024,0.025,0.026,0.027,0.028\right]\right)$
 > $\mathrm{spreads}≔⟨0.001,0.0012,0.0014,0.0016⟩$
 ${\mathrm{spreads}}{≔}\left[\begin{array}{c}{0.001}\\ {0.0012}\\ {0.0014}\\ {0.0016}\end{array}\right]$ (3)
 > $\mathrm{bond}≔\mathrm{FloatingRateBond}\left(100,5,\mathrm{Years},\mathrm{rate},\mathrm{spreads},\mathrm{issuedate}="January 02, 2007"\right):$

Get the set of cash flows for your bonds.

 > $\mathrm{CashFlows}\left(\mathrm{bond}\right)$
 $\left[{\mathrm{2.699979789 on \text{'}January 2, 2008\text{'}}}{,}{\mathrm{3.120146310 on \text{'}January 2, 2009\text{'}}}{,}{\mathrm{3.140123291 on \text{'}January 2, 2010\text{'}}}{,}{\mathrm{3.160123291 on \text{'}January 2, 2011\text{'}}}{,}{\mathrm{3.160099636 on \text{'}January 2, 2012\text{'}}}{,}{\mathrm{100. on \text{'}January 2, 2012\text{'}}}\right]$ (4)

Calculate the clean price and the dirty price for your bond using the fixed rate of 5% as the discount rate.

 > $\mathrm{cleanprice}≔\mathrm{CleanPrice}\left(\mathrm{bond},0.05\right)$
 ${\mathrm{cleanprice}}{≔}{91.08881737}$ (5)
 > $\mathrm{dirtyprice}≔\mathrm{DirtyPrice}\left(\mathrm{bond},0.05\right)$
 ${\mathrm{dirtyprice}}{≔}{91.18498176}$ (6)
 > $\mathrm{accrued}≔\mathrm{AccruedAmount}\left(\mathrm{bond}\right)$
 ${\mathrm{accrued}}{≔}{0.09616438356}$ (7)

Calculate the bond's yield using the previous discount rate.

 > $\mathrm{YieldFromCleanPrice}\left(\mathrm{bond},\mathrm{cleanprice}\right)$
 ${0.05000000002}$ (8)
 > $\mathrm{YieldFromDirtyPrice}\left(\mathrm{bond},\mathrm{dirtyprice}\right)$
 ${0.04999999999}$ (9)

Note that the face value is always $100.0$ and the coupon payments are calculated based on this rate.

 > $\mathrm{bond2}≔\mathrm{FloatingRateBond}\left(120,5,\mathrm{Years},\mathrm{rate},\mathrm{spreads},\mathrm{issuedate}="January 02, 2007"\right):$

Get the set of cash flows for your bonds.

 > $\mathrm{CashFlows}\left(\mathrm{bond2}\right)$
 $\left[{\mathrm{2.699979789 on \text{'}January 2, 2008\text{'}}}{,}{\mathrm{3.120146310 on \text{'}January 2, 2009\text{'}}}{,}{\mathrm{3.140123291 on \text{'}January 2, 2010\text{'}}}{,}{\mathrm{3.160123291 on \text{'}January 2, 2011\text{'}}}{,}{\mathrm{3.160099636 on \text{'}January 2, 2012\text{'}}}{,}{\mathrm{120. on \text{'}January 2, 2012\text{'}}}\right]$ (10)

References

 Brigo, D., Mercurio, F., Interest Rate Models: Theory and Practice. New York: Springer-Verlag, 2001.
 Glasserman, P., Monte Carlo Methods in Financial Engineering. New York: Springer-Verlag, 2004.
 Hull, J., Options, Futures, and Other Derivatives, 5th. edition. Upper Saddle River, New Jersey: Prentice Hall, 2003.

Compatibility

 • The Finance[FloatingRateBond] command was introduced in Maple 15.