create new floating-rate bond
FloatingRateBond(redemptionvalue, maturity, timeunit, rate, spreads, options)
FloatingRateBond(redemptionvalue, maturitydate, rate, spreads, options)
bonds redemption value
a date specified in a format recognized by the ParseDate command; maturity date
a nonnegative integer specifying the quantity of the time units
Days, Weeks, Months, or Years; time units
benchmark rate data structure; variable rate
a list or Vector of the spreads on the interest rate
(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
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.
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.
SetEvaluationDate⁡January 15, 2007:
rate ≔ BenchmarkRate⁡0.03
rate ≔ moduleend module
LoadHistory⁡rate,December 23, 2006,0.023,0.025,0.021,0.022,0.023,0.02,0.021,0.024,0.025,0.026,0.027,0.028
spreads ≔ 0.001,0.0012,0.0014,0.0016
bond ≔ FloatingRateBond⁡100,5,Years,rate,spreads,issuedate=January 02, 2007:
Get the set of cash flows for your bonds.
2.699979789 on 'January 2, 2008',3.120146310 on 'January 2, 2009',3.140123291 on 'January 2, 2010',3.160123291 on 'January 2, 2011',3.160099636 on 'January 2, 2012',100. on 'January 2, 2012'
Calculate the clean price and the dirty price for your bond using the fixed rate of 5% as the discount rate.
cleanprice ≔ CleanPrice⁡bond,0.05
dirtyprice ≔ DirtyPrice⁡bond,0.05
accrued ≔ AccruedAmount⁡bond
Calculate the bond's yield using the previous discount rate.
Note that the face value is always 100.0 and the coupon payments are calculated based on this rate.
bond2 ≔ FloatingRateBond⁡120,5,Years,rate,spreads,issuedate=January 02, 2007:
2.699979789 on 'January 2, 2008',3.120146310 on 'January 2, 2009',3.140123291 on 'January 2, 2010',3.160123291 on 'January 2, 2011',3.160099636 on 'January 2, 2012',120. on 'January 2, 2012'
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.
The Finance[FloatingRateBond] command was introduced in Maple 15.
For more information on Maple 15 changes, see Updates in Maple 15.
Download Help Document