6

Click here to load reader

Chapitre 5 : Fonctions de manipulation des courbes de … · Construisez votre bibliothèque de fonctions avec VBA Excel ... en modi fiant la base de calcul et/ou son type. ... nombre

Embed Size (px)

Citation preview

Page 1: Chapitre 5 : Fonctions de manipulation des courbes de … · Construisez votre bibliothèque de fonctions avec VBA Excel ... en modi fiant la base de calcul et/ou son type. ... nombre

Chapitre 5 : Fonctions de manipulation des courbes de taux©

Edi

tions

EN

I - A

ll rig

hts r

eser

ved

77

Chapi tre 5 : Fonctions d e manipu lation d es courb es d e taux

Mathématiq ues f inancièresA. IntroductionDans ce chapitre vous allez créer les fonctions vous permettant de manipuler descourbes de taux. Vous allez d'abord réaliser une fonction permettant de changer lesconventions utilisées pour un taux. Vous verrez par la suite les fonctions d'interpolationlinéaire et cubique. Vous aurez alors les éléments pour construire une courbe de facteursd'actualisation ou de taux zéro-coupon. Pour finir vous verrez une fonction pour calculerun taux forward.

B. L'instruction "Option Base"Avant d'aborder les fonctions de manipulations des taux, nous allons expliquer uneoption déclarée au niveau du module, de la même manière que "Option Explicit".

Par exemple, il est équivalent de faire :

Option Base 1

Function Test() Dim UnTableau(10) End Function

et

Function Test() Dim UnTableau(1 To 10) End Function

G L'instruction "Option Base" suivie de 0 ou 1, permet de déclarer la valeur par défaut del'indice inférieur d'un tableau.

Page 2: Chapitre 5 : Fonctions de manipulation des courbes de … · Construisez votre bibliothèque de fonctions avec VBA Excel ... en modi fiant la base de calcul et/ou son type. ... nombre

Mathématiques financières78 Construisez votre bibliothèque de fonctions avec VBA Excel

Vous ajouterez cette option sur les prochains modules. Sur le module contenant lesfonctions de manipulations des dates, elle ne doit pas être présente.

C. La fonction ChangeTauxLes taux peuvent prendre différentes formes. Ils peuvent être de la forme simple, aussiappelés taux proportionnels, de forme actuariels ou taux composés ou encore être destaux continus.

1. Taux simple

2. Taux composé

Par exemple, pour un instrument payant des intérêts annuels, à la fin de la première pé-riode le capital C1 sera le capital initial C0 augmenté des intérêts i :

C1=C0+i*C0=C0(1+i)

À la deuxième période :

C2=C1+i*C1=C1(1+i)=C0(1+i)2

Et ainsi de suite :

Cn=C0(1+i)n

Si le paiement n'est pas annuel, mais à une périodicité p inférieure à l'année (p=12 pourun paiement mensuel), on conserve l'idée de la capitalisation, la formule générale de-vient :

GDans le cas d'un taux simple, les intérêts i reçus pour la période allant de t à t+1 parun taux r pour un investissement de 100 sont calculés par la formule :: i=100*r*FractionAnnee(t,t+1,Base)

GDans le cas des intérêts composés, ou capitalisés, les intérêts payés en n sont supposésréinvestis dans le capital de l'instrument. En n+1, les intérêts seront calculés sur le ca-pital augmenté des intérêts payés en n.

Page 3: Chapitre 5 : Fonctions de manipulation des courbes de … · Construisez votre bibliothèque de fonctions avec VBA Excel ... en modi fiant la base de calcul et/ou son type. ... nombre

Chapitre 5 : Fonctions de manipulation des courbes de taux©

Edi

tions

EN

I - A

ll rig

hts r

eser

ved

79Il est possible de calculer des taux équivalents. Par exemple, le taux semi-annuel i2 équi-valent au taux annuel i est calculé par la relation :

3. Taux continu

4. Facteur d'actualisation

Il permet de connaître la valeur actuelle d'un montant futur. Les facteurs d'actualisationsont la base des techniques d'évaluation des instruments financiers.

5. Objectif de la fonction ChangeTauxCette fonction permet la conversion d'un taux ou d'un facteur d'actualisation en unautre taux (ou facteur d'actualisation) en modifiant la base de calcul et/ou son type. Ellesera utile pour calculer une courbe de facteurs d'actualisation pour la valorisation desinstruments et également pour calculer des taux forwards nécessaires pour déterminerles flux futurs des instruments à taux variables.

G Si la période de composition p tend vers l'infini,

alors il est démontré que :ip=ln(1+i).ip est appelé taux continu.

GL'équation C1=C0(1+i) implique que , le rapport est appeléfacteur d'actualisation.

Page 4: Chapitre 5 : Fonctions de manipulation des courbes de … · Construisez votre bibliothèque de fonctions avec VBA Excel ... en modi fiant la base de calcul et/ou son type. ... nombre

Mathématiques financières80 Construisez votre bibliothèque de fonctions avec VBA Excel

6. Arguments de la fonction ChangeTauxLe tableau ci-après reprend la liste des arguments dont nous avons besoin pourconstruire cette fonction.

7. Mode de calculPour rendre le code plus lisible, il faut passer par une référence unique quel que soit letype de la donnée entrée. La référence unique est le facteur d'actualisation, FA, calculé àpartir de la donnée initiale selon le tableau suivant :

Nom de l'argument Description Format de l'argument

DateDeCalcul Date de calcul Date

DateDeMaturite Date de maturité Date

dblDonnee Donnée (taux en % ou facteuractualisation)

Double

iTypeDonnee Type de donnée : 0 si taux com-posé, 1 si taux proportionnel, 2si facteur actualisation, 3 si tauxcontinu

Entier

iFrequence Fréquence : nombre de couponpar an de l'instrument

Entier

iBase Base Entier

iTypeDonneeCible Type de donnée cible : 0 si tauxcomposé, 1 si taux proportion-nel, 2 si facteur actualisation, 3si taux continu

Entier

iFrequenceCible Fréquence Cible, nombre de cou-pon par an de l'instrument

Entier

iBaseCible Base Cible Entier

iTypeDonnee Facteur d'actualisation FA

0 (taux actuariel)

1 (taux simple)

Page 5: Chapitre 5 : Fonctions de manipulation des courbes de … · Construisez votre bibliothèque de fonctions avec VBA Excel ... en modi fiant la base de calcul et/ou son type. ... nombre

Chapitre 5 : Fonctions de manipulation des courbes de taux©

Edi

tions

EN

I - A

ll rig

hts r

eser

ved

81

Avec F1=FractionAnnee(DateDeCalcul;DateDeMaturite;iBase)

La valeur retournée, un double, est déterminée à partir du facteur d'actualisation FA,selon le tableau suivant :

Calcul de la valeur retournée

Avec F=FractionAnnee(DateDeCalcul;DateDeMaturite;iBaseCible)

8. Code de la fonction ChangeTauxNous avons précisément défini ce que nous souhaitions faire, le code de la fonction endécoule sans difficultés.

Option ExplicitOption Base 1

Function ChangeTaux(DateDeCalcul As Date, DateDeMaturite As Date, _ dblDonnee As Double, iTypeDonnee As Integer, iFrequence As Integer, _ iBase, iTypeDonneeCible As Integer, _

2 (facteur actualisation) FA=dblDonnee

3 (taux continu)

iTypeDonneeCible Valeur retournée

0 (taux actuariel)

1 (taux simple)

2 (facteur actualisation) FA

3 (taux continu)

iTypeDonnee Facteur d'actualisation FA

Page 6: Chapitre 5 : Fonctions de manipulation des courbes de … · Construisez votre bibliothèque de fonctions avec VBA Excel ... en modi fiant la base de calcul et/ou son type. ... nombre

Mathématiques financières82 Construisez votre bibliothèque de fonctions avec VBA Excel

iFrequenceCible As Integer, iBaseCible) As Double

'============================================================='Cette fonction permet la conversion d'un taux ou d'un facteur'd'actualisation en un autre taux (ou facteur d'actualisation)'en modifiant la base de calcul et/ou son type'=============================================================

'Définitions des variablesDim dblFA As Double 'Facteur d'actualisationDim dblValRet As Double 'Variable renvoyéeDim dblF1 As Double 'Fraction année dans la base sourceDim dblF2 As Double 'Fraction année dans la base cible dblF1 = FractionAnnee(DateDeCalcul, DateDeMaturite, iBase)dblF2 = FractionAnnee(DateDeCalcul, DateDeMaturite, iBaseCible)

'Conversion de la donnée initiale'en facteur d'actualisationSelect Case iTypeDonnee Case 0 'la donnée initiale est un taux composé dblFA = (1 + dblDonnee / iFrequence) ^ (iFrequence * dblF1) dblFA = 1 / dblFA Case 1 'la donnée initiale est un taux proportionel dblFA = (1 + dblDonnee * dblF1) dblFA = 1 / dblFA Case 2 'la donnée initiale est un facteur d'actualisation dblFA = dblDonnee Case 3 'la donnée initiale est un taux continu dblFA = Exp(-dblDonnee * dblF1) Case Else 'type inconnu, la fonction ne calcule rien dblFA = 0End Select

Select Case iTypeDonneeCible

Case 0 'La donnée cible est un taux composé dblValRet = (((1 / dblFA) ^ (1 / (dblF2 * _ iFrequenceCible))) - 1) * iFrequenceCible