 Finance - Maple Programming Help

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

Finance

 Collar
 create new interest rate collar

 Calling Sequence Collar(floatingleg, caprates, floorrates)

Parameters

 floatingleg - list of floating-rate coupons; floating leg caprates - non-negative number or a list of non-negative numbers; cap rates floorrates - non-negative number or a list of non-negative numbers; floor rates

Description

 • The Collar command creates a new interest rate collar with the specified parameters. This is a combination of a long position in the corresponding interest rate cap and a short position in the corresponding interest rate floor.
 • Assume that we have a set of coupon payments to occur at the times ${T}_{1}$, ${T}_{2}$, ..., ${T}_{n}$. At each time instance ${T}_{i}$ the cap pays

$N{\mathrm{dT}}_{i}\left({\left(P\left({T}_{i}\right)-{C}_{i}\right)}^{\mathrm{+}}-{\left({C}_{i}-P\left({T}_{i}\right)\right)}^{\mathrm{+}}\right)$

where

 – $N$ is the nominal value,
 – ${\mathrm{dT}}_{i}$ is the year fraction between dates ${T}_{i-1}$ and ${T}_{i}$,
 – $P\left({T}_{i}\right)$ is a coupon payment at the time ${T}_{i}$,
 – ${C}_{i}$ is the fixed cap rate at time ${T}_{i}$,
 – ${F}_{i}$ is the fixed floor rate at time ${T}_{i}$.
 • The parameter floatingleg defines floating rate coupon payments. The parameters caprates and floorrates define the corresponding fixed rates. The first cap/floor rate corresponds to the first floating-rate coupon, the second cap/floor rate corresponds to the second floating-rate coupon, etc. If the size of the exerciserates list is smaller than the size of the floatingleg list then the last exercise rate will be used for all the remaining coupons.
 • The LatticePrice command can be used to price an interest rate cap using any given binomial or trinomial tree. The BlackPrice command will compute the price of an interest rate cap using the Black model.

Examples

 > with(Finance):

Set the global evaluation date. This date is taken as the reference date for all yield curves and benchmark rates unless another date is specified explicitly.

 > SetEvaluationDate("November 17, 2006"):
 > EvaluationDate();
 ${"November 17, 2006"}$ (1)

The nominal amount is 100.

 > nominal := 100;
 ${\mathrm{nominal}}{≔}{100}$ (2)

Create a 6-month EURIBOR benchmark rate with a forecasted rate of 5%. No history is available for this rate.

 > benchmark := BenchmarkRate(6, Months, EURIBOR, 0.05);
 ${\mathrm{benchmark}}{:=}{\mathbf{module}}\left({}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end module}}$ (3)

Construct a discount interest rate curve.

 > discount_curve := ForwardCurve(0.05, 'daycounter' = Actual360);
 ${\mathrm{discount_curve}}{≔}{\mathbf{module}}\left({}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end module}}$ (4)

Construct floating leg payments.

 ${\mathrm{start_date}}{≔}{"November 19, 2006"}$ (5)
 > end_date := AdvanceDate(start_date, 20, Years, 'convention' = ModifiedFollowing);
 ${\mathrm{end_date}}{≔}{"November 19, 2026"}$ (6)
 > coupon_dates := [seq(AdvanceDate(start_date, 6*i, Months), i = 0..40)]:
 > floating_leg := [seq(ParCoupon(nominal, discount_curve, coupon_dates[i], coupon_dates[i+1]), i = 1..40)]:

Construct an interest rate cap with a fixed cap rate of 7% for all payments in the floating leg.

 > ir_cap := Cap(floating_leg, 0.07);
 ${\mathrm{ir_cap}}{:=}{\mathbf{module}}\left({}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end module}}$ (7)
 > ir_floor := Floor(floating_leg, 0.03);
 ${\mathrm{ir_floor}}{:=}{\mathbf{module}}\left({}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end module}}$ (8)
 > ir_collar := Collar(floating_leg, 0.07, 0.03);
 ${\mathrm{ir_collar}}{:=}{\mathbf{module}}\left({}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end module}}$ (9)

Price these instruments using the Black model with a discount rate of 5% and a volatility of 20%, and verify that the price of the cap is equal to the sum of of the prices of the other two instruments.

 > cap_price := BlackPrice(ir_cap, 0.05, 0.2);
 ${\mathrm{cap_price}}{≔}{6.832847321}$ (10)
 > floor_price := BlackPrice(ir_floor, 0.05, 0.2);
 ${\mathrm{floor_price}}{≔}{2.642595692}$ (11)
 > collar_price := BlackPrice(ir_collar, 0.05, 0.2);
 ${\mathrm{collar_price}}{≔}{4.190251628}$ (12)
 > cap_price = floor_price + collar_price;
 ${6.832847321}{=}{6.832847320}$ (13)

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[Collar] command was introduced in Maple 15.