Constant Maturity Derivatives

Overview

In instruments like floating rate notes, floating legs of swaps, caps and floors, the underlying rates are zero coupon interest rates (rates based on one payment) and the pay-outs are calculated using the rates in a natural way.  A swap rate or bond yield is a rate based on multiple payments.  In the Constant Maturity versions of floating rate notes, floating legs, caps and floors, the pay-outs are based on swap rates or bond yields but the pay-outs are calculated as if the rates or yields were zero coupon rates.  The term constant maturity swap (CMS) is used when the derivative is based on swap rates and the term constant maturity treasury (CMT) is used when the derivative is based on bond yields.

In general, in a risk-neutral world, if a derivative is structured so that its payoff mirrors the payment pattern of the underlying rate, as in vanilla swaps, caps and floors, the instrument can be valued by assuming the expected future interest rate is the forward rate.  However, if a derivative involves using a rate in a non-natural way, the expected future interest rate will be equal to the forward rate plus a convexity adjustment and a timing adjustment.  This is the case for CMS and CMT derivatives, because swap rates or bond yields are being used like zero coupon rates.  The key to valuing CMS and CMT derivatives is calculating the convexity adjustment and the timing adjustment.

The convexity adjustment arises because the derivative is valued by calculating the expected payoff in a world that is forward risk neutral with respect to the bond, and then discounting at the risk-free rate.  In this world, the expected bond price equals the forward bond price.  However, the expected bond yield does not equal the forward yield (i.e., the yield corresponding to the forward bond price), because price is a non-linear function of yield.  It is the expected yield that is required to calculate the expected payoff.  The convexity adjustment is the amount that must be added to the forward yield to give the expected yield.  The convexity adjustment is derived by assuming that the underlying swap/bond rate is lognormal, and its calculation requires the value of the volatility of the log of the forward swap/bond rate.

A timing adjustment is required when the payoff for a derivative occurs at some time after the underlying variable is observed.  This is the usual case for CMS and CMT swaps.  For example, the floating payments on a CMS swap might be made every six months at a rate equal to the 5-year swap rate, but the rate is fixed at the beginning of each pay leg.  The timing adjustment is directly proportional to the time difference between the fixing date and the payment date, and to the forward interest rate between those dates.  The timing adjustment is derived by assuming that this forward short-term rate is lognormal.  The calculation of the timing adjustment requires the value of the volatility of the log of the forward short-term rate (which can be implied from caplet prices), as well as the value of the correlation between the forward short-term rate and the forward swap rate or bond yield.  If these values are not provided, the function assumes that the correlation is 1, and that the volatility of the forward short-term rate is the same as the volatility of the underlying bond/swap rate.

When the underlying bond is a zero-coupon bond, and the swap provides a payment at the maturity of the bond equal to the yield observed at the start of the pay leg, then the swap is a vanilla swap rather than a CMT swap.  In this case, in the framework described above, the convexity adjustment exactly cancels the timing adjustment, to give a total adjustment of zero.  This result is consistent with the standard method of valuing vanilla swaps, which is to assume that the forward rates will be realized with no adjustment (in the traditional risk-neutral world), and to discount the cash flows at the risk-free rate.

For more details on calculating the convexity and timing adjustments, we refer the reader to Hull [3].

Volatility parameters

The volatility parameters are an integral requirement of the constant maturity valuation.  They are used by the functions to calculate the required convexity and timing adjustments.  The short term rate volatility and yield volatility also need to be calculated (or be entered by the user) for all reset periods.

Example: 10 year CMS swap based on the 5 year rate paid quarterly

1.       The short term rate is the quarterly rate.  The best instruments to use to calculate the required volatility are quoted caps/floors.  Given the example above, the user could use a quoted 10 year quarterly reset cap/floor.  If the required cap/floor is unavailable, use aaVol_Crv2_Rcap_BL to bootstrap the required volatilities given other data.

2.       The yield volatility is the volatility of the underlying rate that is used in the constant maturity instrument.  In our example, this is the 5 year par swap rate.  The instruments that could be used are quoted swaptions.  Given the above example, the instruments used could be a swaption expiring in 3 months into a 5 year swap (3m x 5y), 6m x 5y, 9m x 5y, etc. If specific maturities are unavailable, interpolated volatilities may be required (use aaInterp to calculate).

 

FINCAD Functions

CMT/CMS Swaps/Notes

aaFRN_CM_cf(d_v, CM_pay, CM_r_rate, CM_fixpay, df_crv_acc, df_crv_disc, freq_cm, numcf_cm, acc_cm, d_rul_cm, acc_pay, acc_accrued, intrp, position, hl, table_type)

aaFRN_CM_p(d_v, CM_pay, CM_r_rate, CM_fixpay, df_crv_acc, df_crv_disc, freq_cm, numcf_cm, acc_cm, d_rul_cm, acc_pay, acc_accrued, intrp, position, hl, stat)

aaFRN_CM_iv(d_v, CM_pay, CM_r_rate, CM_fixpay, df_crv_acc, df_crv_disc, freq_cm, numcf_cm ,acc_cm, d_rul_cm, acc_pay, acc_accrued, intrp, position, hl, price)

aaFRN_CM_dgen_tables(d_v, d_e, d_t, d_f_cpn, d_l_cpn, frn_tbl, fixed_reset_tbl, freq_pay, d_rul_pay, set_pay, sprd, reset_mktdays, vol_corr_tbl, intrp, hl, table_type)

aaFRN_CM_dgen_cf(d_v, d_e, d_t, d_f_cpn, d_l_cpn, frn_tbl, fixed_reset_tbl, freq_pay, acc_pay, d_rul_cm_pay, acc_accrued, set_pay, df_crv_acc, df_crv_disc, freq_cm, numcf_cm, acc_cm, d_rul_cm, sprd, reset_mktdays, vol_corr_tbl, method, intrp, position, hl, table_type)

aaFRN_CM_dgen_p(d_v, d_e, d_t, d_f_cpn, d_l_cpn, frn_tbl, fixed_reset_tbl, freq_pay, acc_pay, d_rul_cm_pay, acc_accrued, set_pay, df_crv_acc, df_crv_disc, freq_cm, numcf_cm, acc_cm, d_rul_cm, sprd, reset_mktdays, vol_corr_tbl, method, intrp, position, hl, stat)

aaFRN_CM_dgen_iv(d_v, d_e, d_t, d_f_cpn, d_l_cpn, frn_tbl, fixed_reset_tbl, freq_pay, acc_pay, d_rul_cm_pay, acc_accrued, set_pay, df_crv_acc, df_crv_disc, freq_cm, numcf_cm, acc_cm, d_rul_cm, sprd, reset_mktdays, vol_corr_tbl, method, intrp, position, hl, price)

 

CMT/CMS Caps/Floors

aaCaplet_CM_BL(r_option_type, npa, d_v, d_exp, d_e, d_t, paydate, cm_reset, scalefactor, rate_ex, acc_pay, vlt_cm, vlt_fwd, corr_cm, d_cm_reset, d_cm_e, freq_cm, numcf_cm_yld, acc_cm, d_rul_cm, hl, df_crv_acc, df_crv_disc, intrp, stat)

aaRcap_CM_BL(d_v, CM_caplet_tbl, r_option_type, scalefactor, acc_pay, freq_cm, numcf_cm_yld, acc_cm, d_rul_cm, hl, df_crv_acc, df_crv_disc, method, intrp)

aaRcap_CM_BL_p(d_v, CM_caplet_tbl, r_option_type, scalefactor, acc_pay, freq_cm, numcf_cm_yld, acc_cm, d_rul_cm, hl, df_crv_acc, df_crv_disc, method, intrp, stat)

aaRcap_CM_BL_iv(d_v, CM_caplet_tbl, price, r_option_type, scalefactor, acc_pay, freq_cm, numcf_cm_yld, acc_cm, d_rul_cm, hl, df_crv_acc, df_crv_disc, method, intrp)

aaRcap_CM_BL_dgen_tables(d_v, d_e, d_m, d_f_cpn, d_l_cpn, freq, eff_mktdays, npa, rate_ex, vol_corr_tbl, r_table, r_option_type, set_pay, scalefactor, acc_cm, acc_pay, hl, d_rul_pay, freq_cm, numcf_cm_yld, d_rul_cm, df_crv_acc, df_crv_disc, method, intrp)

aaRcap_CM_BL_dgen(d_v, d_e, d_m, d_f_cpn, d_l_cpn, freq, eff_mktdays, npa, rate_ex, vol_corr_tbl, r_table, r_option_type, set_pay, scalefactor, acc_cm, acc_pay, hl, d_rul_pay, freq_cm, numcf_cm_yld, d_rul_cm, df_crv_acc, df_crv_disc, method, intrp)

aaRcap_CM_BL_dgen_p(d_v, d_e, d_m, d_f_cpn, d_l_cpn, freq, eff_mktdays, npa, rate_ex, vol_corr_tbl, r_table, r_option_type, set_pay, scalefactor, acc_cm, acc_pay, hl, d_rul_pay, freq_cm, numcf_cm_yld, d_rul_cm, df_crv_acc, df_crv_disc, method, intrp, stat)

aaRcap_CM_BL_dgen_iv(d_v, d_e, d_m, d_f_cpn, d_l_cpn, freq, eff_mktdays, npa, rate_ex, price, vol_corr_tbl, r_table, r_option_type, set_pay, scalefactor, acc_cm, acc_pay, hl, d_rul_pay, freq_cm, numcf_cm_yld, d_rul_cm, df_crv_acc, df_crv_disc, method, intrp)

These functions extend the regular cap/floor functions using Black’s model to CMS/CMT instruments by applying the necessary convexity and timing adjustments.  In the formula using Black’s model, the forward rate F is replaced with the convexity and timing adjusted CMS/CMT rate.  For more details on Black’s model for caps and floors, see the Interest Rate Caps and Floors FINCAD Math Reference document.

These 8 functions mirror the existing functions for caps and floors using Black’s model (aaCaplet_BL, aaRcap_BL, etc.) and the additional function aaRcap_CM_BL_dgen_tables.  This function generates the CMS/CMT caplet tables with payment dates at a specified frequency. The caplet tables are then used in the aaRcap_CM_BL* functions (which allow custom structures).

 

Description of Inputs

aaFRN_CM_cf

Input Argument

Description

d_v

value date

CM_pay

A table containing the coupon payment dates and notional amount for each coupon.

CM_r_rate

A table containing information related to the underlying swap rates or bond yields.  Note that each reset leg must be associated with a single pay leg through the ID argument.

CM_fixpay

A 2-column table containing dates and cash flow amounts.  This table can be used for any exchanges of principal, etc.

df_crv_acc

A curve of discount factors.  This curve is used for calculating the implied forward swap rates or bond yields.

df_crv_disc

A curve of discount factors.  This curve is used for discounting the cash flows.

freq_CM

The frequency of the underlying swap rate or bond yield:

1 = annual,

2 = semi-annual,

3 = quarterly,

4 = monthly

numcf_cm

The number of cash flows in the underlying swap rate or bond yield.  For example if the underlying is a 10 year US treasury yield (semi-annual) set this to 20 = 2*10.

acc_cm

The accrual of the underlying swap rate or bond yield.

d_rul_cm

The business day convention for the underlying yield.

acc_pay

The accrual for calculating the coupons

acc_accrued

The accrual for calculating accrued interest

interp

Interpolation method for interpolating from the curves

position

1 = long,

2 = short

hl

A holiday list

table_type

1 or 2 (see Description of Outputs below)

 

Description of Outputs

Output Table Type

Description

(table_type=1)

a 9 column table with information on the implied yields, the convexity adjustment. 

(table_type=2)

an 8 column table with information on the actual coupon payments, notional payments etc.

The functions aaFRN_CM_p and aaFRN_CM_iv take similar inputs as the aaFRN_CM_cf function, all of which allows custom structures to be defined.  The function aaFRN_CM_p calculates price and risk statistics.  The aaFRN_CM_iv calculates the implied volatility spread (applied to both the volatility of the yield rate and the volatility of the short-term rate) required for a given price. 

The functions aaFRN_CM_dgen_tables, aaFRN_CM_dgen_cf, aaFRN_CM_dgen_p and aaFRN_CM_dgen_iv are used to generate FRN’s for CMS/CMT swaps with payment dates at a specified frequency.  The function aaFRN_CM_dgen_tables is used to create the tables, used by the aaFRN_CM_cf functions, with payment dates at a specified frequency.  The functions aaFRN_CM_dgen_p, aaFRN_CM_dgen_cf and aaFRN_CM_dgen_iv are the corresponding cash flow, price and implied volatility spread functions.

Example

Valuing a constant maturity derivative using aaFRN_CM_cf

Consider the following three tables, CM_pay, CM_r_rate and CM_fixedpay.

Payment Table - constant maturity

ID number

effective date

terminating date

payment date

notional principal amount

1

15-Nov-1996

15-May-1997

15-May-1997

100

Reset Table - constant maturity

ID number

reset date

effective date

yield

margin above or below a floating rate

volatility of yield rate

volatility of short-term rate

correlation

1

14-Nov-1996

15-Nov-1996

0

0

0.15

0.20

0.70

Fixed Payment Table - constant maturity floating leg

payment date

payment amount

15-May-1997

100

These three tables describe a CMT floating rate note, where a 6-month coupon will be paid on 15-May-97 on a notional of 100.  The underlying swap rate (or bond yield) will be set on 14-Nov-1996 and will be effective 15-Nov-1996.  The yield has not been set and there is no margin, the yield volatility is 15% (note that it is assumed the yield is lognormal when calculating the convexity adjustment so this 15% is the volatility of the log of the yield).  Note that if the yield had already been reset (if the value date were after 14-Nov-1996), then the yield must be non-zero in the CM_r_rate table.  The volatility of the forward short-term rate (for the period 14-Nov-96 to 15-May-97 relative to the value date) is 20%, and the correlation between this rate and the underlying bond yield (or swap rate) is 0.70.   Finally, the last table indicates that there will be a principal payment of 100 on 15-May-1997.

Suppose that the input freq_CM = 2, numcf_cm = 10, acc_CM = 4 (30/360), and the value date is 1-Jan-1995.  This means that the underlying yield, which will be set on 14-Nov-1996, is a 5-year semi-annual bond yield.

Output Table Type = 1:  Yield Table

ID

reset date

effective date

terminating date

yield to maturity

adjustment

adjusted yield

rate + spread

volatility

1

14-Nov-1996

15-Nov-1996

15-Nov-2001

0.06000

0.00032

0.06032

0.06032

0.15

 

This indicates that the implied 5-year semi-annual yield is 6.000%, the calculated total adjustment (convexity adjustment plus timing adjustment) is 3.2 basis points and the adjusted yield is 6.032%.

Output Table Type = 2:  Cashflow Table

date

coupon

notional

total

PV coupon

PV notional

PV total

15-May-1997

3.016

100

103.016

2.621

86.915

89.536

This indicates that on 15-May-1997 an (implied) coupon of 3.016 will be received and a notional amount of 100 will also be received.  The total is 103.016.  The present value of each of these is shown in the last three columns.

If the eighth column of the CM_r_rate table were missing (i.e., only 7 columns provided), then the correlation would be assumed to be 1 for each reset.  If the seventh column were also missing (i.e., only 6 columns provided), then the volatility of the forward short-term rate would be assumed to be the same as the volatility of the underlying bond/swap rate.  Note that the calculation only uses the product of the correlation (column 8) and the volatility of the forward short-term rate (column 7).  For example, a correlation of 0.7 and a short-term volatility of 20% will give the same results as a correlation of 1.0 and a short-term volatility of 14%.

Notes

*       In these functions, there is an input to specify the method of calculating the convexity adjustment.  Currently, all the CMS/CMT functions use the convexity adjustment method described by Hull [3].  Other methods to perform the convexity adjustment also exist (see Pelsser [4], Doust [1], Hagan [2], Zhao and Tavella [6], Pugachevsky [5]).  This switch allows for possible future implementation of these other methods.

*       There are functions in FINCAD XL for valuing CMS/in-arrears swaps and CMS/in-arrears Bermudan swaptions using a two factor short rate model.  For more details on these functions, refer to the Multi-factor Short Rate Models FINCAD Math Reference document.

 

References

[1]          Doust, P., (1995), ‘Relative Pricing Techniques in the Swaps and Options Markets’, Journal of Financial Engineering, Volume 4 / Number 1, pp.11-46.

[2]          Hagan, P., (March 2003), ‘Convexity Conundrums: Pricing CMS Swaps, Caps and Floors’, Wilmott Magazine, pp.38-44

[3]          Hull, John C., (2000), Options, Futures and Other Derivatives, 4th edition, Prentice Hall.

[4]          Pelsser, A., (February 2003), ‘Mathematical Foundation of Convexity Correction’, Quantitative Finance, 3, pp. 59-65.

[5]          Pugachevsky, D., (March 2001) ‘Forward CMS rate adjustment’, Risk, pp.125-128.

[6]          Zhao, E.Y., Tavella, D., (1997), ‘Exact Pricing Formula for Caps and Floors in Arrears’, Journal of Financial Engineering, Volume 6 / Number 1, pp.321-329.

 

 

Disclaimer

 

With respect to this document, FinancialCAD Corporation (“FINCAD”) makes no warranty either express or implied, including, but not limited to, any implied warranty of merchantability or fitness for a particular purpose. In no event shall FINCAD be liable to anyone for special, collateral, incidental, or consequential damages in connection with or arising out of the use of this document or the information contained in it. This document should not be relied on as a substitute for your own independent research or the advice of your professional financial, accounting or other advisors.

 

This information is subject to change without notice. FINCAD assumes no responsibility for any errors in this document or their consequences and reserves the right to make changes to this document without notice.

 

Copyright

 

Copyright © FinancialCAD Corporation 2008. All rights reserved.