100% found this document useful (1 vote)
956 views44 pages

Thomson Reuters Eikon Adfin Term Structure Calculation Guide

42536

Uploaded by

Hải Dương
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
956 views44 pages

Thomson Reuters Eikon Adfin Term Structure Calculation Guide

42536

Uploaded by

Hải Dương
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

THOMSON REUTERS EIKON

ADFIN TERM STRUCTURE


CALCULATION GUIDE
DOCUMENT NUMBER 601637.4
1 March 2011
Copyright © 2005-2011 Thomson Reuters. All Rights Reserved.
Republication or redistribution of Thomson Reuters content, including by framing or similar means, is prohibited without the
prior written consent of Thomson Reuters. "Thomson Reuters" and the Thomson Reuters logo are trademarks of Thomson
Reuters and its affiliated companies.
Acknowledgement is made to all other brand or product names referred to in the text that are registered trademarks,
trademarks, or trade names of their respective owners.
Document History
DOCUMENT NUMBER DATE UPDATE

601637.4 1 March 2011 Reformatted "Where" tables

601637.3 4 February 2011 Revised formulas

601637.2 28 January 2011 Replaced formulas with transparent GIFs for conversion
to HTML; minor corrections to some formulas

601637.1 11 November 2010 Renamed the calculation guide to Thomson Reuters


Eikon Adfin Term Structure Calculation Guide
Thomson Reuters Eikon Adfin Term Structure Calculation Guide

TABLE OF CONTENTS
THOMSON REUTERS EIKON ADFIN TERM
STRUCTURE CALCULATION GUIDE .......................................... 2
BOOTSTRAPPING MODEL .................................................................. 3
Bootstrapping a Zero Coupon Discount Factor Curve from
Deposits, Futures and Swaps .............................................. 3

Bootstrapping a ZC Discount Factor Curve from Deposits


and Bonds .......................................................................... 11

Generating a Forward Discount Factor Curve ................... 14

Convexity Adjustments ...................................................... 17

VASICEK-FONG MODEL .................................................................. 25


Least-Squares Regression ................................................ 25

Generating a Zero Coupon Discount Factor Curve from the


Vasicek- Fong Coefficients ................................................ 28

BASIS SPLINE MODEL ..................................................................... 34


Theoretical Models ............................................................. 35

Examples in Thomson Reuters Eikon Excel ...................... 37

Generating a Zero Coupon Discount Factor Curve from


Basis Spline Coefficients ................................................... 40

1
THOMSON REUTERS EIKON ADFIN TERM
STRUCTURE CALCULATION GUIDE
This section describes methods for generating different types of term structures: spot discount factors, forward discount
factors, and zero-coupon yield curves.
By definition, a zero-coupon instrument pays no interim cash flows. This term was first used for bonds that pay no
coupons. For such bonds, the common measure of the return is "yield to maturity", which is simply the yield earned when
the bond is held to maturity. The yield to maturity of a zero-coupon bond is called a zero-coupon rate.
A "zero-coupon yield curve", or "ZC curve" for short, is a series of zero-coupon rates or discount factors for different
maturities. The individual zero-coupon rates can be derived from a variety of existing instruments, including money market
deposit rates, futures contract prices, and the swap rates of bond prices.
By definition, the discount factor is the factor by which the future value of an instrument should be multiplied to calculate
its present value:

WHERE DENOTES

Present value

Future value at maturity

Discount factor at maturity

It follows that the discount factor is directly linked to the zero-coupon rate of a zero-coupon instrument maturing in
years. Please refer to the section "Transform a rate to a discount factor" in the Adfin Common Calculation Guide for more
detailed information on the following relationships:

 using a money market calculation basis:

 using an actuarial basis:

 using a discount basis:

 using a continuous basis:

The Adfin Term Structure Calculation Guide is divided into three sections. Each section focuses on a different model for
building spot and forward zero-coupon yield curves or discount factor curves:
 Bootstrapping Model
 Vasicek-Fong Model
 Basis Spline (B-spline) Model

The bootstrapping method models the zero rates as a piecewise linear curve; that is, the curve is linear between
consecutive nodes but the slope is discontinuous at the nodes. The Vasicek-Fong and Basis Spline models are more
appropriate choices for generating a forward yield curve from bonds.
The Black, Derman & Toy and Hull & White calibration models, among others, are explained in the Options section of this
guide.

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

BOOTSTRAPPING MODEL
Any combination of additive cash flows can be shown to be a combination of zero-coupon cash flows. Splitting an
instrument into its constituent zero-coupon cash flows is important because an instrument with multiple cash flows should
not be discounted using a uniform interest rate curve from settlement date to maturity. This „stripping‟ of the curve and the
successive calculation of discount factors is termed bootstrapping.
To construct a spot curve that is as representative as possible of the market, one should use the most liquid risk-free
instruments for each term:
 Short-term (3M-1Y): cash deposit rates, short-term interest rate (STIR) futures, implied deposit rates, treasury bills.
 Long-term (2Y-30Y): bonds, interest rate swaps.
A spot zero coupon curve can be generated using the Bootstrapping model by the AdTermStructure() function, which
can be found in the Adfin TermStructure category.
For each deposit, the method calculates the discount factor at the maturity date of the deposit.
For each STIR future, the method calculates the discount factor at the maturity date of the future. This is done by
compounding the discount factor at the settlement date of the future with the discount factor of the future. The calculation
is straightforward when the end date of a period is also the start date of the following period; it just consists of applying the
forward rate formula recursively using a money market rate for the first point.
A more complex method is needed for futures contracts, because their hedging periods are not regularly spaced. Gaps
and overlaps between consecutive futures periods should be treated with specific algorithms in order to respect the
original prices (that is, it must be possible to retrieve the correct futures contract prices from the zero-coupon curve) and
generate a smooth curve.
For each swap, the method calculates the discount factor at the maturity date of the swap, assuming that the Net Present
Value of the swap is equal to zero. For other cash flow dates, the discount factors are interpolated.
Intermediate points on the curve can be estimated by interpolating the discount factors or rates. The linear, exponential
and cubic spline interpolation methods assume different curve shapes between known points. All three methods are
available in Thomson Reuters Eikon Excel; refer to the Adfin Common Calculations Guide for a deeper financial
explanation of their uses, advantages, and limitations.
This section provides two detailed examples of discount factor curve generation, one example using the AdRate()
function, and then discusses convexity adjustments to the yield curves.
 Bootstrapping a ZC Discount Factor curve from Deposits, Futures, and Swaps
 Bootstrapping a ZC Discount Factor curve from Deposits and Bonds
 Generating a Forward Discount Curve
 Convexity Adjustments

BOOTSTRAPPING A ZERO COUPON DISCOUNT FACTOR CURVE FROM DEPOSITS, FUTURES AND SWAPS
In this section the curve is built with the following instruments:
 Deposits to initiate the yield curve. The calculation is a straightforward rate conversion. Deposits are quoted as money
market rates. The year basis and settlement rules are defined in the Currency Styles Database. Adfin supports
standard maturities (overnight, tom next, …, 12 months ), non-standard maturities (such as 10 days or 3 weeks) and
fixed-maturity rates (for example, to 10/06/1998 or 30/06/1998).
 STIR Futures up to the 3-year maturity because of their liquidity. The calculation compounds forward rates using the
smoothing method of AdFutToZc().
The stub period will be properly interpolated from the deposit curve. Market conventions are defined in the STIR Future
Styles Database.

 Interest Rate Swaps to build a long-term zero coupon curve based on forward rates (again, both standard and non-
standard maturities are allowed). Market conventions are defined in the IRS Styles Database.

3
Example in Thomson Reuters Eikon Excel
INSTRUMENT START DATE* MATURITY DATE* COUPON MARKET INSTRUMENT
TYPE RATE** RATE STRUCTURE

ON D 01Feb05 02Feb05 2.060% EUR

TN D 02Feb05 03Feb05 2.070% EUR

SW D 03Feb05 10Feb05 2.110% EUR

1M D 03Feb05 03Mar05 2.130% EUR

2M D 03Feb05 04Apr05 2.160% EUR

3M D 03Feb05 03May05 2.170% EUR

6M D 03Feb05 03Aug05 2.210% EUR

9M D 03Feb05 03Nov05 2.210% EUR

H05 F 16Mar05 16Jun05 2.158% FEI

M05 F 15Jun05 15Sep05 2.238% FEI

U05 F 21Sep05 21Dec05 2.353% FEI

Z05 F 21Dec05 21Mar06 2.488% FEI

H06 F 15Mar06 15Jun06 2.598% FEI

M06 F 21Jun06 21Sep06 2.728% FEI

2Y S 03Feb05 2Y 0.000% 2.552% EUR_AB6E

3Y S 03Feb05 3Y 0.000% 2.750% EUR_AB6E

4Y S 03Feb05 4Y 0.000% 2.916% EUR_AB6E

5Y S 03Feb05 5Y 0.000% 3.063% EUR_AB6E

6Y S 03Feb05 6Y 0.000% 3.195% EUR_AB6E

7Y S 03Feb05 7Y 0.000% 3.325% EUR_AB6E

8Y S 03Feb05 8Y 0.000% 3.430% EUR_AB6E

9Y S 03Feb05 9Y 0.000% 3.527% EUR_AB6E

10Y S 03Feb05 10Y 0.000% 3.611% EUR_AB6E

15Y S 03Feb05 15Y 0.000% 3.878% EUR_AB6E

*Start and maturity dates can be calculated from a future maturity code (such as M1) using the AdFutCodes()
function. For deposits, start and maturity dates can be calculated using the FxCalcPeriod() function.
**Not applicable for deposit, futures and swaps.

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

RateStructure
KEYWORD COMMENT

RM:YC Specifies a yield curve model

ZCTYPE:DF Specifies discount factors as the zero-coupon yield curve type (to get rates, use the
keyword value ZCTYPE:RATE)

Syntax
=AdTermStructure(InstrumentArray1,“RM:YC ZCTYPE:DF”,”RET:A28”)

Results returned by the function


=AdTermStructure() returns:

DATE RATE / DF

01Feb05 100.00000%

02Feb05 99.99428%

03Feb05 99.98853%

10Feb05 99.94752%

03Mar05 99.82316%

16Mar05 99.74463%

16Jun05 99.19769%

15Sep05 98.63961%

21Dec05 98.01830%

21Mar06 97.41252%

15Jun06 96.81027%

21Sep06 96.09677%

05Feb07 95.05537%

04Feb08 92.14566%

03Feb09 89.08182%

03Feb10 85.90086%

03Feb11 82.65299%

03Feb12 79.31055%

04Feb13 76.04207%

03Feb14 72.80420%

5
DATE RATE / DF

03Feb15 69.64200%

03Feb20 55.54109%

Manual Calculations
Manual calculations are detailed for the discount factor:
 from Deposits
 from Futures
 from Swap Rates

Discount Factor Calculation from Deposits


The start date, for rates following ON and TN (SW, 1M…) is the spot date. As such, the corresponding discount
factors (SW, 1M…) are corrected for Rate1 (ON) and Rate2 (TN) and Ratei.
PER START MATURITY RATEI LI * DFI **
IOD DATE DATE

0.0
O 01Fe 02Feb 2.06
027
N b05 05 %
8

0.0
T 02Fe 03Feb 2.07
027
N b05 05 %
8

0.0
S 03Fe 10Feb 2.11
194
W b05 05 %
4

0.0
1 03Fe 03Mar 2.13
777
M b05 05 %
8

0.1
2 03Fe 04Apr 2.16
666
M b05 05 %
7

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

PER START MATURITY RATEI LI * DFI **


IOD DATE DATE

0.2
3 03Fe 03May 2.17
472
M b05 05 %
2

0.5
6 03Fe 03Aug 2.21
027
M b05 05 %
8

0.7
9 03Fe 03Nov 2.21
583
M b05 05 %
3

* is the number of years between the two dates. It can be calculated using the DfCountYears() function. In this
example, the day count basis is Actual/360 (DCB:A0).
**Zero coupon discount factor at time

The short-term zero coupon yield curve finishes at the start date of the first future. The discount factor on the
20th of June is calculated by interpolating the deposits discount curve calculated above.

Interpolation on the deposit yield curve on the 20th of June:


DF9=AdInterp(“15JUN05”,{01Feb05;16JUN05},{100.00%;99.19769%},”IM:LIN”) = 99.20364%

Discount Factor Calculation from Futures


DFSI AT DFSEI ***
FUT START MATURITY MARKET
LI * START DATE DFI
CODE DATE DATE RATE
**

H05 16Mar05 16Jun05 2.158% 0.2555 99.7446%

M05 15Jun05 15Sep05 2.238% 0.2555 99.2036%

****
U05 21Sep05 21Dec05 2.353% 0.2527 98.6012%

Z05 21Dec05 21Mar06 2.488% 0.25 98.0183%

7
DFSI AT DFSEI ***
FUT START MATURITY MARKET
LI * START DATE DFI
CODE DATE DATE RATE
**

H06 15Mar06 15Jun06 2.598% 0.2555 97.4529%

****
M06 21Jun06 21Sep06 2.728% 0.2555 96.7666%

* is the number of years between the two dates. It can be calculated using the DfCountYears() function. In this
example the day count basis is Actual/360 (DCB:A0).
**The discount factor at the start date of each future is calculated from previous elements of the yield curve, as it
is being built.
*** Discount factor calculated from the start and the end date of each future. The start and maturity dates can be
calculated from a maturity code (such as M1) using the AdFutCodes() function.

**** When the start date of the future is superior to the end date of the future , Adfin must resolve the gap.
See "Second case (gap)" below for an example.

If the maturity date of one future is not the same as the start date of the next, there are two possible cases: an overlap
between the periods, or a gap. Each case requires a different calculation.
First case (overlap): the start date of the future is less than the end date of the future :

In this case an interpolation is used to calculate .

An example using the second future:


Part of the yield curve has already been built:
DATE RATE / DF

01Feb05 100.00000%

02Feb05 99.98742%

03Feb05 99.97484%

10Feb05 99.88666%

03Mar05 99.79864%

16Mar05 99.73595%

16June 99.19769%

DFS2=AdInterp(“15Jun05”,{01Feb05;16Jun05},{100.00%;99.19769%},”IM:LIN”)= 99.2036%

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

The same method is used for: and

Second case (gap): the start date of future is greater than the end date of future :

In this case is calculated using the unknown (see the explanation provided in note ****).

Example on the third future:


For the calculation we need the end part of the zero coupon yield curve already built:
DATE RATE / DF

16Jun05 99.74463%

15Sep05 98.63961%

21Dec05

For the moment :

We assume that

We know
WHERE EQUALS

=99.408856%
The discount factor calculated from the start and the end date of the
third future

Moreover:

=AdInterp(“21Sep05”,{16Jun05;15Sep05;21Dec05},{99.74463%,98.63961%,DF4},”IM:LIN”)

Then:

We have the following system:

= Interpolation From 16Jun05 to 21Dec05

9
Finally to find we will solve using the Excel solver.

The same method is used for the last future.

Discount Factor Calculation from Swap Rates


In this part an explicit example focused on the first swap is used to explain the calculation. This calculation is extended to
all swaps, which are used to build the discount factor curve.
To calculate the next discount factor we use the part of the discount factor curve already built. The date of the unknown
discount factor corresponds to the maturity date of the IRS.
DATE DF

01Feb05 100.00000%

02Feb05 99.98742%

03Feb05 99.97484%

10Feb05 99.88666%

03Mar05 99.79864%

16Mar05 99.73595%

16Jun05 98.61947%

15Sep05 97.59791%

21Dec05 96.58378%

21Mar06 95.55686%

15Jun06 94.53152%

21Sep06 93.49816%

05Feb07 DF02Jun03 (unknown DF) = 0

For the moment, we assume that the for 05Feb07 (whose value is unknown) is equal to zero.

The actual value of the for 05Feb07 is that which makes the Net Present Value of the swap equal to 0.

For example, the of the interest rate swap is given by the formula

We use the SwIrsPx() function for our calculations. For more information on how to calculate the Net Present Value of an
Interest Rate Swap refer to the Swaps chapter of the Thomson Reuters Eikon Adfin Calculations Guides.

10

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

=SwIrsPx(“01Feb05”,ZcDates,ZcRates,”03Feb05”,2Y,2.552%,0,”EUR_AB6E”,”LAY:V RET:A3 ZCTYPE:DF


IM:LIN”)

ZcDates: from the 1st date to the last date

ZcRates: from the 1st to the last (the last being the unknown value for 05Feb07)

Results returned by the function


=SwIrsPx()when setting the DF for 05Feb07 = 0 returns:

0.01041

Floating NPV 0.03535

Fixed NPV 0.02494

Therefore by solving the formula

using the excel solver, we have:

95.05537%

To complete the yield curve the same method is used for the next swap until the end.

BOOTSTRAPPING A ZC DISCOUNT FACTOR CURVE FROM DEPOSITS AND BONDS


In this section the curve is built with the following instruments:
 Deposits to initiate the yield curve. The calculation is a straightforward rate conversion. Deposits are quoted as money
market rates. The year basis and settlement rules are defined in the Currency Styles Database.
 Bonds (mainly government bonds) to build benchmark yield curves using the bootstrapping method. Bonds are
generally quoted in clean prices; exchanges or contributors publish market prices. Market conventions are defined in
the Bond Styles Database. They can also be obtained as a Bond Structure from the Thomson Reuters Data Engine.
Thomson Reuters Eikon Excel handles treasury bills as bonds; the user can use them for short-term periods.

Example in Thomson Reuters Eikon Excel


INSTRUMENT
INSTRUMENT TYPE START DATE MATURITY DATE COUPON RATE MARKET
STRUCTURE

D 29May01 30May01 4.630% GBP

D 30May01 31May01 5.150% GBP

D 31May01 07Jun01 5.180% GBP

D 31May01 14Jun01 5.140% GBP

D 31May01 29Jun01 5.110% GBP

D 31May01 31Jul01 5.090% GBP

11
INSTRUMENT
INSTRUMENT TYPE START DATE MATURITY DATE COUPON RATE MARKET
STRUCTURE

D 31May01 30Nov01 5.090% GBP

D 31May01 28Feb02 5.160% GBP

D 31May01 31May02 5.220% GBP

B 30May01 07Jun02 7.000% 102.380% GILT

B 30May01 07Dec03 6.500% 104.070% GILT

B 30May01 26Nov04 6.750% 106.360% GILT

B 30May01 07Dec05 8.500% 115.120% GILT

B 30May01 07Dec06 7.500% 112.810% GILT

B 30May01 07Dec07 7.250% 113.360% GILT

B 30May01 13Oct08 9.000% 125.650% GILT

B 30May01 07Dec09 5.750% 106.450% GILT

B 30May01 07Dec15 8.000% 133.190% GILT

B 30May01 07Jun21 8.000% 142.290% GILT

B 30May01 07Dec28 6.000% 121.170% GILT

RateStructure
KEYWORD COMMENT

RM:YC Specifies a yield curve model

ZCTYPE:DF Specifies discount factors as the zero-coupon yield curve type (to get rates, use the
keyword value ZCTYPE:RATE)

Syntax
=AdTermStructure(Input array,“RM:YC ZCTYPE:DF”,””)

Results returned by the function


=AdTermStructure() returns:

DATE RATE / DF

29-May-01 100.000%

30-May-01 99.987%

31-May-01 99.973%

07-Jun-01 99.874%

12

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

DATE RATE / DF

14-Jun-01 99.777%

29-Jun-01 99.569%

31-Jul-01 99.130%

30-Nov-01 97.485%

28-Feb-02 96.258%

31-May-02 95.014%

07-Jun-02 95.463%

07-Dec-03 88.773%

26-Nov-04 84.893%

07-Dec-05 80.871%

07-Dec-06 76.755%

07-Dec-07 73.138%

13-Oct-08 70.326%

07-Dec-09 66.608%

07-Dec-15 50.084%

07-Jun-21 39.650%

07-Dec-28 28.920%

Manual Calculation
The deposit part of the yield curve is not explained as it has been explained in the previous section. We will focus on the
bond part of the yield curve. An explicit example is used on the first bond and then by repeating the method you will be
able to build the end of the bond curve.
Example on the first bond:
The bond settles the 30MAY01 and matures the 07JUN02 and pays a coupon of 7%.
Its market price is 102.8% and its BondStructure is a GILT (it is a bond style).
The method consists in finding the discount factor at the maturity date (07JUN02), which enables you to retrieve the given
market price. Instead of using cash flows directly for this calculation, the AdBondPrice() function is used to return the
result.
To calculate the discount factor at the maturity date (07JUN02) we need the part of the discount factor curve already built.

DATE RATE / DF

29-May-01 100.000%

30-May-01 99.987%

13
DATE RATE / DF

31-May-01 99.973%

07-Jun-01 99.874%

14-Jun-01 99.777%

29-Jun-01 99.569%

31-Jul-01 99.130%

30-Nov-01 97.485%

28-Feb-02 96.258%

31-May-02 95.014%

07-Jun-02 DF07JUN02 = 0

For the moment we assume that DF07JUN02 = 0.

Syntax
=AdBondPrice(“30MAY01”,ZcCurve,”07JUN02”,”7%”,””,”GILT”,“RM:YC ZCTYPE:DF”,””,”LAY:V RET:B1”)
ZcCurve: array of Dates and Df from 29May01 to 07Jun02 (for DF: from 1% to 0)

Results returned by the function


=AdBondPrice() returns with a DF07JUN02 = 0:

Price 3.563%

The market price of the bond maturing the 07Jun02 is known as 102.38%, so by solving the function
AdBondPrice()=102.8% using the excel solver, we find the unknown DF:

95.463%

To complete the yield curve the same method is used for the next bond, and so on until the last one.

GENERATING A FORWARD DISCOUNT FACTOR CURVE


In this example all results from the AdRate() function are retrieved, and then the formulas to calculate the results are
detailed.
Example in Thomson Reuters Eikon Excel
The “spot” discount factor curve used in this example is the curve detailed in the previous section (deposit and bond
curve):
DATE RATE / DF

29-May-01 100.000%

30-May-01 99.987%

31-May-01 99.973%

14

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

DATE RATE / DF

07-Jun-01 99.874%

14-Jun-01 99.777%

29-Jun-01 99.569%

31-Jul-01 99.130%

30-Nov-01 97.485%

28-Feb-02 96.258%

31-May-02 95.014%

07-Jun-02 95.463%

07-Dec-03 88.773%

26-Nov-04 84.893%

07-Dec-05 80.871%

07-Dec-06 76.755%

07-Dec-07 73.138%

13-Oct-08 70.326%

07-Dec-09 66.608%

07-Dec-15 50.084%

07-Jun-21 39.650%

07-Dec-28 28.920%
Start date of the forward yield curve: 15JUN01

PERIOD DATEARRAY

15 Jun 2001

6M 17 Dec 2001

1Y 17 Jun 2002

1Y6M 17 Dec 2002

2Y 16 Jun 2003

2Y6M 16 Dec 2003

3Y 15 Jun 2004

15
PERIOD DATEARRAY

3Y6M 15 Dec 2004

4Y 15 Jun 2005

The forward dates (6M, 1Y…) can be calculated using the DfAddPeriod() function.

Syntax
=AdRate(“15JUN01”,DateArray,YieldCurve, “RM:YC ZCTYPE:DF”,”LAY:H”)

Results returned by the function


=AdRate() returns the forward Discount Factors:

FORWARD DF DATE FORWARD DISCOUNT FACTOR FDFI

15 Jun 2001 100.00000%

17 Dec 2001 97.48497%

17 Jun 2002 95.56806%

17 Dec 2002 93.32870%

16 Jun 2003 91.11382%

16 Dec 2003 88.88597%

15 Jun 2004 86.89169%

15 Dec 2004 84.89096%

15 Jun 2005 82.93984%

Manual Calculation
In this example we are calculating the forward yield curve:

Calculation of , the 3rd forward discount factor (17 Jun 2002, 95.56806%).

First part of the calculation


Interpolation on the spot discount factor curve at each forward dates:
DATE INTERPOLATED DF FROM SPOT CURVE*

15 Jun 2001 =AdInterp(“15JUN01”;Zcdates;ZcRates;”IM:LIN”)=99.76266%

17 Dec 2001 =AdInterp(“17DEC01”;Zcdates;ZcRates;”IM:LIN”)=97.25361%

17 Jun 2002 95.34124%

17 Dec 2002 93.10720%

16

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

DATE INTERPOLATED DF FROM SPOT CURVE*

16 Jun 2003 90.89757%

16 Dec 2003 88.67502%

15 Jun 2004 86.68547%

15 Dec 2004 84.68948%

15 Jun 2005 82.74300%

* Refer to the Adfin Common Calculations Guide for more financial information on
interpolation methods available in Adfin.

Second part of the calculation


From the interpolated DF at forward curve start date and the interpolated DF at each forward curve date (3 rd forward date,
17JUN02, in our example) it is now possible to calculate the forward discount factors (FDFi).

Example on :
FDF3=AdDepToFra(“29MAY01”;”15JUN01”;”17JUN02”;”RATES:DF”;99.76266%,95.34124%)

29MAY01 being the “spot” discount factor curve start date.


Refer to the Adfin Common Calculations Guide for more financial information on forward discount factor and rates
calculations.

CONVEXITY ADJUSTMENTS
When the term structure of an interest rate is considered flat for all maturities, it can be shown that the prices of forward
and futures contracts are the same.
When interest rates are assumed to evolve stochastically, the two types of contract are no longer equivalent. Roughly
speaking, the difference lies in the fact that a future contract is highly liquid and provides immediate losses or gains.
(When there is a loss, it can be refinanced at a lower rate; when there is a profit, the benefit can be invested at a higher
rate.) The overall effect is that the price curve of the futures contract is bent slightly upwards.
Hull and White model

The price of a futures contract can be adjusted on several ways. Adfin corrects for a concave price curve (that is, it
corrects for overpricing relative to the flat rate curve) using the Hull and White model. Explicit closed formulas for this case
were derived by Kirikos and Novak in their book Convexity Conundrums. The assumptions of the model are as follows.

In the Hull and White model, the interest rate obeys the Stochastic Differential Equation

WHERE DENOTES

a deterministic function

a constant known as the mean reversion

the volatility

17
WHERE DENOTES

a standard Brownian Motion process

Under a risk-neutral interest rate process, Kirikos and Novak derived the following adjustment:

WHERE DENOTES

today‟s futures rate

forward rate

future time period

convexity constant

a parameter to adjust for the fact that we are dealing with an interest
rate

a mark to market adjustment

There are two important cases:


When is different from zero,

When ,

WHERE DENOTES

the start date of the futures contract

the end date of the futures contract

18

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

Example of convexity future adjustment

Suppose we are given the following input data:


INSTRUMENT
START DATE MATURITY DATE MARKET PRICE STRUCTURE
TYPE

D 24/02/2005 25/02/2005 0.0255 USD

D 25/02/2005 28/02/2005 0.0256 USD

D 28/02/2005 07/03/2005 0.026 USD

D 28/02/2005 31/03/2005 0.0268 USD

D 28/02/2005 29/04/2005 0.0277 USD

D 28/02/2005 31/05/2005 0.0291 USD

D 28/02/2005 31/08/2005 0.0315 USD

D 28/02/2005 30/11/2005 0.0331 USD

F 16/03/2005 16/06/2005 0.0299125 ED

F 15/06/2005 15/09/2005 0.034125 ED

F 21/09/2005 21/12/2005 0.037225 ED

F 21/12/2005 21/03/2006 0.039225 ED

F 15/03/2006 15/06/2006 0.040325 ED

F 21/06/2006 21/09/2006 0.041125 ED

F 20/09/2006 20/12/2006 0.041825 ED

F 20/12/2006 20/03/2007 0.042475 ED

F 21/03/2007 21/06/2007 0.042825 ED

F 20/06/2007 20/09/2007 0.043275 ED

F 19/09/2007 19/12/2007 0.04375 ED

F 19/12/2007 19/03/2008 0.0443 ED

19
INSTRUMENT
START DATE MATURITY DATE MARKET PRICE STRUCTURE
TYPE

F 19/03/2008 19/06/2008 0.044675 ED

F 18/06/2008 18/09/2008 0.0453 ED

F 17/09/2008 17/12/2008 0.04575 ED

F 17/12/2008 17/03/2009 0.04645 ED

F 18/03/2009 18/06/2009 0.04675 ED

F 17/06/2009 17/09/2009 0.0473 ED

F 16/09/2009 16/12/2009 0.0477 ED

F 16/12/2009 16/03/2010 0.0484 ED

With the following volatility and mean reversion:


Rate RM:YC ZCTYPE:DF HWVOL:0.010089076587603 HWMEAN:0.0684622586769373
Stucture
Syntax
=AdTermStructure(Input_Array, RateStructure, “RET:A25”)

We get the following table:


ADJUSTED

24/02/2005 1.00000000 21/06/2007 0.91402422

25/02/2005 0.99992917 20/09/2007 0.90419888

28/02/2005 0.99971590 19/12/2007 0.89449147

07/03/2005 0.99921074 19/03/2008 0.88467366

16/03/2005 0.99853700 19/06/2008 0.87478786

16/06/2005 0.99096218 18/09/2008 0.86499609

15/09/2005 0.98247962 17/12/2008 0.85533834

21/12/2005 0.97273112 17/03/2009 0.84565613

20

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

ADJUSTED

21/03/2006 0.96329762 18/06/2009 0.83571902

15/06/2006 0.95411312 17/09/2009 0.82600940

21/09/2006 0.94357867 16/12/2009 0.81645174

20/12/2006 0.93384860 16/03/2010 0.80688009

20/03/2007 0.92408035

Manual Calculation

We start with an unadjusted term structure. Please refer to Section 2.3 for a description of this step. Suppose we obtain
the following zero curve:
UNADJUSTED UNADJUSTED

24/02/2005 1.00000000 21/06/2007 0.91382369

25/02/2005 0.99992917 20/09/2007 0.90393563

28/02/2005 0.99971590 19/12/2007 0.89415579

07/03/2005 0.99921074 19/03/2008 0.88425387

16/03/2005 0.99853700 19/06/2008 0.87427235

16/06/2005 0.99096178 18/09/2008 0.86437427

15/09/2005 0.98247611 17/12/2008 0.85459995

21/12/2005 0.97271967 17/03/2009 0.84478983

21/03/2006 0.96327356 18/06/2009 0.83470898

15/06/2006 0.95407133 17/09/2009 0.82484681

21/09/2006 0.94350862 16/12/2009 0.81512679

20/12/2006 0.93374446 16/03/2010 0.80538168

20/03/2007 0.92393344

21
To obtain the adjusted curve, we follow the same procedure used to generate a normal term structure from a series of
futures prices. That is, we must consider three cases: the normal case where the end date of one futures contract is
exactly the same as the start date of the next, the case of overlapping periods, and the case of periods separated by a
gap.
The first future starts on 16/03/2005. We therefore begin by calculating a yield curve from the beginning of the series up to
the deposit whose end date is 31/03/2005; that is, up to the fourth in the series.
DF FROM DEPOSITS

24/02/2005 1.00000000

25/02/2005 0.99992917

28/02/2005 0.99971590

07/03/2005 0.99921074

31/03/2005 0.99741409

Using these data, we interpolate to get the discount factor for the date 16MAR2005.
AdInterp(“16MAR05”, {07MAR05;31MAR05},{0.99921074, 0.99741409}) = 0.99853700

We can therefore modify our curve as follows:


ADJUSTED

24/02/2005 1.00000000

25/02/2005 0.99992917

28/02/2005 0.99971590

07/03/2005 0.99921074

16/03/2005 0.99853700

In order to calculate the adjustments, we first construct the following table of future discount factors using the formulas set
out in Section 2.4.2:
EXPOSURE PROTECTION DF FUT
LAMBDA PHI EXP(C) DF FUT
TIME* TIME* ADJUSTED

0.05555556 0.25555556 0.00000036 0.00000004 0.99999960 0.99241369 0.99241408

0.30833333 0.25555556 0.00000197 0.00000120 0.99999683 0.99135456 0.99135771

0.58055556 0.25277778 0.00000357 0.00000413 0.99999230 0.99067806 0.99068569

0.83333333 0.25000000 0.00000493 0.00000828 0.99998680 0.99028898 0.99030205

22

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Bootstrapping Model

EXPOSURE PROTECTION DF FUT


LAMBDA PHI EXP(C) DF FUT
TIME* TIME* ADJUSTED

1.05277778 0.25555556 0.00000640 0.00001330 0.99998029 0.98979984 0.98981934

1.32500000 0.25555556 0.00000792 0.00002069 0.99997140 0.98959958 0.98962789

1.57777778 0.25277778 0.00000907 0.00002853 0.99996240 0.98953818 0.98957538

1.83055556 0.25000000 0.00001013 0.00003734 0.99995253 0.98949282 0.98953979

2.06944444 0.25555556 0.00001177 0.00004800 0.99994023 0.98917431 0.98923344

2.32222222 0.25555556 0.00001299 0.00005943 0.99992757 0.98906180 0.98913344

2.57500000 0.25277778 0.00001387 0.00007108 0.99991505 0.98906194 0.98914597

2.82777778 0.25277778 0.00001499 0.00008430 0.99990072 0.98892595 0.98902415

3.06388889 0.25555556 0.00001635 0.00009849 0.99988517 0.98871193 0.98882548

3.31666667 0.25555556 0.00001741 0.00011351 0.99986909 0.98855582 0.98868525

3.56944444 0.25277778 0.00001805 0.00012791 0.99985406 0.98856763 0.98871192

3.82222222 0.25000000 0.00001861 0.00014268 0.99983872 0.98852080 0.98868026

4.06111111 0.25555556 0.00002035 0.00016207 0.99981760 0.98819383 0.98837411

4.31388889 0.25555556 0.00002128 0.00017988 0.99979886 0.98805659 0.98825537

4.56666667 0.25277778 0.00002170 0.00019616 0.99978216 0.98808615 0.98830144

4.81944444 0.25000000 0.00002207 0.00021259 0.99976538 0.98804466 0.98827653

* Exposure time is the Actual/360 period in years between the start date of the term structure and the start date of the
corresponding future. For example, for the first future we have an exposure time of
DfCountYears(“24FEB05”, “16MAR05”, “DCB:A0”) = 0.05555556
** Protection time is the Actual/360 period in years between the start date and the end date of the corresponding futures
contract. For example, for the first future we have a protection time of
DfCountYears(“24FEB05”, “16JUN05”, “DCB:A0”) = 0.25555556
To obtain the discount factor of the first futures contract on 16JUN05, we simply multiply the discount factor of 16MAR05,
interpolated from the partial yield curve, by the end date discount factor calculated from the formulas of Section 2.4.2.
0.99241408×0.99853700 = 0.99096218.

23
Note that the end date of this future is the same as the start date of the next future. The next discount factor is therefore
simply the product of the previous discount factor and the adjusted future (row 2 of the above table), namely
0.99096178×0.99135771 = 0.98247962.
For the next future there is a gap, so we proceed as follows.

Denote the end date of the previous future as . We already know the discount factor on this date.

Let the next short Interest rate future begin on and end on . We denote the unknown discount factors on these
dates and respectively. (In the case of a gap between the futures, )

The adjusted discount factor from the futures is .

Adfin calculates the discount factor as follows:

Let T be the Actual/360 period in years between and . Then

For example, we have already built


ADJUSTED

24/02/2005 1.00000000

25/02/2005 0.99992917

28/02/2005 0.99971590

07/03/2005 0.99921074

16/03/2005 0.99853700

16/06/2005 0.99096218

15/09/2005 0.98247962

The discount factor on 21DEC05 is calculated as follows:

Of course, the subtracted dates are first transformed to integer values,


15/09/2005 = 38610
21/09/2005 = 38616
21/12/2005 = 38707
This covers all cases. The remaining calculations are performed in a similar way.

24

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Vasicek-Fong Model

VASICEK-FONG MODEL
The Vasicek-Fong model is used to build zero coupon or discount factor curves from bonds only. It is based on the fact

that the discount function can be approximated by an exponential spline, as in the following formula:

WHERE DENOTES

the regression coefficients

the infinite forward rate

This section describes how to calculate the above coefficients using a least-squares regression, and how to construct a
zero curve once the coefficients are known.
 Least-Squares Regression
 Generating a Zero Coupon Discount Factor Curve from the Vasicek- Fong Coefficients

Bond Calculation Reminder


A bond's price obeys the relation:

WHERE DENOTES

th cash flow value of the bond

time to the th cash flow of the bond

market price of the bond

the discount factor function

LEAST-SQUARES REGRESSION
Definition
In many problems, two or more variables are inherently related but their values are obscured by random factors or
measurement error. Regression analysis is a statistical technique that explores the nature of their relationship.
The principal objective in regression analysis is to establish an equation that relates a dependent variable to one or more
independent variables. Using this equation, it is then possible to predict the value of the dependent variable if the values
of the other variables are known. The dependent variable (or response) is generally denoted . The independent
variable (also known as the regressor or predictor), assuming we have only one, is denoted .
In order to establish the quantitative relationship between and , it is necessary to obtain sample data: paired
observations of y and x, where each pair represents one data point in the sample.
The method of least squares assumes that the "best-fit" curve of a given type, meaning the curve that best represents the
underlying relationship between the variables, is that which minimizes the sum of the squared deviations between the
curve and the data points.

25
Suppose that the data points are

Each data point has a deviation from the fitting curve :

The best-fit curve has the property:

Least Squares Regression Using the Vasicek-Fong Model

Polynomials are commonly used in regression analysis. The applications of the method of least squares curve fitting using
polynomials are briefly discussed as follows in the Vasicek-fong model:
The function to minimize is

WHERE DENOTES

the market price of bond

the volatility of bond

cash flow of bond

the time to cash flow

the market price of the bond

The deviations to minimize are

WHERE DENOTES

the regression coefficients

the infinite forward rate

26

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Vasicek-Fong Model

There are two ways to solve the function to minimize:


 If is specified by the user, the least squares regression computes all coefficients
 If is not specified by the user, it is necessary to find out which between 0.005 and 0.1 enables least squares
regression to compute the coefficients which minimize the function. The bisection method is used to find .

Example in Thomson Reuters Eikon Excel

In the example European bonds having the same rating are used to build the yield curve corresponding to the benchmark
yield curve. The Vasicek-Fong model makes it possible to use a large number of bonds: in the following example, 25
bonds are used, however, normally more bonds should be used.
INPUT ARRAY

INSTRUMENT TYPE START DATE MATURITY DATE COUPON RATE MARKET INSTRUMENT
STRUCTURE

B 14Jun01 15Jun01 3.000% 100.000% EUR1

B 14Jun01 20Aug01 5.000% 100.050% EUR1

B 14Jun01 21Jan02 8.000% 102.070% EUR1

B 14Jun01 22Feb02 4.500% 100.070% EUR1

B 14Jun01 15Mar02 4.500% 100.110% EUR1

B 14Jun01 01Oct02 7.750% 104.250% EUR1

B 14Jun01 21Oct02 7.250% 103.740% EUR1

B 14Jun01 12Nov02 5.000% 100.930% EUR1

B 14Jun01 23Apr03 6.500% 103.720% EUR1

B 14Jun01 02May03 6.750% 104.040% EUR1

B 14Jun01 15Sep03 6.000% 103.520% EUR1

B 14Jun01 11Nov03 3.500% 98.130% EUR1

B 14Jun01 27Aug04 4.125% 99.080% EUR1

B 14Jun01 09Sep04 7.500% 108.750% EUR1

B 14Jun01 20May05 5.000% 101.700% EUR1

B 14Jun01 19Aug05 5.000% 101.630% EUR1

B 14Jun01 17Feb06 5.000% 101.550% EUR1

B 14Jun01 26Apr06 6.250% 107.080% EUR1

B 14Jun01 04Jul08 4.125% 95.460% EUR1

B 14Jun01 04Jan09 3.750% 92.500% EUR1

B 14Jun01 04Jan10 5.375% 102.200% EUR1

27
INPUT ARRAY

INSTRUMENT TYPE START DATE MATURITY DATE COUPON RATE MARKET INSTRUMENT
STRUCTURE

B 14Jun01 04Jan24 6.250% 106.950% EUR1

B 14Jun01 04Jan28 5.625% 99.050% EUR1

B 14Jun01 04Jul28 4.750% 87.380% EUR1

B 14Jun01 04Jan30 6.250% 108.080% EUR1

RateStructure
KEYWORD COMMENT

RM:VF Specifies the Vasicek-Fong rate model

MDWA:YES Minimizes errors between the model and the market prices weighted by the inverse of the
modified duration of the bonds

Syntax
=AdTermStructrure(“Input Array”,”RM:VF MDWA:YES”)
To specify the Vasicek-Fong model use the RM:VF keyword.

Results returned by the function


=AdTermStructure() returns:

14-Jun-01

0.042739

1.000000

–0.928161

–0.908679

0.836841

GENERATING A ZERO COUPON DISCOUNT FACTOR CURVE FROM THE VASICEK- FONG COEFFICIENTS
In this example, all results from the AdRate() function are retrieved, and then the formulas to calculate the result are
described.

Example in Thomson Reuters Eikon Excel


Start date of the forward yield curve: 15JUN01

14-Jun-01

0.042739

28

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Vasicek-Fong Model

1.000000

–0.928161

–0.908679

0.836841

PERIOD DATEARRAY

15 Jun 2001

6M 15 Dec 2001

1Y 15 Jun 2002

1Y6M 15 Dec 2002

2Y 15 Jun 2003

2Y6M 15 Dec 2003

3Y 15 Jun 2004

3Y6M 15 Dec 2004

4Y 15 Jun 2005

4Y6M 15 Dec 2005

5Y 15 Jun 2006

5Y6M 15 Dec 2006

6Y 15 Jun 2007

6Y6M 15 Dec 2007

7Y 15 Jun 2008

7Y6M 15 Dec 2008

8Y 15 Jun 2009

8Y6M 15 Dec 2009

9Y 15 Jun 2010

9Y6M 15 Dec 2010

10Y 15 Jun 2011

The forward periods (6M, 1Y…) can be calculated using the DfAddPeriod() function.

29
Syntax
=AdRate(“15JUN01”,DateArray,Vasicek Fong coefficients,”RM:VF”,”LAY:H”)

Results returned by the function


=AdRate() returns:

DATE DISCOUNT FACTOR

15 Jun 2001 100.000%

15 Dec 2001 97.992%

15 Jun 2002 95.963%

15 Dec 2002 93.899%

15 Jun 2003 91.831%

15 Dec 2003 89.741%

15 Jun 2004 87.659%

15 Dec 2004 85.567%

15 Jun 2005 83.493%

15 Dec 2005 81.419%

15 Jun 2006 79.371%

15 Dec 2006 77.330%

15 Jun 2007 75.322%

15 Dec 2007 73.327%

15 Jun 2008 71.369%

15 Dec 2008 69.429%

15 Jun 2009 67.530%

15 Dec 2009 65.653%

15 Jun 2010 63.819%

15 Dec 2010 62.010%

15 Jun 2011 60.245%

30

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Vasicek-Fong Model

Manual Calculation
In this example we are calculating the forward yield curve.

= Discount factor using the Vasicek-Fong formula from the curve start date given by the Vasicek-Fong model
(14Jun01 in our example) to the new start date (the forward start date: 15jun01 in our example).

= Time in year from the Yield curve start date given by the Vasicek-Fong model to the new start date.

So using the DfCountYears() function we have:

=DfCountYears(“14JUN01”,”15JUN01”,"DCB:AA")= 0.00274
The Vasicek-Fong formula for the discount factor is

The coefficients returned by AdTermStructure() after regression are

and

Hence,

DATE LVDATETODATEI * DFENDI ** DISCOUNT FACTOR

15 Jun 2001
100.000%

15 Dec 2001 0.5041096 0.979812

15 Jun 2002 1.0027397 0.959525

15 Dec 2002 1.5041096 0.93889

15 Jun 2003 2.0027397 0.918206


91.831%

15 Dec 2003 2.5041096 0.89731


89.741%

15 Jun 2004 3.0027397 0.876492


87.659%

31
DATE LVDATETODATEI * DFENDI ** DISCOUNT FACTOR

15 Dec 2004 3.5041096 0.855577


85.567%

15 Jun 2005 4.0027397 0.834842


83.493%

15 Dec 2005 4.5041096 0.814103


81.419%

15 Jun 2006 5.0027397 0.793625


79.371%

15 Dec 2006 5.5041096 0.773219


77.330%

15 Jun 2007 6.0027397 0.753138


75.322%

15 Dec 2007 6.5041096 0.733188


73.327%

15 Jun 2008 7.0027397 0.713612


71.369%

15 Dec 2008 7.5041096 0.694216


69.429%

15 Jun 2009 8.0027397 0.675229


67.530%

15 Dec 2009 8.5041096 0.656458


65.653%

15 Jun 2010 9.0027397 0.638121


63.819%

15 Dec 2010 9.5041096 0.620029

15 Jun 2011 10.0027397 0.602388

*
= Time in year from the Yield curve start date given by the
Vasicek-Fong model to the date #i.
Example on the second date of the yield curve:
Using the DfCountYears() function we have:

=DfCountYears(“14JUN01”,”15DEC01”,"DCB:AA")=
0.5041096

**
= Discount factor using the Vasicek-Fong formula from the Yield
curve start date given by the Vasicek-Fong model to the date #i.

32

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Vasicek-Fong Model

Example on the second date of the yield curve:


The Vasicek-Fong formula is

with the regression coefficients

and

Hence,

33
BASIS SPLINE MODEL
Overview
This method models the forward function as a linear combination of basis spline functions. The basis functions are cubic
polynomials defined on overlapping sets of four consecutive nodes. At each node, the polynomials that meet are restricted
so that their first and second derivatives are continuous. There are two variants of the model: the regression spline and
the smoothing spline.
 The regression spline method aims to minimize residual errors between the theoretical prices and market prices.
 The smoothing spline method aims to minimize the sum of the residual errors and a "roughness penalty" describing

the smoothness of the curve. The roughness penalty limits oscillation of the polynomials between nodes, but
also decreases the goodness of fit.
There are several variants of the smoothing spline using different roughness penalties, which may vary with maturity. The
Waggoner method is more appropriate for US markets, and Anderson‟s method is more appropriate for UK markets.
In the Waggoner method, the roughness penalty is a step function with three levels, constant over the maturity intervals 0
to 1 year, 1 to 10 years, and greater than 10 years. These divisions correspond to markets for bills, notes and bonds.
In the Anderson (Bank of England) method, the roughness penalty is a continuous function. It does not focus on a special
part of the curve, as the UK market is not split into different instruments.

Choice of Nodes
The nodes are chosen from the maturities of the input bonds and evenly distributed between them. The number of nodes
is a significant choice for the term structure. The default choice is ( ), where is the number of distinct
maturities. The number of nodes can be set by the user.
The number of nodes is capped at 20, because too many splines decreases the smoothness of the curve. The method of
choosing nodes was taken from the paper 'Spline Methods for Extracting Interest Rate Curves from Coupon Bond Prices'
by Daniel Waggoner (Federal Reserve Databank working paper, pp. 97-10).
The nodes are positioned in such a way that the instrument maturities are evenly spaced between nodes.

Output
The output of the model is a series of parameters that provide an estimation of the forward rate given at maturity. The
form of the output is a two-column array. The first column contains the dates of the nodes, and two measures of the
model: the fitness and smoothness. The second column contains the linear coefficients of the forward function in the B-
spline base.

Let , and be the th bond market price, the th model price and the modified duration of the th bond.
The fitness measure is located in the penultimate row of the first column.
It is equal to:

The smoothness measure is located in the last row of the first column.
It is equal to:

This Section discusses in detail the:


 Theoretical Models
 Examples in Thomson Reuters Eikon Excel
 GeneratinG a Zero Coupon Discount Factor Curve from Basis Spline Coefficients
34

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Basis Spline Model

THEORETICAL MODELS
Reminder: Bond Calculations

Recall that (m) denotes the discount factor at maturity m:

WHERE DENOTES

annual continuous zero-coupon rate at time

compounded and instantaneous forward rate at time

The forward yield curve is continuous if and only if the zero-coupon rate is continuously differentiable.
So we have the relation:

WHERE DENOTES

Clean price of the th bond

accrued interest

the th cash-flow (coupon and repayment) of the th bond at time

number of cash-flow

discount factor

or using forward rates

WHERE DENOTES

Clean price of the th bond

accrued interest

the th cash-flow (coupon and repayment) of the bond at time

35
WHERE DENOTES

number of cash flows

maturity

And

The basis spline is made of cubic polynomials. K is the number of basis spline functions (K=n+2, where n is the number of
nodes).

Regression Method

McCulloch (1971) approximates the discount function with a linear combination of B-splines. Instead of the discount
factor, the regression method that will be described approximates the forward function in a B-spline ( )

The coefficients are unknowns. Let be the discounted bond price vector with modelized prices. The vector
beta must be the solution of the following equation:

The problem is solved from Fisher (1995) with least square methods (see "Least-Squares Regression" for details).

Global Smoothing Spline


Smoothing spline is an improvement on the previous method as it smoothes out the resulting curve more. The principles
of the method were derived from Fischer (1995). They decrease the second derivatives of the forward rate function (ƒ) as
they introduce a variable λ called roughness penalty parameter.
The resulting problem is:

As for the regression method, the forward function is interpolated with a spline function in the basis :

The expression with the roughness penalty parameter is written:

36

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Basis Spline Model

Waggoner Method
The Waggoner method is a special case of smoothing spline with a step function. It takes into account different kinds of
products of the US market as a reference (bills, notes and bonds).

A high value of increases smoothness in large maturities, which is a regular problem with cubic splines.

Anderson's method

Anderson's method is another special case of a smoothing spline with a continuous function . It takes into account
some special products such as the UK market with gilt.

WHERE EQUALS

3.5

1.44269504088896

, and coefficients are constant numerical values.


These values were found by experimental tests on government bonds in France, UK and US during the last 20 years. A
series of tests were used to prove the fit to the data (in-sample and out-of-sample), and smoothness and stability of the
forward curve.

EXAMPLES IN THOMSON REUTERS EIKON EXCEL


In this part examples of the Regression, Waggoner and Anderson methods are detailed using the AdTermStructure()
function. The basis spline model makes it possible to use a large number of bonds, but in the following example, due to
the lack of space, only 16 bonds are used.
All results are based on the same input, which is a sample of 16 bonds. In the example European bonds having the same
rating are used to build the yield curve corresponding to the benchmark yield curve.
INPUT ARRAY

INSTRUMENT
INSTRUMENT TYPE START DATE MATURITY DATE COUPON RATE MARKET
STRUCTURE

B 14Jun01 20Aug01 5.000% 100.050% EUR1

B 14Jun01 14Sep01 3.500% 99.720% EUR1

B 14Jun01 22Feb02 4.500% 100.070% EUR1

B 14Jun01 21Oct02 7.250% 103.740% EUR1

B 14Jun01 18Feb03 4.500% 100.270% EUR1

B 14Jun01 26Aug03 3.750% 98.810% EUR1

37
INPUT ARRAY

INSTRUMENT
INSTRUMENT TYPE START DATE MATURITY DATE COUPON RATE MARKET
STRUCTURE

B 14Jun01 15Jul04 6.750% 106.400% EUR1

B 14Jun01 19Aug05 5.000% 101.630% EUR1

B 14Jun01 26Apr06 6.250% 107.080% EUR1

B 14Jun01 04Jan07 6.000% 106.240% EUR1

B 14Jun01 04Jul08 4.125% 95.460% EUR1

B 14Jun01 04Jul10 5.250% 101.450% EUR1

B 14Jun01 20Jun16 6.000% 106.440% EUR1

B 14Jun01 04Jan24 6.250% 106.950% EUR1

B 14Jun01 04Jul28 4.750% 87.380% EUR1

B 14Jun01 04Jan30 6.250% 108.080% EUR1

Example with the Regression Method (McCulloch)


Syntax
=AdTermStructrure(“Input Array”,”RM:BSPLINE MDWA:YES SMOOTH:NULL”)

RateStructure
KEYWORD COMMENT

RM:BSPLINE Specifies a basis spline model

MDWA:YES Minimizes errors between model and market prices weighted by the inverse of the bond
volatility

MDWA:NO Minimizes errors between model and market prices

SMOOTH:NULL Specifies the regression model

Results returned by the function


=AdTermStructure() returns:

REGRESSION MODEL

14-Jun-01 4.74%

22-Feb-02 4.09%

26-Aug-03 4.15%

26-Apr-06 4.43%

04-Jul-10 5.52%

38

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Basis Spline Model

REGRESSION MODEL

04-Jan-24 5.45%

04-Jan-30 8.87%

1.87 3.41%

6.17E-05 6.93%

Example with the Waggoner Method


Syntax
=AdTermStructrure(“Input Array”,”RM:BSPLINE MDWA:YES SMOOTH:STEP”)

RateStructure
KEYWORD COMMENT

RM:BSPLINE Specifies a basis spline model

MDWA:YES Minimizes errors between model and market prices weighted by the inverse of the bond
volatility (MDWA:NO minimizes errors between model and market prices)

SMOOTH:STEP Specifies the Waggoner model

Results returned by the function


=AdTermStructure() returns:

WAGGONER METHOD

14-Jun-01 4.75%

22-Feb-02 4.09%

26-Aug-03 4.16%

26-Apr-06 4.43%

04-Jul-10 5.46%

04-Jan-24 6.09%

04-Jan-30 6.39%

2.77 6.52%

5.93E-05 6.56%

Example with the Anderson Method


Syntax
=AdTermStructrure(“Input Array”,”RM:BSPLINE MDWA:YES SMOOTH:CONT”)

39
RateStructure
KEYWORD COMMENT

RM:BSPLINE Specifies a basis spline model

MDWA:YES Minimizes errors between model and market prices weighted by the inverse of the bond
volatility (MDWA:NO minimizes errors between model and market prices)

SMOOTH:CONT Specifies the Anderson model

Results returned by the function


=AdTermStructure() returns:

WAGGONER METHOD

14-Jun-01 4.69%

22-Feb-02 4.18%

26-Aug-03 4.05%

26-Apr-06 4.57%

04-Jul-10 5.27%

04-Jan-24 6.27%

04-Jan-30 6.92%

2.33 5.56%

2.96E-05 5.21%

GENERATING A ZERO COUPON DISCOUNT FACTOR CURVE FROM BASIS SPLINE COEFFICIENTS
In the example the discount factor yield curve is retrieved from the coefficients calculated by the Regression model in the
previous part.
Start date of the forward yield curve: 15JUN01
REGRESSION COEFFICIENTS

14-Jun-01 4.74%

22-Feb-02 4.09%

26-Aug-03 4.15%

26-Apr-06 4.43%

04-Jul-10 5.52%

04-Jan-24 5.45%

04-Jan-30 8.87%

40

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide
Basis Spline Model

REGRESSION COEFFICIENTS

1.87 3.41%

6.17E-05 6.93%

PERIOD DATEARRAY

15 Jun 2001

6M 15 Dec 2001

1Y 15 Jun 2002

1Y6M 15 Dec 2002

2Y 15 Jun 2003

2Y6M 15 Dec 2003

3Y 15 Jun 2004

3Y6M 15 Dec 2004

4Y 15 Jun 2005

4Y6M 15 Dec 2005

5Y 15 Jun 2006

5Y6M 15 Dec 2006

6Y 15 Jun 2007

6Y6M 15 Dec 2007

7Y 15 Jun 2008

7Y6M 15 Dec 2008

8Y 15 Jun 2009

8Y6M 15 Dec 2009

9Y 15 Jun 2010

9Y6M 15 Dec 2010

10Y 15 Jun 2011

The forward dates (6M, 1Y…) can be calculated using the DfAddPeriod() function.

Syntax
=AdRate(“15JUN01”,DateArray,Regression coefficients,”RM:BSPLINE MDWA:YES SMOOTH:NULL”,”LAY:H”)

41
Results returned by the function
=AdRate() returns:

DATE DISCOUNT FACTOR

15 Jun 2001 100.000%

15 Dec 2001 97.856%

15 Jun 2002 95.854%

15 Dec 2002 93.852%

15 Jun 2003 91.860%

15 Dec 2003 89.848%

15 Jun 2004 87.830%

15 Dec 2004 85.781%

15 Jun 2005 83.725%

15 Dec 2005 81.645%

15 Jun 2006 79.574%

15 Dec 2006 77.502%

15 Jun 2007 75.463%

15 Dec 2007 73.444%

15 Jun 2008 71.472%

15 Dec 2008 69.529%

15 Jun 2009 67.638%

15 Dec 2009 65.778%

15 Jun 2010 63.967%

15 Dec 2010 62.182%

15 Jun 2011 60.439%

42

Thomson Reuters Eikon Adfin Term


Structure Calculation Guide

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy