Finance
ZeroCurve
create new zero-coupon curve
Calling Sequence
Parameters
Options
Description
Examples
References
Compatibility
ZeroCurve(rate, opts)
ZeroCurve(times, rates, opts)
ZeroCurve(dates, rates, opts)
rate
-
real constant, algebraic expression, or procedure; zero rate
times
list or Vector; times (in years)
rates
list or Vector; zero rates
dates
list; dates
opts
equations of the form option = value where option is one of compounding, daycounter, interpolation, or referencedate; specify options for the ZeroCurve 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(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 zero curve from a discrete set of rates. The LogLinear interpolation is used by default.
referencedate = date in any of the formats recognized by the Finance[ParseDate] command -- This option specifies the reference date (when the discount factor is equal to 1).
The ZeroCurve command creates a new zero-coupon curve 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 ZeroCurve was assigned to the name R. Then for any positive constant t, R⁡t will return a zero rate for the maturity t based on the term structure R. If d is a date given in any of the formats recognized by the Finance[ParseDate] command, then the R⁡d command will return the zero rate for the corresponding maturity.
The ZeroCurve(rate, opts) command creates a zero-coupon 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 ZeroCurve 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 ZeroCurve(times, rates, opts) and ZeroCurve(dates, rates, opts) commands create a term structure based on piecewise interpolation of specified zero rates. 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 Finance[ParseDate].
By default all rates are assumed to be based on continuous compounding. The compounding option can be used to specify the desired compounding type for the given rates. If the value of the compounding option is different from Continuous, all the given rates will be converted to the corresponding continuous rates.
Objects created using the ZeroCurve command will be of Maple type YieldTermStructure.
with⁡Finance:
In this example, create a flat zero curve with reference date set to January 5, 2005.
zerocurve1≔ZeroCurve⁡0.05,referencedate=Jan-05-2006:
zerocurve1⁡Jan-05-2007
0.05000000000
zerocurve1⁡1.0
In this example, create a zero curve with the same parameters as above but assume that the given interest rate is based on monthly compounding.
zerocurve2≔ZeroCurve⁡0.05,compounding=Monthly,referencedate=Jan-05-2005:
Note that in the previous example only the rates passed to the ZeroCurve constructor are assumed to be monthly compounded. Whenever we evaluate zerocurve2, the returned rate is always continuous.
zerocurve2⁡Jan-05-2005
0.04989612178
zerocurve2⁡1.0
EquivalentRate⁡zerocurve2⁡1.0,Continuous,Monthly,1.0
DiscountFactor⁡zerocurve2,Jan-05-2005
1.
In this example, create a zero curve based on a piecewise interpolation of zero rates. Use the default interpolation.
rates≔0.02,0.01,0.04,0.06,0.07:
times≔0.,0.5,1.0,1.5,2.0:
zerocurve3≔ZeroCurve⁡times,rates:
zerocurve3⁡0.5
0.01000000000
zerocurve3⁡1.0
0.04000000000
zerocurve3⁡1.25
0.04898979486
zerocurve4≔ZeroCurve⁡times,rates,interpolation=BackwardFlat:
zerocurve5≔ZeroCurve⁡times,rates,interpolation=Linear:
zerocurve6≔ZeroCurve⁡times,rates,interpolation=ForwardFlat:
zerocurve7≔ZeroCurve⁡times,rates,interpolation=Cubic:
plot⁡zerocurve3,zerocurve4,zerocurve5,zerocurve6,zerocurve7,0..2,color=red,blue,green,yellow,cyan,thickness=2,axes=BOXED,gridlines=true
Construct a zero yield term structure based on a Maple function.
f≔CurveFitting:-Spline⁡times,rates,t,degree=4
f≔0.1631507971⁢t4+0.02−0.03776323341⁢tt<0.2500000000−0.1735680803⁢t4+0.3367188774⁢t3−0.1262695790⁢t2−0.01671830357⁢t+0.01868469189t<0.75000000000.1214446482⁢t4−0.5483193081⁢t3+0.8693983798⁢t2−0.5145522824⁢t+0.1120285630t<1.250000000−0.02763974508⁢t4+0.1971026584⁢t3−0.5282678071⁢t2+0.6501695396⁢t−0.2519470064t<1.750000000−0.003624442908⁢t4+0.02899554326⁢t3−0.08698662976⁢t2+0.1353414990⁢t−0.02670973855otherwise
zerocurve4≔ZeroCurve⁡f:
plot⁡zerocurve3,zerocurve4,zerocurve7,0..2,color=red,blue,cyan,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[ZeroCurve] command was introduced in Maple 15.
For more information on Maple 15 changes, see Updates in Maple 15.
See Also
Finance[BlackScholesProcess]
Finance[DiscountCurve]
Finance[ForwardCurve]
Finance[ForwardRate]
Finance[MertonJumpDiffusion]
Finance[ParRate]
Finance[ZeroCurve]
Download Help Document