Projet Courbe de Taux
Transcription
Projet Courbe de Taux
Projet Courbe de Taux Daniel HERLEMONT 1 Objectifs Développer une bibliothèque en langage C de fonctions relatives à la "Courbe des Taux" Valeur Actuelle, Taux de Rendement Interne, Duration, Convexité, Reconstitution de la courbe de taux Zéro Coupons par diverses méthodes: Bootstrap, Interpolations linéaire, cubiques, … et surtout le méthode à Splines Cubiques, ... Etudes de sensibilité aux variations Immunisation En utilisant des Données réelles Développement Développement en langage C Dans un environnement WNDOWS VISUAL STUDIO Daniel HERLEMONT source et référence: Priaulet & L. Martellini et P. Priaulet, «Produits de taux d’intérêt: Méthodes dynamiques d’évaluation et de couverture», Economica (2000), très souvent cité dans cette présentation sous l'abréviation MP 2 Utilisation de Données Réelles Nous travaillerons sur la Coubre des Obligations d'Etat La courbe Trésor est construite à partir des obligations émises par l’Etat: Les bons à taux fixes (BTF) à échéances normalisées : 13, 26 et 52 semaines. Les bons du trésor à intérêts annuels (BTAN): à échéance 2 à 5 ans, ils produisent un coupon annuel. Les Obligationn Assimilibles du Trésor (OAT): échéance de 7 à 25 ans Il s’agit de la courbe dite sans risque dans les pays du G7 dans la mesure où les Etats de ces pays sont censés ne jamais faire défaut. Les Etats de ces pays sont notés AAA par les agences de rating, i.e. disposent de la meilleure notation possible. Sources des données Daniel HERLEMONT Bloomberg MTS Boursorama Economagic Futures: MATIF, EUREX, … 3 Bloomberg Daniel HERLEMONT 4 Rappel - Yield Daniel HERLEMONT 5 Rappel - Yield (2) Daniel HERLEMONT 6 Rappel - Coupon couru (accrued interest) La plupart des obligations classiques se cotent en pourcentage de la valeur nominale et au « pied du coupon » (clean price), c'est à dire sans coupon couru (accrued interest). L’obligataire acquiert le titre en versant le « plein coupon » (full price ou dirty price), c'est à dire le coupon couru en plus du pied de coupon. A la différence des obligations classiques, les obligations convertibles sont cotées en France en euros et non en pourcentage et en plein coupon. Exemple: un investisseur achète le 10 Décembre 2001, une obligation du trésor, à 3.5% et maturité le 15 Novembre 2006. Le prix du marché est 96.15625. La période du coupon couru est de 26 jours (période du 15 Novembre au 10 Décembre 2001). Le coupon couru est égal au dernier coupon versé multiplié par 26 jours et divisé par le nombre de jours entre la date du dernier coupon (le 15 Novembre 2001) et la date du prochain coupon (le 15 Novembre 2002), soit 365 jours. Le coupon couru est donc égal à 3.5*26/365=0.2493 L'investisseur doit donc payer 96.4=96.15625+0.2493 Daniel HERLEMONT 7 Indices Euro MTS (ex CNO Extrix) L’indice EuroMTS reproduit la performance du marché des emprunts d’Etat de la zone euro en s’appuyant sur la performance de paniers d’emprunts « sélectionnés » choisis pour représenter les performances globales des marchés considérés. Il n’inclut donc pas tous les emprunts d’Etat. La sélection s'opère sur des critères de liquidité. Euro MTS (ex CNO Etrix) 1-3 ans, 3-5 ans, 5-7 ans, 7-10 ans, 1015 ans, +15 ans http://www.euromtsindex.com Daniel HERLEMONT 8 EMTX: [Eurozone Government Bond Indices] Date 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 11/28/2008 Time 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 11:00:00 Id Description AT0000383864 RAGB 6.250 15/07/27 AT0000384938 RAGB 5.500 15/01/10 AT0000385067 RAGB 5.250 04/01/11 AT0000385356 RAGB 5.000 15/07/12 AT0000385745 RAGB 4.650 15/01/18 AT0000385992 RAGB 3.800 20/10/13 AT0000386073 RAGB 4.300 15/07/14 AT0000386115 RAGB 3.900 15/07/20 AT0000386198 RAGB 3.500 15/07/15 AT0000A001X2RAGB 3.500 15/09/21 AT0000A011T9 RAGB 4.000 15/09/16 AT0000A04967 RAGB 4.150 15/03/37 BE0000291972 BGB 5.500 28/03/28 #31 BE0000295049 BGB 5.750 28/09/10 #35 BE0000298076 BGB 5.000 28/09/12 #38 BE0000300096 BGB 5.500 28/09/17 #40 BE0000301102 BGB 4.250 28/09/13 #41 BE0000303124 BGB 4.250 28/09/14 #43 BE0000304130 BGB 5.000 28/03/35 #44 BE0000305145 BGB 3.000 28/03/10 #45 BE0000306150 BGB 3.750 28/09/15 #46 Price AccruedInterestYield 124.76 2.414383562 4.289 103.48 4.853825137 2.304 105.15 4.790983607 2.678 106.1 1.931506849 3.179 105.85 4.103688525 3.875 102.19 0.458082192 3.303 104.56 1.66109589 3.391 99.27 1.506575343 3.978 100 1.352054795 3.498 95.03 0.757534247 4.003 101.91 0.865753425 3.711 100.73 2.990273973 4.105 116.2 3.767123288 4.252 104.99 1.039726027 2.888 106.06 0.904109589 3.282 111.98 0.994520548 3.869 103.73 0.768493151 3.392 103.81 0.768493151 3.511 112.68 3.424657534 4.194 100.578 2.054794521 2.536 100.29 0.678082192 3.699 DurationModDuration Convexity 12.054 11.558 184.017 1.067 1.043 2.153 1.946 1.895 5.642 3.349 3.246 14.206 7.4 7.124 65.24 4.533 4.388 24.384 5.044 4.879 30.198 9.412 9.052 102.331 5.942 5.741 40.855 10.375 9.975 123.018 6.797 6.554 53.051 16.704 16.046 369.947 12.5 11.99 199.22 1.766 1.717 4.663 3.552 3.439 15.678 7.26 6.99 61.728 4.441 4.295 23.556 5.255 5.077 32.347 15.384 14.765 314.84 1.289 1.257 2.832 6.106 5.888 42.798 Exemple d’obligations d etat composant l’indice Daniel HERLEMONT 9 Courbe des Taux Zéro Coupons but : reconstitution de la courbe des taux zéro-coupon au comptant («spot»). Connaître la courbe des taux zéro-coupon au comptant est très important en pratique car cela permet aux acteurs du marché: d’évaluer et de couvrir à la date de reconstitution les produits de taux délivrant des flux futurs connus (obligation à taux fixe, par exemple) autres applications : l’analyse «rich and cheap» (bond picking) qui consiste à détecter les produits sur-et sous-évalués par le marché pour tenter d’en tirer profit. de dériver les autres courbes implicites: la courbe des taux forward, la courbe des taux de rendement au pair et la courbe des taux de rendement instantanés. la courbe spot est le point de de départ pour la mise en place de modèles stochastiques de déformation de cette courbe dans le temps. Daniel HERLEMONT 10 Courbe des Taux Zéro Coupon (suite) La reconstitution de cette courbe est rendue nécessaire par le fait qu’il n’existe pas suffisamment d’obligation zéro-coupon («strips») cotées sur le marché. Par conséquent, il n’est pas possible d’obtenir les taux zéro-coupon pour un continuum de maturité. En outre, les obligations zéro-coupon ont souvent une moindre liquidité que les obligations à coupons. Daniel HERLEMONT 11 Courbe des Taux (suite) Sélection des paniers Méthode théorique directe et bootstrapping Différents types d’interpolation Méthodes indirectes: modèle de Nelson et Siegel, splines cubiques et exponentielles Daniel HERLEMONT 12 Rappel - Taux Zéro Coupon Définition du taux zéro-coupon Il est implicitement défini dans la relation suivante: où: 1 B(0, t ) = t [1 + R(0, t )] - B(0,t): prix de marché à la date 0 d’une obligation zéro-coupon délivrant 1 euro à la date t. On appelle aussi B(0,t), le facteur d’actualisation en 0 pour la maturité t. - R(0,t): taux de rendement en 0 de l’obligation zéro-coupon délivrant 1 euro en t. R(0,t) est aussi le taux zéro-coupon en 0 de maturité t. Daniel HERLEMONT 13 Rappel - Evaluation d’obligations à flux connus Le prix V de l’obligation à la date t s’écrit donc plus justement m Vi (t ) = ∑ i =t +1 m F (i ) [1 + R(t , i − t )] i −t = ∑ F (i) B(t , i) i =t +1 Exemple 1: Soit l’obligation de montant nominal 100$, de maturité 3 ans et de taux de coupon 10%. Les taux zéro-coupon à 1 an, 2 ans et 3 ans sont de 7%, 9% et 10%. Le prix P de l’obligation est égal à P= Daniel HERLEMONT 10 10 110 + + = 100.407$ 2 3 1 + 7% (1 + 9% ) (1 + 10% ) 14 Courbe D'état - Sélection des Titre Elle est construite à partir d’obligations d’Etat. Il est important de faire une sélection rigoureuse des titres qui servent à la reconstitution. Il faut éliminer: les titres qui présentent des clauses optionnelles car la présence d’options rend le prix de ces titres non homogènes avec ceux qui n’en contiennent pas. les titres qui présentent des erreurs de prix, typiquement dues à des erreurs de saisie. les titres qui sont soit illiquides, soit surliquides, et présentent donc des prix qui ne sont pas dans le marché. Il ne faut pas tracer la courbe des taux sur des segments de maturité où l’on ne dispose pas de titres. Par exemple, ne pas tracer la courbe sur le segment [2030 ans] si l’on ne dispose pas de titres de maturités supérieures à 20 ans dans le panier. Exemple de bons candidats : les titres éligibles pour l'EuroMTS (Ex CNO Etrix) - un indice de référence souvent utilisé dans les benchmarks. Daniel HERLEMONT 15 La méthode théorique de reconstitution Elles permettent de déduire directement les taux zéro-coupon des obligations à coupons. Elles requièrent les deux conditions suivantes: elles ont les mêmes dates de tombée de coupon elles ont des maturités multiples de la fréquence de tombée des coupons. Cette méthode n’est que théorique car dans la pratique il est très rare de pouvoir trouver un échantillon d’obligations ayant ces deux caractéristiques. Daniel HERLEMONT 16 La méthode théorique de reconstitution (2) Notations et résolution Pt =(Pt1, Pt2,....., Ptn)T le vecteur des prix à l’instant t des n obligations à coupons du panier F = (Fti(j))i=1,...,n, j=1,...,n la matrice n x n correspondant aux flux des n titres. Les dates de tombées des flux sont identiques pour tous les titres. Bt =(B(t,t1), B(t,t2), ,....., B(t,tn))T le vecteur des facteurs d’actualisation Par AOA, on obtient le vecteur des facteurs d’actualisation Pt = F . Bt Daniel HERLEMONT soit Bt = F-1 . Pt car F est inversible 17 La méthode théorique de reconstitution (3) Exemple Titre 1 Titre 2 Titre 3 Titre 4 Coupon Maturité (années) 5 1 5.5 2 5 3 6 4 Prix 101 101.5 99 100 On obtient le système d’équation suivant: 101 = 105 B(0,1) 101.5 = 5.5 B(0,1) + 105.5 B(0,2) 99 = 5 B(0,1) + 5 B(0,2) + 105 B(0,3) 100 = 6 B(0,1) + 6 B(0,2) + 6 B(0,3) + 106 B(0,4) soit B(0,1)=0.9619, B(0,2)=0.9119, B(0,3)=0.8536, B(0,4)= 0.7890 et R(0,1)=3.96%, R(0,2)=4.717%, R(0,3)=5,417%, R(0,4)=6,103% Daniel HERLEMONT 18 La méthode du bootstrap Il s’agit d’une procédure en plusieurs étapes qui permet de reconstituer une courbe zéro-coupon au comptant «pas à pas» i.e. segment par segment de maturité. 1- Pour le segment de la courbe inférieur à 1 an: Extraction des taux zéro-coupon grâce aux prix des titres zérocoupon cotés sur le marché puis obtention d’une courbe continue par interpolation linéaire ou cubique (voir plus loin). Daniel HERLEMONT 19 La méthode du bootstrap (2) 2- Pour le segment de la courbe allant de 1 an à 2 ans: Parmi les obligations de maturité comprise entre 1 an et 2 ans, on choisit l’obligation à l’échéance la plus rapprochée. Ce titre verse deux flux. Le facteur d’actualisation du premier flux est connu grâce à l ’étape 1. Le facteur d’actualisation du second flux est solution de l’équation non linéaire P = C B(0, t1) + (100 + C) B(0, t2) avec t1 <= 1 et 1< t2 <= 2 On obtient alors un premier point de courbe sur ce segment. On réitère alors le même procédé avec l’obligation de maturité immédiatement supérieure mais toujours inférieure à 2 ans. 3- Pour le segment de la courbe allant de 2 ans à 3 ans: On réitère l’opération précédente à partir des titres ayant une maturité comprise entre 2 ans et 3 ans. ...etc... Daniel HERLEMONT 20 Exemple de Bootstrap Maturité Overnight 1 mois 2 mois 3 mois 6 mois 9 mois 1 an ZC 4.40% 4.50% 4.60% 4.70% 4.90% 5.00% 5.10% Taux à 1 an et 2 mois soit 5.41% Taux à 1 an et 9 mois soit 5.69% Taux à 2 ans soit 5.79% Taux à 3 ans soit 5.91% Daniel HERLEMONT Coupon Maturité (années) Titre 1 5% 1 an et 2 mois Titre 2 6% 1 an et 9 mois Titre 3 5.50% 2 ans 103.7 = Prix 103.7 102 99.5 5 105 + (1 + 4.6%)1/ 6 (1 + x )1+1/ 6 102 = 6 106 + 9 / 12 (1 + 5%) (1 + x )1+9 / 12 99.5 = 5.5 105.5 + (1 + 5.1%)1 (1 + x )2 97.6 = 5 5 105 + + (1 + 5.1%)1 (1 + 5.79%)2 (1 + x %)3 21 Interpolations Quand on utilise la méthode théorique directe ou le bootstrap, il est nécessaire de choisir une méthode d’interpolation entre deux points. Deux sont particulièrement utilisées: les interpolations linéaire et cubique. Interpolation linéaire: On connaît les taux zero-coupon de maturités t1 et t2. On souhaite interpoler le taux de maturité t avec t1< t <t2 R(0, t ) = (t 2 − t )R (0, t1 ) + (t − t1 )R(0, t 2 ) ( t 2 − t1 ) Exemple: R(0,3) =5.5% et R(0,4)=6% R(0,3.75) = Daniel HERLEMONT 0.25 × 5.5% + 0.75 x 6% = 5.875% 1 22 Interpolation cubique: On procède à une interpolation cubique par segment de courbes. On définit un premier segment entre t1 et t4 où l’on dispose de 4 taux R(0, t1), R(0, t2), R(0, t3), R(0, t4). Le taux R(0, t) de maturité t est défini par R(0, t ) = at 3 + bt 2 + ct + d sous la contrainte que la courbe passe par les quatre points de marché R(0, t1), R(0, t2), R(0, t3), R(0, t4). D’où le système à résoudre: R (0, t ) = at 3 + bt 2 + ct + d 1 1 1 1 3 2 R(0, t 2 ) = at 2 + bt 2 + ct 2 + d 3 2 R ( 0 , t ) = at + bt + ct 3 + d 3 3 3 R (0, t ) = at 3 + bt 2 + ct + d 4 4 4 4 Daniel HERLEMONT 23 Exemple d’interpolation cubique Exemple On se donne les taux suivants : R(0, t1) = 4%, R(0, t2) =5%, R(0, t3) = 5.5% et R(0, t4) = 6% Calculer le taux de maturité 2.5 ans ? R(0, 2.5) = a x 2.53 + b x 2.52 + c x 2.51 + d = 5.34375% avec Daniel HERLEMONT a 1 1 b 8 4 c = 27 9 d 64 16 1 1 2 1 3 1 4 1 −1 3% 0.0025 5% − 0.0225 5.5% = 0.07 6% − 0.02 24 Comparaisons des interpolations linéaire vs cubique 6.50% Linéaire Cubique 6.00% Taux 5.50% 5.00% 4.50% 4.00% 3.50% 3.00% 1 1.5 2 2.5 3 3.5 4 Maturité Daniel HERLEMONT 25 Les méthodes indirectes Ce sont les méthodes les plus utilisées en pratique Principe: Pour un panier d’obligations à coupons, il s’agit de la minimisation de l’écart au carré entre les prix de marché et les prix reconstitués à l ’aide d’une forme a priori spécifiée des taux zérocoupon ou de la fonction d’actualisation. Soit un panier constitué de n titres. On note à la date t: Pt j : prix de marché du j-ème titre. ∧ Pt j : prix théorique du j-ème titre Fs j : flux futur du j-ème titre tombant à la date s (s > t) Daniel HERLEMONT 26 Les méthodes indirectes - les modèles à splines fondés sur une modélisation de la fonction d’actualisation. ∧ Pt j = ∑ Fs j B (t , s ) =∑ Fs j f ( s − t ; β ) s s f est une fonction linéaire des paramètres d’estimation. Par conséquent, le prix de l’obligation est également une fonction linéaire des paramètres d’estimation La résolution d’un tel problème est donc matricielle. Cf MP p. 19 à 28 et p. 167 à 172 Daniel HERLEMONT 27 Les méthodes indirectes (2) L’idée consiste à trouver le vecteur des paramètres β j j Min ∑ Pt − Pt β j =1 On distingue deux grandes classes de modèles: n ∧ tel que 2 -les modèles type Nelson et Siegel fondés sur une modélisation des taux zéro-coupon (cf MP 28 à 34). - Les modèles à splines. Ils sont fondés sur une modélisation de la fonction d’actualisation. Les plus célèbres sont les splines polynomiaux (cf Mc Culloch (1971,1975)) et les splines exponentielles (cf Vasicek et Fong (1982)). Leur avantage tient à leur grande flexibilité qui leur permet de reconstruire toutes les formes de courbe rencontrées sur le marché. Daniel HERLEMONT 28 Le Modèle NELSON SIEGEL ∧ Pt = ∑ Fs B(t , s ) =∑ Fs .e j j s j − ( s −t ). R ( s −t ; β ) s R est la fonctionnelle des taux zéro-coupon. Le prix de l’obligation est une fonction non linéaire des paramètres d’estimation. La résolution d’un tel problème s’effectue à l’aide d’un algorithme de Newton modifié (cf MP p. 172 à 175). 1 − exp(− θ τ ) 1 − exp(− θ τ ) R (θ ) = β 0 + β1 − exp(− θ τ ) + β2 θτ θτ θ = s −t C Daniel HERLEMONT 29 Nelson Siegel 1 − exp(− θ τ ) 1 − exp(− θ τ ) R C (θ ) = β 0 + β1 exp( θ τ ) + − − β 2 θ τ θ τ θ = s −t R : taux zéro-coupon de maturité θ β0: facteur de niveau; il s ’agit du taux long. β1: facteur de rotation; il s’agit de l’écart entre le taux court et le taux long β2: facteur de courbure τ: paramètre d’échelle destiné à rester fixe au cours du temps Daniel HERLEMONT 30 NELSON SIEGEL Il est aisé d’exprimer les dérivées partielles de R par rapport à chacun des paramètres béta, ce que l’on appelle les sensibilités des taux zéro-coupon aux paramètres béta (cf graphique suivant). Ces sensibilités sont très proches de celles que l’on obtient historiquement en appliquant la méthode de l’ACP aux taux zérocoupon. On retrouve bien les facteurs de niveau, pente et courbure. Daniel HERLEMONT 31 Nelson Siegel 1.2 Sensibilité des taux 1 0.8 béta 0 béta 1 béta 2 0.6 0.4 0.2 0 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 Maturité des taux Daniel HERLEMONT 32 Neslon Siegel Inconvénients du modèle de Nelson et Siegel Le modèle de Nelson et Siegel ne permet pas de reconstituer toutes les formes de courbes de taux que l’on peut rencontrer sur le marché, en particulier les formes à une bosse et un creux (voir slide suivante). En outre, il manque de souplesse d’ajustement pour les maturités supérieures à 7 ans si bien que les obligations de telles maturités sont parfois mal évaluées par le modèle. Zero-coupon rate Le premier inconvénient peut être levé en utilisant le modèle de Svensson ou modèle de Nelson-Siegel augmenté. M atu r i ty Daniel HERLEMONT 33 Conclusion sur les modèles de type Nelson et Siegel Le reproche souvent formulé à l’encontre de cette classe de modèles est leur insuffisante flexibilité. En revanche les variables de ces modèles sont interprétables financièrement. Cette classe de modèles est en pratique le plus souvent utilisée pour l’analyse et la couverture du risque de taux de portefeuilles à flux connus. Nous allons à présent aborder les modèles à splines qui sont beaucoup plus flexibles mais présentent au contraire des paramètres qui ne sont pas interprétables d’un point de vue financier. Daniel HERLEMONT 34 Les splines polynomiaux 1- Modélisation standard Il est commun de considérer l’écriture standard comme dans l’exemple qui suit: B0 ( s ) = d 0 + c0 s + b0 s 2 + a0 s 3 , s ∈ [0,5] B(0, s ) = B5 ( s ) = d1 + c1s + b1s 2 + a1s 3 , s ∈ [5,10] B ( s ) = d + c s + b s 2 + a s 3 , s ∈ [10,20] 2 2 2 2 10 La fonction d’actualisation compte ici 12 paramètres. On rajoute des contraintes de régularité sur cette fonction qui garantissent la continuité, la continuité de la dérivée première et de la dérivée seconde de cette fonction aux points de raccord 5 et 10. Daniel HERLEMONT 35 Les splines polynomiaux (2) Pour i =0, 1 et 2: B0 (i ) (5) = B5 (i ) (5) (i ) B10 (10) = B5 (i ) (10) Et la contrainte qui porte sur le facteur d’actualisation: B0 (0) = 1 En utilisant l’ensemble de ces 7 contraintes, le nombre de paramètres à estimer tombe à 5: 2 3 B ( s ) = d + c s + b s + a s , s ∈ [0,5] 0 0 0 0 0 B (0, s ) = B5 ( s ) = 1 + c0 s + b0 s 2 + a0 [ s 3 − ( s − 5) 3 ] + a1 ( s − 5) 3 , s ∈ [5,10] B10 ( s ) = 1 + c0 s + b0 s 2 + a0 [ s 3 − ( s − 5) 3 ] + a1[(s − 5) 3 − ( s − 10) 3 ] + a2 ( s − 10) 3 , s ∈ [10,20] Daniel HERLEMONT 36 Les splines polynomiaux (3) Le système précédent peut être écrit sous la forme suivante: B (0, s ) = 1 + c0 s + b0 s 2 + a0 s 3 + (a1 − a0 ).( s − 5)3+ + (a2 − a1 ).( s − 10)3+ pour s ∈ [0,20] où ( s − θ ) 3+ = [Max((s − θ ),0 )] est la fonction dite bornée de puissance. 3 Il y a une autre écriture de cette équation dans la base des Bsplines. Cette écriture est devenu extrêmement classique. Daniel HERLEMONT 37 Les splines polynomiaux (4) 2- Expression dans la base des B-splines Les B-splines Bl3 ( s ) sont des fonctions linéaires de fonctions bornées de puissance. On écrit alors: 2 2 l +4 l +4 1 3 3 B(0, s ) = ∑ cl Bl ( s ) = ∑ cl ∑ ∏ s −λj + l = −3 l = −3 j =l i =l λi − λ j i ≠ j ( ) où les coefficients lambda sont définis comme suit: λ−3 < λ− 2 < λ−1 < λ0 = 0 < λ1 = 5 < λ2 = 10 < λ3 = 20 < λ4 < λ5 < λ6 et B(0,0) = Daniel HERLEMONT −1 2 ∑ cl Bl3 (0) l = −3 = ∑ cl Bl3 (0) = 1 l = −3 38 Le choix du nombre de splines Le nombre de splines influe sur la qualité des résidus et le lissage de la courbe. Plus il y a de splines et meilleurs sont les résidus. La courbe devient toutefois moins lisse, et peut passer par des points aberrants. Moins il y a de splines et plus on lisse la courbe. Mais les écarts de prix peuvent devenir importants ce qui laisse à penser que la courbe est mal rendue. Pour choisir au mieux ce nombre de splines, on peut utiliser la règle suivante. Daniel HERLEMONT 39 Le choix du nombre de splines (2) On constitue deux paniers. Le premier panier dit de minimisation contient les titres qui ont permis d’obtenir les paramètres d’estimation. Le deuxième panier dit de vérification contient des titres qui n’ont pas servi lors de la minimisation. Dans la mesure du possible, il faut que ces deux paniers soient homogènes, i.e contiennent à peu près le même nombre de titres, et les mêmes types de maturité (court, moyen et long). Pour chacun de ces deux paniers, l’idée consiste à calculer l’écart de prix moyen: ∧ j =n ∑ ( Pt j − Pt j ) 2 E= Daniel HERLEMONT j =1 n 40 Le choix du nombre de splines (3) Ces deux écarts sont notés Emin et Everif . La règle est la suivante: 1- On calcule ces deux écarts et on s’assure qu’ils sont inférieurs à la moyenne des fourchettes «bid-ask» (environ 10 centimes de prix). S’ils ne le sont pas, on augmente le nombre de splines jusqu’à temps qu’ils le deviennent. 2- On calcule la différence entre ces deux écarts: * si elle est faible, le nombre de splines est bien spécifié. * si elle est forte, le nombre de splines est probablement trop élevé. Il faut donc en retirer jusqu’à temps que cette différence devienne faible. Daniel HERLEMONT 41 La localisation des points de raccord La règle la plus logique consiste à localiser ces points de telle façon que chaque spline contienne à peu près le même nombre de titres. Par exemple, sur le marché français, on définit 5 splines: [0-1 an] : super court (BTF ou Monétaire + BTAN) [1-3 ans] : court terme (BTAN) [3-7 ans] : moyen terme (BTAN + OAT) [7-10 ans] : long terme (OAT) [10-30 ans] : très long terme (OAT) Daniel HERLEMONT 42 Spot et Forward Y ear 1 Spot 4.00% 2 5.50% 3 6.00% 4 6.50% 5 7.50% 6 8.00% 7 8.00% 8 8.00% Yield 4.00% 4.75% 5.16% 5.50% 5.89% 6.24% 6.49% 6.68% 16% 14% 1-Yr Spot Rate Zero Yield Curve 12% 10% 8% 6% 4% 2% 0% 1 Daniel HERLEMONT 2 3 4 5 6 7 8 43 Spot vs Forward (2) Y ear 1 2 Yield 11.50% 9.50% 3 8.75% 4 8.00% 5 7.75% 6 7.75% 7 7.50% 8 7.25% Forward 11.50% 7.54% 7.27% 5.78% 6.76% 7.75% 6.01% 5.52% 16% 14% Forward Rate Zero Yield Curve 12% 10% 8% 6% 4% 2% 0% 1 Daniel HERLEMONT 2 3 4 5 6 7 8 44 Convexité Price 957.36 Duration 9.0620 Coupon 4.0% 2 000 Price 1 500 1 000 Y ield 4.5% Maturity 11 500 0 0% 4 5% 30 Price % 10% 15% 20% 15% 20% Duration 25 3 20 2 15 10 1 5 0 0 0% Daniel HERLEMONT 5% 10% 15% 20% 0% 5% 10% 45 Le Prix en fonction du Coupon et de la Maturité Coupon A 5.5% Y ield 8.0% 786.01 Maturity A 15 Coupon B 8.0% Coupon C 10.0% 1 000.00 1 171.19 3000 2500 Maturity B 15 2000 1500 1000 Maturity C 15 500 0 0% Daniel HERLEMONT 2% 4% 6% 8% 10% 12% 14% 16% 18% 20% 46 Duration Coupon A 2.0% Y ield 11.0% Coupon B 6.0% 12.40 Maturity A 18 Coupon C 12.0% 9.02 7.86 30 25 Maturity B 15 20 15 10 Maturity C 15 5 0 0% 2% 4% 6% 8% 10% 12% 14% 16% 18% 20% Toutes choses étant égales par ailleurs, plus le coupon est faible, plus la duration est élevée Daniel HERLEMONT 47 Duration (suite) Coupon A 6,0% Y ield 8,0% Coupon B 6,0% 7,62 Maturity A 10 Coupon C 6,0% 9,79 12,73 30 25 Maturity B 15 20 15 10 Maturity C 30 5 0 0% 2% 4% 6% 8% 10% 12% 14% 16% 18% 20% la duration d’une obligation augmente, de manière non proportionnelle, avec sa durée de vie car la contribution à la duration des années les plus lointaines est réduite par l’actualisation. Daniel HERLEMONT 48 Immunisation Considérons une société qui souhaite tenir un engagement de 1 million € dans un 10 ans Elle souhaite investir maintenant pour tenir cet engagement. L'achat d'un zéro coupon pourrait répondre à cet objectif. Cependant, le zéro coupon n'est pas toujours disponible à la maturité souhaitée. La société est donc obligé de choisir des obligations sur le marché qui vont lui permettre de 1. Répliquer la valeur actuelle, avec un taux est de 9%, la valeur actuelle de l'obligation est 414 463 2. Etre immune aux variations des taux d'intérêts => la duration du portefeuille doit être la même que celle de l'obligation = 10 (ans) Obligations disponibles Taux O1 6% O2 11% O3 9% maturité (années) 30 10 20 prix 69.04 113.01 100 Yield (TRA) 9% 9% 9% Duration 11.44 6.54 9.61 Premier constat: on doit choisir au moins une obligation dont de duration > 10 => choix de O1 Choisissons O1 et O2, avec V1 et V2 les montants investis dans ces obligations, on doit vérifier: V1 + V2 = PV = 414 463 D1 V1 + D2 V2 = 10 PV Solution V1 = 292 788.73 et V2 = 121 854.27 lorsque le taux passe de 9% à 8%, le portefeuille ne varie que de 1562 de 9% à 10% le portefeuille ne varie que de 1162 ce qui reste négligeable … source: exemple Luenberger, p. 64 Il est conviendra de "ré ajuster" le portefeuille périodiquement au fur et à mesure de la variation des taux Daniel HERLEMONT 49 Exemple de librairie à réaliser double cash_flow_pv(int n, double cflow_times[], double cflow_amounts[], double r) { // calculate present value of cash flow, continous discounting int t; double PV=0.0; for (t=0; t<n;t++) { PV += cflow_amounts[t] * exp( -r * cflow_times[t]); }; return PV; }; Daniel HERLEMONT 50 Taux de rendement interne Avec Ct les cash flow C0 étant, par exemple, le prix d'une obligation dans ce cas y = yield = rendement à maturité Algorithme à implementer en C : recherche d'une racine par bisection double cash_flow_irr(double[] cflow_times, double[] cflow_amounts) { … }; A adapter à partir des Numerical Recipes voir les fonctions zbrac et rtbis Explications et code C disponibles online (google "Numerical Recipes in C") Daniel HERLEMONT 51 Numerical Recipes in C http://www.library.cornell.edu/nr/bookcpdf.html Le livre est disponible online en intégralité !!! Plus de 100O pages … aperçu du contenu Daniel HERLEMONT 52 NR (suite) Daniel HERLEMONT 53 NR (suite) Daniel HERLEMONT 54 Exemple NR - bisection Attention, si les NR constituent une référence incontournable, le code C n'est pas toujours écrit de manière lisible !!!! Par exemple l'instruction rtb = f < 0.0 ? (dx=x2-x1,x1) : (dx=x1-x2,x2); devra être réécrite sous une forme plus lisible, par exemple: if (f<0.0) { rtb=x1; Attention dx=x2-x1; Les NR utilisent des tableaux indéxé } else { de 1 à n et non pas de 0 à n-1 !!! rtb=x2; dx=x1-x2; } Daniel HERLEMONT 55