28.01.2015 Views

Projet Courbe de Taux - Yats.com

Projet Courbe de Taux - Yats.com

Projet Courbe de Taux - Yats.com

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Projet</strong><br />

<strong>Courbe</strong> <strong>de</strong> <strong>Taux</strong><br />

Daniel HERLEMONT 1


Objectifs<br />

Développer une bibliothèque en langage C <strong>de</strong> fonctions relatives à la<br />

"<strong>Courbe</strong> <strong>de</strong>s <strong>Taux</strong>"<br />

Valeur Actuelle, <strong>Taux</strong> <strong>de</strong> Ren<strong>de</strong>ment Interne, Duration, Convexité,<br />

Reconstitution <strong>de</strong> la courbe <strong>de</strong> taux Zéro Coupons par diverses métho<strong>de</strong>s:<br />

Bootstrap,<br />

Interpolations linéaire, cubiques, …<br />

et surtout le métho<strong>de</strong> à Splines Cubiques, ...<br />

Etu<strong>de</strong>s <strong>de</strong> sensibilité aux variations<br />

Immunisation<br />

En utilisant <strong>de</strong>s Données réelles<br />

Développement<br />

Développement en langage C<br />

Dans un environnement WNDOWS VISUAL STUDIO<br />

<br />

source et référence: Priaulet & L. Martellini et P. Priaulet, «Produits <strong>de</strong> taux d’intérêt:<br />

Métho<strong>de</strong>s dynamiques d’évaluation et <strong>de</strong> couverture», Economica (2000),<br />

très souvent cité dans cette présentation sous l'abréviation MP<br />

Daniel HERLEMONT 2


Utilisation <strong>de</strong> Données Réelles<br />

Nous travaillerons sur la Coubre <strong>de</strong>s Obligations d'Etat<br />

La courbe Trésor est construite à partir <strong>de</strong>s obligations émises par l’Etat:<br />

Les bons à taux fixes (BTF) à échéances normalisées : 13, 26 et 52 semaines.<br />

Les bons du trésor à intérêts annuels (BTAN): à échéance 2 à 5 ans, ils produisent un<br />

coupon annuel.<br />

Les Obligationn Assimilibles du Trésor (OAT): échéance <strong>de</strong> 7 à 25 ans<br />

Il s’agit <strong>de</strong> la courbe dite sans risque dans les pays du G7 dans la mesure où les<br />

Etats <strong>de</strong> ces pays sont censés ne jamais faire défaut.<br />

Les Etats <strong>de</strong> ces pays sont notés AAA par les agences <strong>de</strong> rating, i.e. disposent <strong>de</strong><br />

la meilleure notation possible.<br />

Sources <strong>de</strong>s données<br />

Bloomberg<br />

MTS<br />

Boursorama<br />

Economagic<br />

Futures: MATIF, EUREX, …<br />

Daniel HERLEMONT 3


Bloomberg<br />

Daniel HERLEMONT 4


Rappel - Yield<br />

Daniel HERLEMONT 5


Rappel - Yield (2)<br />

Daniel HERLEMONT 6


Rappel - Coupon couru (accrued interest)<br />

La plupart <strong>de</strong>s obligations classiques se cotent en pourcentage <strong>de</strong> la valeur<br />

nominale et au « pied du coupon » (clean price), c'est à dire sans coupon<br />

couru (accrued interest). L’obligataire acquiert le titre en versant le « plein<br />

coupon » (full price ou dirty price), c'est à dire le coupon couru en plus du<br />

pied <strong>de</strong> coupon. A la différence <strong>de</strong>s obligations classiques, les obligations<br />

convertibles sont cotées en France en euros et non en pourcentage et en<br />

plein coupon.<br />

Exemple: un investisseur achète le 10 Décembre 2001, une obligation du<br />

trésor, à 3.5% et maturité le 15 Novembre 2006. Le prix du marché est<br />

96.15625. La pério<strong>de</strong> du coupon couru est <strong>de</strong> 26 jours (pério<strong>de</strong> du 15<br />

Novembre au 10 Décembre 2001). Le coupon couru est égal au <strong>de</strong>rnier<br />

coupon versé multiplié par 26 jours et divisé par le nombre <strong>de</strong> jours entre<br />

la date du <strong>de</strong>rnier coupon (le 15 Novembre 2001) et la date du prochain<br />

coupon (le 15 Novembre 2002), soit 365 jours. Le coupon couru est donc<br />

égal à<br />

3.5*26/365=0.2493<br />

L'investisseur doit donc payer 96.4=96.15625+0.2493<br />

Daniel HERLEMONT 7


Indices Euro MTS (ex CNO Extrix)<br />

L’indice EuroMTS reproduit la performance du marché <strong>de</strong>s<br />

emprunts d’Etat <strong>de</strong> la zone euro en s’appuyant sur la performance<br />

<strong>de</strong> paniers d’emprunts « sélectionnés » choisis pour représenter les<br />

performances globales <strong>de</strong>s marchés considérés. Il n’inclut donc pas<br />

tous les emprunts d’Etat.<br />

La sélection s'opère sur <strong>de</strong>s critères <strong>de</strong> liquidité.<br />

Euro MTS (ex CNO Etrix) 1-3 ans, 3-5 ans, 5-7 ans, 7-10 ans, 10-<br />

15 ans, +15 ans<br />

http://www.euromtsin<strong>de</strong>x.<strong>com</strong><br />

Daniel HERLEMONT 8


EMTX: [Eurozone Government Bond Indices]<br />

Date Time Id Description Price AccruedInterestYield DurationModDuration Convexity<br />

11/28/2008 11:00:00 AT0000383864 RAGB 6.250 15/07/27 124.76 2.414383562 4.289 12.054 11.558 184.017<br />

11/28/2008 11:00:00 AT0000384938 RAGB 5.500 15/01/10 103.48 4.853825137 2.304 1.067 1.043 2.153<br />

11/28/2008 11:00:00 AT0000385067 RAGB 5.250 04/01/11 105.15 4.790983607 2.678 1.946 1.895 5.642<br />

11/28/2008 11:00:00 AT0000385356 RAGB 5.000 15/07/12 106.1 1.931506849 3.179 3.349 3.246 14.206<br />

11/28/2008 11:00:00 AT0000385745 RAGB 4.650 15/01/18 105.85 4.103688525 3.875 7.4 7.124 65.24<br />

11/28/2008 11:00:00 AT0000385992 RAGB 3.800 20/10/13 102.19 0.458082192 3.303 4.533 4.388 24.384<br />

11/28/2008 11:00:00 AT0000386073 RAGB 4.300 15/07/14 104.56 1.66109589 3.391 5.044 4.879 30.198<br />

11/28/2008 11:00:00 AT0000386115 RAGB 3.900 15/07/20 99.27 1.506575343 3.978 9.412 9.052 102.331<br />

11/28/2008 11:00:00 AT0000386198 RAGB 3.500 15/07/15 100 1.352054795 3.498 5.942 5.741 40.855<br />

11/28/2008 11:00:00 AT0000A001X2RAGB 3.500 15/09/21 95.03 0.757534247 4.003 10.375 9.975 123.018<br />

11/28/2008 11:00:00 AT0000A011T9RAGB 4.000 15/09/16 101.91 0.865753425 3.711 6.797 6.554 53.051<br />

11/28/2008 11:00:00 AT0000A04967RAGB 4.150 15/03/37 100.73 2.990273973 4.105 16.704 16.046 369.947<br />

11/28/2008 11:00:00 BE0000291972 BGB 5.500 28/03/28 #31 116.2 3.767123288 4.252 12.5 11.99 199.22<br />

11/28/2008 11:00:00 BE0000295049 BGB 5.750 28/09/10 #35 104.99 1.039726027 2.888 1.766 1.717 4.663<br />

11/28/2008 11:00:00 BE0000298076 BGB 5.000 28/09/12 #38 106.06 0.904109589 3.282 3.552 3.439 15.678<br />

11/28/2008 11:00:00 BE0000300096 BGB 5.500 28/09/17 #40 111.98 0.994520548 3.869 7.26 6.99 61.728<br />

11/28/2008 11:00:00 BE0000301102 BGB 4.250 28/09/13 #41 103.73 0.768493151 3.392 4.441 4.295 23.556<br />

11/28/2008 11:00:00 BE0000303124 BGB 4.250 28/09/14 #43 103.81 0.768493151 3.511 5.255 5.077 32.347<br />

11/28/2008 11:00:00 BE0000304130 BGB 5.000 28/03/35 #44 112.68 3.424657534 4.194 15.384 14.765 314.84<br />

11/28/2008 11:00:00 BE0000305145 BGB 3.000 28/03/10 #45 100.578 2.054794521 2.536 1.289 1.257 2.832<br />

11/28/2008 11:00:00 BE0000306150 BGB 3.750 28/09/15 #46 100.29 0.678082192 3.699 6.106 5.888 42.798<br />

Exemple d’obligations d etat <strong>com</strong>posant l’indice<br />

Daniel HERLEMONT 9


<strong>Courbe</strong> <strong>de</strong>s <strong>Taux</strong> Zéro Coupons<br />

but : reconstitution <strong>de</strong> la courbe <strong>de</strong>s taux zéro-coupon au <strong>com</strong>ptant<br />

(«spot»).<br />

Connaître la courbe <strong>de</strong>s taux zéro-coupon au <strong>com</strong>ptant est très important<br />

en pratique car cela permet aux acteurs du marché:<br />

d’évaluer et <strong>de</strong> couvrir à la date <strong>de</strong> reconstitution les produits <strong>de</strong> taux délivrant<br />

<strong>de</strong>s flux futurs connus (obligation à taux fixe, par exemple)<br />

autres applications : l’analyse «rich and cheap» (bond picking) qui consiste à<br />

détecter les produits sur-et sous-évalués par le marché pour tenter d’en tirer profit.<br />

<strong>de</strong> dériver les autres courbes implicites: la courbe <strong>de</strong>s taux forward, la courbe<br />

<strong>de</strong>s taux <strong>de</strong> ren<strong>de</strong>ment au pair et la courbe <strong>de</strong>s taux <strong>de</strong> ren<strong>de</strong>ment instantanés.<br />

la courbe spot est le point <strong>de</strong> <strong>de</strong> départ pour la mise en place <strong>de</strong> modèles<br />

stochastiques <strong>de</strong> déformation <strong>de</strong> cette courbe dans le temps.<br />

Daniel HERLEMONT 10


<strong>Courbe</strong> <strong>de</strong>s <strong>Taux</strong> Zéro Coupon (suite)<br />

La reconstitution <strong>de</strong> cette courbe est rendue nécessaire par le fait qu’il<br />

n’existe pas suffisamment d’obligation zéro-coupon («strips») cotées sur le<br />

marché.<br />

Par conséquent, il n’est pas possible d’obtenir les taux zéro-coupon pour<br />

un continuum <strong>de</strong> maturité.<br />

En outre, les obligations zéro-coupon ont souvent une moindre liquidité<br />

que les obligations à coupons.<br />

Daniel HERLEMONT 11


<strong>Courbe</strong> <strong>de</strong>s <strong>Taux</strong> (suite)<br />

Sélection <strong>de</strong>s paniers<br />

Métho<strong>de</strong> théorique directe et bootstrapping<br />

Différents types d’interpolation<br />

Métho<strong>de</strong>s indirectes: modèle <strong>de</strong> Nelson et Siegel, splines cubiques et<br />

exponentielles<br />

Daniel HERLEMONT 12


Rappel - <strong>Taux</strong> Zéro Coupon<br />

Définition du taux zéro-coupon<br />

Il est implicitement défini dans la relation suivante:<br />

où:<br />

B(0,<br />

t)<br />

=<br />

1<br />

[ 1+<br />

R(0,<br />

t)<br />

] t<br />

- B(0,t): prix <strong>de</strong> marché à la date 0 d’une obligation zéro-coupon<br />

délivrant 1 euro à la date t. On appelle aussi B(0,t), le facteur<br />

d’actualisation en 0 pour la maturité t.<br />

- R(0,t): taux <strong>de</strong> ren<strong>de</strong>ment en 0 <strong>de</strong> l’obligation zéro-coupon<br />

délivrant 1 euro en t. R(0,t) est aussi le taux zéro-coupon en 0 <strong>de</strong><br />

maturité t.<br />

Daniel HERLEMONT 13


Rappel - Evaluation d’obligations à flux connus<br />

Le prix V <strong>de</strong> l’obligation à la date t s’écrit donc plus justement<br />

V<br />

i<br />

( t)<br />

=<br />

m<br />

∑<br />

i=<br />

t+<br />

1<br />

F(<br />

i)<br />

[ 1+<br />

R(<br />

t,<br />

i − t)<br />

]<br />

= i− t<br />

m<br />

∑<br />

i=<br />

t+<br />

1<br />

F(<br />

i)<br />

B(<br />

t,<br />

i)<br />

Exemple 1: Soit l’obligation <strong>de</strong> montant nominal 100$, <strong>de</strong> maturité 3<br />

ans et <strong>de</strong> taux <strong>de</strong> coupon 10%.<br />

Les taux zéro-coupon à 1 an, 2 ans et 3 ans sont <strong>de</strong> 7%, 9% et 10%.<br />

Le prix P <strong>de</strong> l’obligation est égal à<br />

10<br />

P =<br />

1+<br />

7%<br />

+<br />

10<br />

+<br />

110<br />

2<br />

( 1+<br />

9% ) ( 1+<br />

10% )<br />

3<br />

= 100.407$<br />

Daniel HERLEMONT 14


<strong>Courbe</strong> D'état - Sélection <strong>de</strong>s Titre<br />

Elle est construite à partir d’obligations d’Etat.<br />

Il est important <strong>de</strong> faire une sélection rigoureuse <strong>de</strong>s titres qui servent à la<br />

reconstitution. Il faut éliminer:<br />

les titres qui présentent <strong>de</strong>s clauses optionnelles car la présence d’options rend<br />

le prix <strong>de</strong> ces titres non homogènes avec ceux qui n’en contiennent pas.<br />

les titres qui présentent <strong>de</strong>s erreurs <strong>de</strong> prix, typiquement dues à <strong>de</strong>s erreurs <strong>de</strong><br />

saisie.<br />

les titres qui sont soit illiqui<strong>de</strong>s, soit surliqui<strong>de</strong>s, et présentent donc <strong>de</strong>s prix qui<br />

ne sont pas dans le marché.<br />

Il ne faut pas tracer la courbe <strong>de</strong>s taux sur <strong>de</strong>s segments <strong>de</strong> maturité où l’on ne<br />

dispose pas <strong>de</strong> titres. Par exemple, ne pas tracer la courbe sur le segment [20-<br />

30 ans] si l’on ne dispose pas <strong>de</strong> titres <strong>de</strong> maturités supérieures à 20 ans dans le<br />

panier.<br />

Exemple <strong>de</strong> bons candidats : les titres éligibles pour l'EuroMTS (Ex CNO<br />

Etrix) - un indice <strong>de</strong> référence souvent utilisé dans les benchmarks.<br />

Daniel HERLEMONT 15


La métho<strong>de</strong> théorique <strong>de</strong> reconstitution<br />

Elles permettent <strong>de</strong> déduire directement les taux zéro-coupon <strong>de</strong>s<br />

obligations à coupons. Elles requièrent les <strong>de</strong>ux conditions suivantes:<br />

elles ont les mêmes dates <strong>de</strong> tombée <strong>de</strong> coupon<br />

elles ont <strong>de</strong>s maturités multiples <strong>de</strong> la fréquence <strong>de</strong> tombée <strong>de</strong>s coupons.<br />

Cette métho<strong>de</strong> n’est que théorique car dans la pratique il est très rare <strong>de</strong><br />

pouvoir trouver un échantillon d’obligations ayant ces <strong>de</strong>ux<br />

caractéristiques.<br />

Daniel HERLEMONT 16


La métho<strong>de</strong> théorique <strong>de</strong> reconstitution (2)<br />

Notations et résolution<br />

Pt =(P t1 , P t2 ,....., P tn )T le vecteur <strong>de</strong>s prix à l’instant t <strong>de</strong>s n<br />

obligations à coupons du panier<br />

F = (F ti (j))i=1,...,n, j=1,...,n la matrice n x n correspondant aux flux<br />

<strong>de</strong>s n titres. Les dates <strong>de</strong> tombées <strong>de</strong>s flux sont i<strong>de</strong>ntiques pour tous<br />

les titres.<br />

Bt =(B(t,t1), B(t,t2), ,....., B(t,tn))T le vecteur <strong>de</strong>s facteurs<br />

d’actualisation<br />

Par AOA, on obtient le vecteur <strong>de</strong>s facteurs d’actualisation<br />

Pt = F . Bt soit Bt = F -1 . Pt car F est inversible<br />

Daniel HERLEMONT 17


La métho<strong>de</strong> théorique <strong>de</strong> reconstitution (3)<br />

Exemple<br />

Coupon Maturité (années) Prix<br />

Titre 1 5 1 101<br />

Titre 2 5.5 2 101.5<br />

Titre 3 5 3 99<br />

Titre 4 6 4 100<br />

On obtient le système d’équation suivant:<br />

101 = 105 B(0,1)<br />

101.5 = 5.5 B(0,1) + 105.5 B(0,2)<br />

99 = 5 B(0,1) + 5 B(0,2) + 105 B(0,3)<br />

100 = 6 B(0,1) + 6 B(0,2) + 6 B(0,3) + 106 B(0,4)<br />

soit B(0,1)=0.9619, B(0,2)=0.9119, B(0,3)=0.8536, B(0,4)= 0.7890<br />

et R(0,1)=3.96%, R(0,2)=4.717%, R(0,3)=5,417%, R(0,4)=6,103%<br />

Daniel HERLEMONT 18


La métho<strong>de</strong> du bootstrap<br />

Il s’agit d’une procédure en plusieurs étapes qui permet <strong>de</strong><br />

reconstituer une courbe zéro-coupon au <strong>com</strong>ptant «pas à pas» i.e.<br />

segment par segment <strong>de</strong> maturité.<br />

1- Pour le segment <strong>de</strong> la courbe inférieur à 1 an:<br />

Extraction <strong>de</strong>s taux zéro-coupon grâce aux prix <strong>de</strong>s titres zérocoupon<br />

cotés sur le marché puis obtention d’une courbe continue<br />

par interpolation linéaire ou cubique (voir plus loin).<br />

Daniel HERLEMONT 19


La métho<strong>de</strong> du bootstrap (2)<br />

2- Pour le segment <strong>de</strong> la courbe allant <strong>de</strong> 1 an à 2 ans:<br />

Parmi les obligations <strong>de</strong> maturité <strong>com</strong>prise entre 1 an et 2 ans, on choisit<br />

l’obligation à l’échéance la plus rapprochée. Ce titre verse <strong>de</strong>ux flux. Le facteur<br />

d’actualisation du premier flux est connu grâce à l ’étape 1. Le facteur<br />

d’actualisation du second flux est solution <strong>de</strong> l’équation non linéaire<br />

P = C B(0, t1) + (100 + C) B(0, t2) avec t1


Exemple <strong>de</strong> Bootstrap<br />

Maturité ZC<br />

Overnight 4.40%<br />

1 mois 4.50%<br />

2 mois 4.60%<br />

3 mois 4.70%<br />

6 mois 4.90%<br />

9 mois 5.00%<br />

1 an 5.10%<br />

<strong>Taux</strong> à 1 an et 2 mois<br />

soit 5.41%<br />

<strong>Taux</strong> à 1 an et 9 mois<br />

soit 5.69%<br />

Coupon Maturité (années) Prix<br />

Titre 1 5% 1 an et 2 mois 103.7<br />

Titre 2 6% 1 an et 9 mois 102<br />

Titre 3 5.50% 2 ans 99.5<br />

5<br />

4.6%)<br />

105<br />

(1+<br />

x)<br />

103 .7 =<br />

+<br />

1/ 6<br />

1+<br />

1/ 6<br />

(1+<br />

6<br />

(1 + 5%)<br />

106<br />

(1 + x)<br />

102 =<br />

+<br />

9 /12<br />

1+<br />

9 /12<br />

<strong>Taux</strong> à 2 ans<br />

soit 5.79%<br />

<strong>Taux</strong> à 3 ans<br />

soit 5.91%<br />

99.5<br />

5.5<br />

=<br />

(1+<br />

5.1%)<br />

5<br />

97.6 =<br />

(1+<br />

5.1%)<br />

Daniel HERLEMONT 21<br />

1<br />

1<br />

105.5<br />

+<br />

2<br />

(1+ x)<br />

5<br />

+<br />

(1+<br />

5.79%)<br />

2<br />

105<br />

+<br />

(1+ x%)<br />

3


Interpolations<br />

Quand on utilise la métho<strong>de</strong> théorique directe ou le bootstrap, il<br />

est nécessaire <strong>de</strong> choisir une métho<strong>de</strong> d’interpolation entre <strong>de</strong>ux<br />

points.<br />

Deux sont particulièrement utilisées: les interpolations linéaire et<br />

cubique.<br />

Interpolation linéaire:<br />

On connaît les taux zero-coupon <strong>de</strong> maturités t1 et t2. On<br />

souhaite interpoler le taux <strong>de</strong> maturité t avec t1< t


Interpolation cubique:<br />

On procè<strong>de</strong> à une interpolation cubique par segment <strong>de</strong> courbes.<br />

On définit un premier segment entre t1 et t4 où l’on dispose <strong>de</strong> 4<br />

taux R(0, t1), R(0, t2), R(0, t3), R(0, t4).<br />

Le taux R(0, t) <strong>de</strong> maturité t est défini par<br />

R (0, t)<br />

= at + bt + ct + d<br />

sous la contrainte que la courbe passe par les quatre points <strong>de</strong><br />

marché R(0, t1), R(0, t2), R(0, t3), R(0, t4). D’où le système à<br />

résoudre:<br />

3 2<br />

⎧ R(0,<br />

t1)<br />

= at<br />

⎪<br />

R(0,<br />

t2)<br />

= at<br />

⎨<br />

⎪R(0,<br />

t3)<br />

= at<br />

⎪<br />

⎩R(0,<br />

t4)<br />

= at<br />

3<br />

1<br />

3<br />

2<br />

3<br />

3<br />

3<br />

4<br />

+ bt<br />

+ bt<br />

+ bt<br />

+ bt<br />

2<br />

1<br />

2<br />

2<br />

2<br />

3<br />

2<br />

4<br />

+ ct<br />

1<br />

+ ct<br />

+ ct<br />

+ ct<br />

2<br />

3<br />

4<br />

+ d<br />

+ d<br />

+ d<br />

+ d<br />

Daniel HERLEMONT 23


Exemple d’interpolation cubique<br />

Exemple<br />

On se donne les taux suivants :<br />

R(0, t1) = 4%, R(0, t2) =5%, R(0, t3) = 5.5% et R(0, t4) = 6%<br />

Calculer le taux <strong>de</strong> maturité 2.5 ans <br />

R(0, 2.5) = a x 2.53 + b x 2.52 + c x 2.51 + d = 5.34375%<br />

avec<br />

⎛a⎞<br />

⎜ ⎟<br />

⎜b⎟<br />

⎜c<br />

⎟<br />

⎜ ⎟<br />

⎝d<br />

⎠<br />

=<br />

⎛ 1<br />

⎜<br />

⎜ 8<br />

⎜27<br />

⎜<br />

⎝64<br />

1<br />

4<br />

9<br />

16<br />

1<br />

2<br />

3<br />

4<br />

1⎞<br />

⎟<br />

1⎟<br />

1⎟<br />

⎟<br />

1⎠<br />

−1<br />

⎛ 3% ⎞<br />

⎜ ⎟<br />

⎜ 5% ⎟<br />

⎜5.5%<br />

⎟<br />

⎜ ⎟<br />

⎝ 6% ⎠<br />

=<br />

⎛ 0.0025 ⎞<br />

⎜ ⎟<br />

⎜−<br />

0.0225⎟<br />

⎜ 0.07 ⎟<br />

⎜ ⎟<br />

⎝ − 0.02 ⎠<br />

Daniel HERLEMONT 24


Comparaisons <strong>de</strong>s interpolations linéaire vs cubique<br />

6.50%<br />

6.00%<br />

Linéaire<br />

Cubique<br />

5.50%<br />

<strong>Taux</strong><br />

5.00%<br />

4.50%<br />

4.00%<br />

3.50%<br />

3.00%<br />

1 1.5 2 2.5 3 3.5 4<br />

Maturité<br />

Daniel HERLEMONT 25


Les métho<strong>de</strong>s indirectes<br />

Ce sont les métho<strong>de</strong>s les plus utilisées en pratique<br />

Principe: Pour un panier d’obligations à coupons, il s’agit <strong>de</strong> la<br />

minimisation <strong>de</strong> l’écart au carré entre les prix <strong>de</strong> marché et les prix<br />

reconstitués à l ’ai<strong>de</strong> d’une forme a priori spécifiée <strong>de</strong>s taux zérocoupon<br />

ou <strong>de</strong> la fonction d’actualisation.<br />

Soit un panier constitué <strong>de</strong> n titres. On note à la date t:<br />

j<br />

P t<br />

∧<br />

j<br />

P t<br />

j<br />

F s<br />

: prix <strong>de</strong> marché du j-ème titre.<br />

: prix théorique du j-ème titre<br />

: flux futur du j-ème titre tombant à la date s (s > t)<br />

Daniel HERLEMONT 26


Les métho<strong>de</strong>s indirectes<br />

- les modèles à splines fondés sur une modélisation <strong>de</strong> la fonction<br />

d’actualisation.<br />

∧<br />

j<br />

t<br />

∑<br />

f est une fonction linéaire <strong>de</strong>s paramètres d’estimation. Par<br />

conséquent, le prix <strong>de</strong> l’obligation est également une fonction<br />

linéaire <strong>de</strong>s paramètres d’estimation La résolution d’un tel<br />

problème est donc matricielle.<br />

Cf MP p. 19 à 28 et p. 167 à 172<br />

∑<br />

P = F B( t,<br />

s)<br />

= F f ( s − t;<br />

β )<br />

s<br />

j<br />

s<br />

s<br />

j<br />

s<br />

Daniel HERLEMONT 27


Les métho<strong>de</strong>s indirectes (2)<br />

L’idée consiste à trouver le vecteur <strong>de</strong>s paramètres β tel que<br />

n<br />

∧<br />

⎛<br />

j j<br />

⎞<br />

Min∑⎜<br />

⎟<br />

P t − Pt<br />

β<br />

j=<br />

1⎝<br />

⎠<br />

On distingue <strong>de</strong>ux gran<strong>de</strong>s classes <strong>de</strong> modèles:<br />

-les modèles type Nelson et Siegel fondés sur une modélisation <strong>de</strong>s<br />

taux zéro-coupon (cf MP 28 à 34).<br />

- Les modèles à splines. Ils sont fondés sur une modélisation <strong>de</strong> la<br />

fonction d’actualisation. Les plus célèbres sont les splines<br />

polynomiaux (cf Mc Culloch (1971,1975)) et les splines<br />

exponentielles (cf Vasicek et Fong (1982)). Leur avantage tient à<br />

leur gran<strong>de</strong> flexibilité qui leur permet <strong>de</strong> reconstruire toutes les<br />

formes <strong>de</strong> courbe rencontrées sur le marché.<br />

2<br />

Daniel HERLEMONT 28


Le Modèle NELSON SIEGEL<br />

∧<br />

j<br />

t<br />

P<br />

=<br />

∑<br />

s<br />

F<br />

j<br />

s<br />

B(<br />

t,<br />

s)<br />

=<br />

∑<br />

s<br />

F<br />

j<br />

s<br />

. e<br />

−(<br />

s−t).<br />

R(<br />

s−t;<br />

β )<br />

R est la fonctionnelle <strong>de</strong>s taux zéro-coupon. Le prix <strong>de</strong> l’obligation<br />

est une fonction non linéaire <strong>de</strong>s paramètres d’estimation. La<br />

résolution d’un tel problème s’effectue à l’ai<strong>de</strong> d’un algorithme <strong>de</strong><br />

Newton modifié (cf MP p. 172 à 175).<br />

⎡1−<br />

exp( −θ<br />

τ ) ⎤ ⎡1−<br />

exp( −θ<br />

τ )<br />

⎤<br />

R C ( θ ) = β0<br />

+ β1⎢<br />

⎥ + β2<br />

⎢<br />

− exp( −θ<br />

τ ) ⎥<br />

⎣ θ τ ⎦ ⎣ θ τ<br />

⎦<br />

θ = s − t<br />

Daniel HERLEMONT 29


Nelson Siegel<br />

⎡1−<br />

exp( −θ<br />

τ ) ⎤ ⎡1−<br />

exp( −θ<br />

τ )<br />

⎤<br />

R C ( θ ) = β0<br />

+ β1⎢<br />

⎥ + β2<br />

⎢<br />

− exp( −θ<br />

τ ) ⎥<br />

⎣ θ τ ⎦ ⎣ θ τ<br />

⎦<br />

θ = s − t<br />

R : taux zéro-coupon <strong>de</strong> maturité θ<br />

β 0 : facteur <strong>de</strong> niveau; il s ’agit du taux long.<br />

β 1 : facteur <strong>de</strong> rotation; il s’agit <strong>de</strong> l’écart entre le taux court et le taux long<br />

β 2 : facteur <strong>de</strong> courbure<br />

τ: paramètre d’échelle <strong>de</strong>stiné à rester fixe au cours du temps<br />

Daniel HERLEMONT 30


NELSON SIEGEL<br />

Il est aisé d’exprimer les dérivées partielles <strong>de</strong> R par rapport à<br />

chacun <strong>de</strong>s paramètres béta, ce que l’on appelle les sensibilités<br />

<strong>de</strong>s taux zéro-coupon aux paramètres béta (cf graphique suivant).<br />

Ces sensibilités sont très proches <strong>de</strong> celles que l’on obtient<br />

historiquement en appliquant la métho<strong>de</strong> <strong>de</strong> l’ACP aux taux zérocoupon.<br />

On retrouve bien les facteurs <strong>de</strong> niveau, pente et courbure.<br />

Daniel HERLEMONT 31


Nelson Siegel<br />

1.2<br />

1<br />

Sensibilité <strong>de</strong>s taux<br />

0.8<br />

0.6<br />

0.4<br />

béta 0<br />

béta 1<br />

béta 2<br />

0.2<br />

0<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30<br />

Maturité <strong>de</strong>s taux<br />

Daniel HERLEMONT 32


Neslon Siegel Inconvénients du modèle <strong>de</strong> Nelson et Siegel<br />

Le modèle <strong>de</strong> Nelson et Siegel ne permet pas <strong>de</strong> reconstituer<br />

toutes les formes <strong>de</strong> courbes <strong>de</strong> taux que l’on peut rencontrer sur<br />

le marché, en particulier les formes à une bosse et un creux (voir<br />

sli<strong>de</strong> suivante).<br />

En outre, il manque <strong>de</strong> souplesse d’ajustement pour les maturités<br />

supérieures à 7 ans si bien que les obligations <strong>de</strong> telles maturités<br />

sont parfois mal évaluées par le modèle.<br />

Le premier inconvénient peut être levé en utilisant le modèle <strong>de</strong><br />

Svensson ou modèle <strong>de</strong> Nelson-Siegel augmenté.<br />

Zero-coupon rate<br />

M a t u r i t y<br />

Daniel HERLEMONT 33


Conclusion sur les modèles <strong>de</strong> type Nelson et Siegel<br />

Le reproche souvent formulé à l’encontre <strong>de</strong> cette classe <strong>de</strong><br />

modèles est leur insuffisante flexibilité. En revanche les variables<br />

<strong>de</strong> ces modèles sont interprétables financièrement.<br />

Cette classe <strong>de</strong> modèles est en pratique le plus souvent utilisée<br />

pour l’analyse et la couverture du risque <strong>de</strong> taux <strong>de</strong> portefeuilles à<br />

flux connus.<br />

Nous allons à présent abor<strong>de</strong>r les modèles à splines qui sont<br />

beaucoup plus flexibles mais présentent au contraire <strong>de</strong>s<br />

paramètres qui ne sont pas interprétables d’un point <strong>de</strong> vue<br />

financier.<br />

Daniel HERLEMONT 34


Les splines polynomiaux<br />

1- Modélisation standard<br />

Il est <strong>com</strong>mun <strong>de</strong> considérer l’écriture standard <strong>com</strong>me dans<br />

l’exemple qui suit:<br />

2 3<br />

⎧ B0<br />

( s)<br />

= d0<br />

+ c0s<br />

+ b0s<br />

+ a0s<br />

, s ∈[ 0,5]<br />

⎪<br />

2 3<br />

B(0,<br />

s)<br />

= ⎨ B5<br />

( s)<br />

= d1<br />

+ c1s<br />

+ b1s<br />

+ a1s<br />

, s ∈[ 5,10 ]<br />

⎪<br />

2 3<br />

⎩<br />

B10<br />

( s)<br />

= d2<br />

+ c2s<br />

+ b2s<br />

+ a2s<br />

, s ∈ 10,20<br />

La fonction d’actualisation <strong>com</strong>pte ici 12 paramètres.<br />

[ ]<br />

On rajoute <strong>de</strong>s contraintes <strong>de</strong> régularité sur cette fonction qui<br />

garantissent la continuité, la continuité <strong>de</strong> la dérivée première et <strong>de</strong><br />

la dérivée secon<strong>de</strong> <strong>de</strong> cette fonction aux points <strong>de</strong> raccord 5 et 10.<br />

Daniel HERLEMONT 35


Les splines polynomiaux (2)<br />

Pour i =0, 1 et 2:<br />

⎪⎧<br />

B<br />

⎨<br />

⎪⎩ B<br />

( i)<br />

0<br />

( i)<br />

10<br />

(5) = B<br />

( i)<br />

5<br />

(10) = B<br />

(5)<br />

( i)<br />

5<br />

(10)<br />

Et la contrainte qui porte sur le facteur d’actualisation: B 0 (0) = 1<br />

En utilisant l’ensemble <strong>de</strong> ces 7 contraintes, le nombre <strong>de</strong><br />

paramètres à estimer tombe à 5:<br />

⎧<br />

⎪<br />

⎪<br />

B(0,<br />

s)<br />

= ⎨B<br />

⎪<br />

⎪<br />

⎪⎩<br />

5<br />

+ a<br />

( s)<br />

[( s − 5)<br />

=<br />

+ c<br />

( s)<br />

= 1+<br />

c0s<br />

+ b0s<br />

+ a0[<br />

s<br />

2<br />

B ( s)<br />

= 1+<br />

c s + b s<br />

10<br />

1<br />

B<br />

0<br />

3<br />

d<br />

0<br />

2<br />

0<br />

0<br />

0<br />

− ( s −10)<br />

s + b<br />

3<br />

] + a<br />

+ a<br />

( s −10)<br />

, s ∈<br />

[ 0,5]<br />

− ( s − 5) ] + a1(<br />

s − 5)<br />

3<br />

3<br />

+ a [ s − ( s − 5) ]<br />

3<br />

0<br />

s<br />

0<br />

2<br />

2<br />

0<br />

3<br />

s<br />

3<br />

3<br />

, s ∈<br />

3<br />

, s ∈<br />

[ 10,20]<br />

[ 5,10 ]<br />

Daniel HERLEMONT 36


Les splines polynomiaux (3)<br />

Le système précé<strong>de</strong>nt peut être écrit sous la forme suivante:<br />

B(0,<br />

s)<br />

= 1+<br />

c<br />

+<br />

( a − a )<br />

3<br />

( a − a ).(<br />

s −10)<br />

pour s ∈[ 0,20]<br />

2<br />

1<br />

0<br />

s<br />

+<br />

b<br />

+<br />

0<br />

s<br />

2<br />

+<br />

a<br />

0<br />

s<br />

3<br />

+<br />

1<br />

0<br />

.( s<br />

−<br />

5)<br />

3<br />

+<br />

3<br />

[ (( ) )] 3<br />

où ( s − θ ) + = Max s −θ<br />

,0<br />

puissance.<br />

est la fonction dite bornée <strong>de</strong><br />

Il y a une autre écriture <strong>de</strong> cette équation dans la base <strong>de</strong>s B-<br />

splines. Cette écriture est <strong>de</strong>venu extrêmement classique.<br />

Daniel HERLEMONT 37


Les splines polynomiaux (4)<br />

2- Expression dans la base <strong>de</strong>s B-splines<br />

Les B-splines<br />

3 ( s)<br />

sont <strong>de</strong>s fonctions linéaires <strong>de</strong> fonctions<br />

bornées <strong>de</strong> puissance. On écrit alors:<br />

⎛ ⎡ ⎤ ⎞<br />

2<br />

2 ⎜ l+<br />

4 l+<br />

4<br />

3<br />

⎢ 1 ⎥<br />

∑ ∑ ∑ ∏ ( )<br />

3<br />

B(0,<br />

s)<br />

= cl<br />

Bl<br />

( s)<br />

= cl<br />

⎜<br />

s − λ<br />

⎢ ⎥<br />

j +<br />

= −<br />

=− ⎜ = = −<br />

⎟ ⎟⎟ l 3<br />

l 3 j l i l λi<br />

λ j<br />

⎝ ⎢⎣<br />

i≠<br />

j ⎥⎦<br />

⎠<br />

où les coefficients lambda sont définis <strong>com</strong>me suit:<br />

B l<br />

6<br />

et<br />

λ 0 < λ < λ < λ<br />

−3 < λ−2<br />

< λ−1<br />

< λ0<br />

= < λ1<br />

= 5 < λ2<br />

= 10 < λ3<br />

= 20<br />

2<br />

l=−3<br />

−1<br />

3<br />

B(0,0)<br />

= ∑cl<br />

Bl<br />

(0) = ∑cl<br />

B<br />

l=−3<br />

3<br />

l<br />

(0) = 1<br />

4<br />

5<br />

Daniel HERLEMONT 38


Le choix du nombre <strong>de</strong> splines<br />

Le nombre <strong>de</strong> splines influe sur la qualité <strong>de</strong>s résidus et le lissage<br />

<strong>de</strong> la courbe.<br />

Plus il y a <strong>de</strong> splines et meilleurs sont les résidus. La courbe<br />

<strong>de</strong>vient toutefois moins lisse, et peut passer par <strong>de</strong>s points<br />

aberrants.<br />

Moins il y a <strong>de</strong> splines et plus on lisse la courbe. Mais les écarts <strong>de</strong><br />

prix peuvent <strong>de</strong>venir importants ce qui laisse à penser que la<br />

courbe est mal rendue.<br />

Pour choisir au mieux ce nombre <strong>de</strong> splines, on peut utiliser la<br />

règle suivante.<br />

Daniel HERLEMONT 39


Le choix du nombre <strong>de</strong> splines (2)<br />

On constitue <strong>de</strong>ux paniers. Le premier panier dit <strong>de</strong> minimisation<br />

contient les titres qui ont permis d’obtenir les paramètres<br />

d’estimation. Le <strong>de</strong>uxième panier dit <strong>de</strong> vérification contient <strong>de</strong>s<br />

titres qui n’ont pas servi lors <strong>de</strong> la minimisation.<br />

Dans la mesure du possible, il faut que ces <strong>de</strong>ux paniers soient<br />

homogènes, i.e contiennent à peu près le même nombre <strong>de</strong> titres, et<br />

les mêmes types <strong>de</strong> maturité (court, moyen et long).<br />

Pour chacun <strong>de</strong> ces <strong>de</strong>ux paniers, l’idée consiste à calculer l’écart<br />

<strong>de</strong> prix moyen:<br />

E<br />

=<br />

j=<br />

n<br />

∑<br />

j=<br />

1<br />

( P<br />

t<br />

j<br />

n<br />

−<br />

∧<br />

j<br />

t<br />

P<br />

)<br />

2<br />

Daniel HERLEMONT 40


Le choix du nombre <strong>de</strong> splines (3)<br />

Ces <strong>de</strong>ux écarts sont notés Emin<br />

et Everif<br />

.<br />

La règle est la suivante:<br />

1- On calcule ces <strong>de</strong>ux écarts et on s’assure qu’ils sont inférieurs à<br />

la moyenne <strong>de</strong>s fourchettes «bid-ask» (environ 10 centimes <strong>de</strong><br />

prix). S’ils ne le sont pas, on augmente le nombre <strong>de</strong> splines jusqu’à<br />

temps qu’ils le <strong>de</strong>viennent.<br />

2- On calcule la différence entre ces <strong>de</strong>ux écarts:<br />

* si elle est faible, le nombre <strong>de</strong> splines est bien spécifié.<br />

* si elle est forte, le nombre <strong>de</strong> splines est probablement<br />

trop élevé. Il faut donc en retirer jusqu’à temps que cette différence<br />

<strong>de</strong>vienne faible.<br />

Daniel HERLEMONT 41


La localisation <strong>de</strong>s points <strong>de</strong> raccord<br />

La règle la plus logique consiste à localiser ces points <strong>de</strong> telle<br />

façon que chaque spline contienne à peu près le même nombre <strong>de</strong><br />

titres.<br />

Par exemple, sur le marché français, on définit 5 splines:<br />

[0-1 an] : super court (BTF ou Monétaire + BTAN)<br />

[1-3 ans] : court terme (BTAN)<br />

[3-7 ans] : moyen terme (BTAN + OAT)<br />

[7-10 ans] : long terme (OAT)<br />

[10-30 ans] : très long terme (OAT)<br />

Daniel HERLEMONT 42


Spot et Forward<br />

Year 1 2 3 4 5 6 7 8<br />

Spot 4.00% 5.50% 6.00% 6.50% 7.50% 8.00% 8.00% 8.00%<br />

Yield 4.00% 4.75% 5.16% 5.50% 5.89% 6.24% 6.49% 6.68%<br />

16%<br />

14%<br />

12%<br />

1-Yr Spot Rate<br />

Zero Yield Curve<br />

10%<br />

8%<br />

6%<br />

4%<br />

2%<br />

0%<br />

1 2 3 4 5 6 7 8<br />

Daniel HERLEMONT 43


Spot vs Forward (2)<br />

Year 1 2 3 4 5 6 7 8<br />

Yield 11.50% 9.50% 8.75% 8.00% 7.75% 7.75% 7.50% 7.25%<br />

Forward 11.50% 7.54% 7.27% 5.78% 6.76% 7.75% 6.01% 5.52%<br />

16%<br />

14%<br />

12%<br />

Forward Rate<br />

Zero Yield Curve<br />

10%<br />

8%<br />

6%<br />

4%<br />

2%<br />

0%<br />

1 2 3 4 5 6 7 8<br />

Daniel HERLEMONT 44


Convexité<br />

Price<br />

Coupon<br />

957.36 4.0%<br />

Duration<br />

9.0620<br />

Yield<br />

Maturity<br />

4.5% 11<br />

2000<br />

1500<br />

1000<br />

500<br />

Price<br />

0<br />

0% 5% 10% 15% 20%<br />

4<br />

3<br />

Price %<br />

30<br />

25<br />

20<br />

Duration<br />

2<br />

15<br />

1<br />

10<br />

5<br />

0<br />

0% 5% 10% 15% 20%<br />

0<br />

0% 5% 10% 15% 20%<br />

Daniel HERLEMONT 45


Le Prix en fonction du Coupon et <strong>de</strong> la Maturité<br />

Coupon A Coupon B Coupon C<br />

Yield 5.5% 8.0% 10.0%<br />

8.0%<br />

786.01 1 000.00 1 171.19<br />

Maturity A<br />

15<br />

3000<br />

2500<br />

Maturity B<br />

15<br />

2000<br />

1500<br />

1000<br />

Maturity C<br />

15<br />

500<br />

0<br />

0% 2% 4% 6% 8% 10% 12% 14% 16% 18% 20%<br />

Daniel HERLEMONT 46


Duration<br />

Coupon A Coupon B Coupon C<br />

Yield 2.0% 6.0% 12.0%<br />

11.0%<br />

12.40 9.02 7.86<br />

Maturity A<br />

18<br />

30<br />

25<br />

Maturity B<br />

15<br />

20<br />

15<br />

Maturity C<br />

15<br />

10<br />

5<br />

0<br />

0% 2% 4% 6% 8% 10% 12% 14% 16% 18% 20%<br />

Toutes choses étant égales par ailleurs, plus le coupon est faible, plus la duration est<br />

élevée<br />

Daniel HERLEMONT 47


Duration (suite)<br />

Coupon A Coupon B Coupon C<br />

Yield 6,0% 6,0% 6,0%<br />

8,0%<br />

7,62 9,79 12,73<br />

Maturity A<br />

10<br />

30<br />

25<br />

Maturity B<br />

15<br />

20<br />

15<br />

Maturity C<br />

30<br />

10<br />

5<br />

0<br />

0% 2% 4% 6% 8% 10% 12% 14% 16% 18% 20%<br />

la duration d’une obligation augmente, <strong>de</strong> manière non proportionnelle, avec sa durée <strong>de</strong><br />

vie car la contribution à la duration <strong>de</strong>s années les plus lointaines est réduite par l’actualisation.<br />

Daniel HERLEMONT 48


Immunisation<br />

Considérons une société qui souhaite tenir un engagement <strong>de</strong> 1 million € dans un 10 ans<br />

Elle souhaite investir maintenant pour tenir cet engagement.<br />

L'achat d'un zéro coupon pourrait répondre à cet objectif.<br />

Cependant, le zéro coupon n'est pas toujours disponible à la maturité souhaitée.<br />

La société est donc obligé <strong>de</strong> choisir <strong>de</strong>s obligations sur le marché qui vont lui permettre <strong>de</strong><br />

1. Répliquer la valeur actuelle, avec un taux est <strong>de</strong> 9%, la valeur actuelle <strong>de</strong> l'obligation est 414 463<br />

2. Etre immune aux variations <strong>de</strong>s taux d'intérêts => la duration du portefeuille doit être la même que<br />

celle <strong>de</strong> l'obligation = 10 (ans)<br />

Obligations disponibles<br />

<strong>Taux</strong> maturité (années) prix Yield (TRA) Duration<br />

O1 6% 30 69.04 9% 11.44<br />

O2 11% 10 113.01 9% 6.54<br />

O3 9% 20 100 9% 9.61<br />

Premier constat: on doit choisir au moins une obligation dont <strong>de</strong> duration > 10 => choix <strong>de</strong> O1<br />

Choisissons O1 et O2, avec V1 et V2 les montants investis dans ces obligations, on doit vérifier:<br />

V1 + V2 = PV = 414 463<br />

D1 V1 + D2 V2 = 10 PV<br />

Solution V1 = 292 788.73 et V2 = 121 854.27<br />

lorsque le taux passe<br />

<strong>de</strong> 9% à 8%, le portefeuille ne varie que <strong>de</strong> 1562<br />

<strong>de</strong> 9% à 10% le portefeuille ne varie que <strong>de</strong> 1162<br />

ce qui reste négligeable …<br />

source: exemple Luenberger, p. 64<br />

Il est conviendra <strong>de</strong> "ré ajuster" le portefeuille périodiquement au fur et à mesure <strong>de</strong> la variation <strong>de</strong>s taux<br />

Daniel HERLEMONT 49


Exemple <strong>de</strong> librairie à réaliser<br />

double cash_flow_pv(int n, double cflow_times[], double cflow_amounts[],<br />

double r)<br />

{<br />

// calculate present value of cash flow, continous discounting<br />

int t;<br />

double PV=0.0; for (t=0; t


<strong>Taux</strong> <strong>de</strong> ren<strong>de</strong>ment interne<br />

Avec Ct les cash flow<br />

C0 étant, par exemple, le prix d'une obligation<br />

dans ce cas y = yield = ren<strong>de</strong>ment à maturité<br />

Algorithme à implementer en C : recherche d'une racine par bisection<br />

double cash_flow_irr(double[] cflow_times, double[] cflow_amounts) {<br />

…<br />

};<br />

A adapter à partir <strong>de</strong>s Numerical Recipes<br />

voir les fonctions zbrac et rtbis<br />

Explications et co<strong>de</strong> C disponibles online (google "Numerical Recipes in C")<br />

Daniel HERLEMONT 51


Numerical Recipes in C<br />

http://www.library.cornell.edu/nr/bookcpdf.html<br />

Le livre est disponible online en intégralité !!!<br />

Plus <strong>de</strong> 100O pages …<br />

aperçu du contenu<br />

Daniel HERLEMONT 52


NR (suite)<br />

Daniel HERLEMONT 53


NR (suite)<br />

Daniel HERLEMONT 54


Exemple NR - bisection<br />

Attention, si les NR constituent une référence incontournable, le co<strong>de</strong> C n'est pas toujours écrit<br />

<strong>de</strong> manière lisible !!!! Par exemple l'instruction<br />

rtb = f < 0.0 (dx=x2-x1,x1) : (dx=x1-x2,x2);<br />

<strong>de</strong>vra être réécrite sous une forme plus lisible, par exemple:<br />

if (f

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!