DiscountCurve - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Finance

  

DiscountCurve

  

create new zero curve based on the specified discount factors

 

Calling Sequence

Parameters

Options

Description

Examples

References

Compatibility

Calling Sequence

DiscountCurve(rate, opts)

DiscountCurve(times, rates, opts)

DiscountCurve(dates, rates, opts)

Parameters

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

Options

• 

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).

Description

• 

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, Rt 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 Rd 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.

Examples

withFinance:

SetEvaluationDateNovember 25, 2006:

In this example create a discount curve based on a piecewise interpolation of discount rates. Use the linear interpolation.

discountfactors1.,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:

times0.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:

discountcurveDiscountCurvetimes,discountfactors:

ZeroRatediscountcurve,0.5

0.01002508365

(1)

ForwardRatediscountcurve,0.5

0.02419362214

(2)

DiscountFactordiscountcurve,0.5

0.9950000000

(3)

date2AdvanceDate6,Months

date2May 25, 2007

(4)

time2YearFractiondate2

time20.4958904110

(5)

discountcurvedate2

0.9950819893

(6)

discountcurvetime2

0.9950819893

(7)

Construct discount curves based on different types of interpolation of the given rates.

discountcurve2DiscountCurvetimes,discountfactors,interpolation=BackwardFlat:

discountcurve3DiscountCurvetimes,discountfactors,interpolation=ForwardFlat:

discountcurve4DiscountCurvetimes,discountfactors,interpolation=Cubic:

plotdiscountcurve,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.

fCurveFitting:-Splinetimes,discountfactors,t,degree=4

f0.01189941604t4+0.01189941604t30.004462281015t20.01905099728t+1.004902195t<0.37500000000.03172492545t4+0.04163768016t30.02119005458t20.01486905389t+1.004510138t<0.62500000000.1039594708t40.2975733104t3+0.2968202491t20.1473733471t+1.025213935t<0.87500000000.08853890118t4+0.3761709898t30.5874691433t2+0.3684621307t+0.9123749242t<1.1000000000.1197353883t4+0.5134355333t30.813955640t2+0.5345522282t+0.8667001473t<1.3500000000.2499934793t41.483100351t3+3.229029530t23.104134427t+2.094756886t<1.6500000000.2653533436t4+1.918188680t35.189160821t2+6.155874957t1.724996984t<1.9000000000.0787759053t40.6971936111t3+2.264678708t23.285655115t+2.759729805t<2.1000000000.1910343021t41.640164145t3+5.235035885t27.444155159t+4.942942325t<2.3500000000.2857346683t4+2.841464179t310.56270395t2+17.30563722t9.59756069t<2.6500000000.5174704068t45.672509617t3+23.28034189t242.48374377t+30.01290422t<2.9000000000.4144089660t4+5.137291107t323.74229127t2+48.42668042t35.89715344t<3.1000000000.2814239993t4+3.488277521t316.07437810t2+32.57965988t23.61571253t<3.3500000000.3604175437t45.112399153t3+27.14402216t263.94143401t+57.22070354t<3.6500000000.2866325131t4+4.334531678t324.57792413t2+61.91530196t57.62356812t<3.9000000000.1353767710t42.248813156t3+13.93464317t238.21737304t+40.00579001t<4.1000000000.1815123228t43.005436205t3+18.58787492t250.93620650t+53.04259433t<4.3500000000.1245093110t4+2.319340223t316.15629127t2+49.82187548t56.53181988t<4.6500000000.09220898271t4+1.718554117t311.96580818t2+36.83137790t41.43036638t<4.9000000000.2218548599t44.437097198t3+33.27822899t2110.9658102t+139.6211887otherwise

(8)

discountcurve5DiscountCurvef&colon;

plotdiscountcurve&comma;discountcurve5&comma;0..2&comma;color=red&comma;blue&comma;thickness=2&comma;axes=BOXED&comma;gridlines=true

References

  

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.

Compatibility

• 

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]