Finance
DiscountCurve
create new zero curve based on the specified discount factors
Calling Sequence
Parameters
Options
Description
Examples
References
Compatibility
DiscountCurve(rate, opts)
DiscountCurve(times, rates, opts)
DiscountCurve(dates, rates, opts)
rate
-
real constant, algebraic expression, or a procedure; discount factor
times
list or Vector of non-negative constants; times (in years)
rates
list or Vector of non-negative constants; discount factors
dates
list of dates in one of the formats recognized by the ParseDate command; dates
opts
equations of the form option = value where option is one of daycounter, interpolation, or referencedate; specify options for the DiscountCurve 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 discount factor(s).
daycounter = Actual360, Actual365Fixed, AFB, Bond, Euro, Historical, ISDA, ISMA, OneDay, Simple, Thirty360BondBasis, Thirty360EuroBondBasis, Thirty360European, Thirty360Italian, Thirty360USA, or a day counter data structure -- This option specifies the convention used to convert the amount of time between two dates to year fractions.
interpolation = BackwardFlat, Cubic, ForwardFlat, Linear, or LogLinear -- This option specifies the type of interpolation used to build a discount curve from a discrete set of discount factors. The LogLinear interpolation is used by default.
referencedate = date in any of the formats recognized by the ParseDate command -- This option specifies the reference date (when the discount factor is equal to 1).
The DiscountCurve command creates a new yield curve based on the specified discount factors; the resulting curve is represented as a module. This module can be passed to other commands of the Finance package that expect a yield term structure as one of the parameters; it can also be used as if it were a procedure. Assume for example that the module returned by DiscountCurve was assigned to the name R. Then for any positive constant t, R⁡t will return a discount factor for the maturity t based on the term structure R. If d is a date given in any of the formats recognized by the ParseDate command, then the R⁡d command will return the discount factor for the corresponding maturity.
The DiscountCurve(rate, opts) command creates a zero curve based on the specified interest rate. The parameter rate can be either a real constant, a Maple procedure or an algebraic expression. If rate is a real constant then the DiscountCurve command contracts a flat term structure based on the specified interest rate. If rate is a procedure it should accept one parameter (the time) and return the corresponding rate as a floating-point number. Finally, if rate is an algebraic expression, it should depend on a single variable. This variable will be taken as time.
The DiscountCurve(times, rates, opts) and DiscountCurve(dates, rates, opts) commands create a term structure based on piecewise interpolation of specified discount factors. The parameters rates and times can be either a list or a Vector containing numeric values and must have the same number of elements. The parameter dates is a list of dates in one of the formats recognized by ParseDate.
Objects created using the DiscountCurve command will be of Maple type YieldTermStructure.
with⁡Finance:
SetEvaluationDate⁡November 25, 2006:
In this example create a discount curve based on a piecewise interpolation of discount rates. Use the linear interpolation.
discountfactors≔1.,0.995,0.989,0.981,0.975,0.964,0.944,0.930,0.914,0.886,0.860,0.842,0.832,0.831,0.827,0.823,0.815,0.795,0.778,0.770:
times≔0.25,0.50,0.75,1.0,1.2,1.5,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,3.8,4.0,4.2,4.5,4.8,5.0:
discountcurve≔DiscountCurve⁡times,discountfactors:
ZeroRate⁡discountcurve,0.5
0.01002508365
ForwardRate⁡discountcurve,0.5
0.02419362214
DiscountFactor⁡discountcurve,0.5
0.9950000000
date2≔AdvanceDate⁡6,Months
date2≔May 25, 2007
time2≔YearFraction⁡date2
time2≔0.4958904110
discountcurve⁡date2
0.9950819893
discountcurve⁡time2
Construct discount curves based on different types of interpolation of the given rates.
discountcurve2≔DiscountCurve⁡times,discountfactors,interpolation=BackwardFlat:
discountcurve3≔DiscountCurve⁡times,discountfactors,interpolation=ForwardFlat:
discountcurve4≔DiscountCurve⁡times,discountfactors,interpolation=Cubic:
plot⁡discountcurve,discountcurve2,discountcurve3,discountcurve4,0..5,color=red,blue,green,cyan,thickness=2,axes=BOXED,gridlines=true
Construct a discount yield term structure based on a Maple function.
f≔CurveFitting:-Spline⁡times,discountfactors,t,degree=4
f≔−0.01189941604⁢t4+0.01189941604⁢t3−0.004462281015⁢t2−0.01905099728⁢t+1.004902195t<0.3750000000−0.03172492545⁢t4+0.04163768016⁢t3−0.02119005458⁢t2−0.01486905389⁢t+1.004510138t<0.62500000000.1039594708⁢t4−0.2975733104⁢t3+0.2968202491⁢t2−0.1473733471⁢t+1.025213935t<0.8750000000−0.08853890118⁢t4+0.3761709898⁢t3−0.5874691433⁢t2+0.3684621307⁢t+0.9123749242t<1.100000000−0.1197353883⁢t4+0.5134355333⁢t3−0.813955640⁢t2+0.5345522282⁢t+0.8667001473t<1.3500000000.2499934793⁢t4−1.483100351⁢t3+3.229029530⁢t2−3.104134427⁢t+2.094756886t<1.650000000−0.2653533436⁢t4+1.918188680⁢t3−5.189160821⁢t2+6.155874957⁢t−1.724996984t<1.9000000000.0787759053⁢t4−0.6971936111⁢t3+2.264678708⁢t2−3.285655115⁢t+2.759729805t<2.1000000000.1910343021⁢t4−1.640164145⁢t3+5.235035885⁢t2−7.444155159⁢t+4.942942325t<2.350000000−0.2857346683⁢t4+2.841464179⁢t3−10.56270395⁢t2+17.30563722⁢t−9.59756069t<2.6500000000.5174704068⁢t4−5.672509617⁢t3+23.28034189⁢t2−42.48374377⁢t+30.01290422t<2.900000000−0.4144089660⁢t4+5.137291107⁢t3−23.74229127⁢t2+48.42668042⁢t−35.89715344t<3.100000000−0.2814239993⁢t4+3.488277521⁢t3−16.07437810⁢t2+32.57965988⁢t−23.61571253t<3.3500000000.3604175437⁢t4−5.112399153⁢t3+27.14402216⁢t2−63.94143401⁢t+57.22070354t<3.650000000−0.2866325131⁢t4+4.334531678⁢t3−24.57792413⁢t2+61.91530196⁢t−57.62356812t<3.9000000000.1353767710⁢t4−2.248813156⁢t3+13.93464317⁢t2−38.21737304⁢t+40.00579001t<4.1000000000.1815123228⁢t4−3.005436205⁢t3+18.58787492⁢t2−50.93620650⁢t+53.04259433t<4.350000000−0.1245093110⁢t4+2.319340223⁢t3−16.15629127⁢t2+49.82187548⁢t−56.53181988t<4.650000000−0.09220898271⁢t4+1.718554117⁢t3−11.96580818⁢t2+36.83137790⁢t−41.43036638t<4.9000000000.2218548599⁢t4−4.437097198⁢t3+33.27822899⁢t2−110.9658102⁢t+139.6211887otherwise
discountcurve5≔DiscountCurve⁡f:
plot⁡discountcurve,discountcurve5,0..2,color=red,blue,thickness=2,axes=BOXED,gridlines=true
Brigo, D., Mercurio, F., Interest Rate Models: Theory and Practice. New York: Springer-Verlag, 2001.
Hull, J., Options, Futures, and Other Derivatives, 5th. edition. Upper Saddle River, New Jersey: Prentice Hall, 2003.
The Finance[DiscountCurve] command was introduced in Maple 15.
For more information on Maple 15 changes, see Updates in Maple 15.
See Also
Finance[BlackScholesProcess]
Finance[DiscountFactor]
Finance[ForwardCurve]
Finance[ForwardRate]
Finance[MertonJumpDiffusion]
Finance[ParRate]
Finance[ZeroCurve]
Finance[ZeroRate]
Download Help Document