Instruments à taux variables
Introduction
Dans cette partie vous allez adapter les fonctions des instruments à taux fixes, pour les instruments à taux variables.
Un instrument à taux variable paye à intervalles réguliers des intérêts basés sur un taux variant à échéance régulière.
Pour les instruments à taux variables, les flux d’intérêts ne sont pas réalisés avec un taux constant. Il faut les estimer sur une courbe de taux, grâce à la fonction TauxForward.
Comme pour les taux fixes, nous allons examiner d’abord les fonctions de valorisation puis les fonctions d’estimation du risque.
La fonction FluxTV
Objectif
Cette fonction détermine les flux d’un instrument à taux variables.
Les taux utilisés pour le paiement des intérêts sont fixés (fixing) à intervalles réguliers, pour la période d’application du taux. Par simplification, nous considérons que la date du fixing se fait le jour du paiement des intérêts, éventuellement le jour du départ de l’instrument pour le premier flux.
Par exemple, un instrument à maturité 1 an dont la date de départ est le 15 janvier, payant le taux 3 mois, aura les flux suivants :
Dans le cas le plus courant, les taux sont fixés pour la période à venir. Le premier coupon est fixé à la date de départ de l’instrument, puis les suivants à chaque date de flux :
Si l’instrument est en cours de vie, le taux de la période courante a été fixé lors du dernier flux (ou à la date de départ). Ce taux est le dernier fixing, il est utilisé pour les intérêts du prochain flux.
Certains instruments à taux variables payent un taux dont la durée est différente de la période d’application. Par exemple, un instrument un an, départ le 15/01, payant le taux six mois tous les trois mois :
Il est également possible que le taux soit "Set in arrears".
Pour les instruments à taux variables de type "Set in arrears", le taux est fixé à la fin de la période d’application.
Par exemple, un instrument un an set in arrears, payant le taux 3 mois, tous les 3 mois.
Enfin, un spread peut être ajouté aux taux variables. Le coupon est alors à :
Arguments
Nom de l’argument |
Description |
Format de l’argument |
DateDeCalcul |
Date de calcul |
Date |
DateDeMaturite |
Date de maturité de l’instrument |
Date |
iFrequence |
Fréquence |
Entier, nombre de coupon par an de l’instrument |
Base |
Base |
Variant |
dblValeurRemboursement |
Valeur de remboursement (nominal) |
Double |
TabDateFA |
Tableau des maturités des facteurs d’actualisation |
Variant |
TabFA |
Tableau des facteurs d’actualisation |
Variant |
dblDernierFixing |
Dernier fixing s’il est connu (%, optionnel) |
Double |
iPeriodeTV |
Période d’application du taux variable, si elle est différente... |
La fonction CouponCouruTV
Objectif
Cette fonction détermine le coupon couru entre la date du dernier coupon et la date de calcul. Si le coupon est du type "Set in arrears", alors le coupon couru est estimé en utilisant le taux de fixing estimé à la date de calcul.
Arguments
Nom de l’argument |
Description |
Format de l’argument |
DateDeCalcul |
Date de calcul |
Date |
DateDeMaturite |
Date de maturité de l’instrument |
Date |
iFrequence |
Fréquence |
Entier, nombre de coupon par an de l’instrument |
Base |
Base |
Variant |
dblValeurRemboursement |
Valeur de remboursement (nominal) |
Double |
TabDateFA |
Tableau des maturités des facteurs d’actualisation (optionnel, obligatoire si instrument "Set in arrears") |
Variant |
TabFA |
Tableau des facteurs d’actualisation (optionnel, obligatoire si instrument "Set in arrears") |
Variant |
dblDernierFixing |
Dernier fixing s’il est connu (%, optionnel, obligatoire si l’instrument n’est pas "Set in arrears") |
Double |
iPeriodeTV |
Période d’application du taux variable, si elle est différente de la fréquence de paiement. Par exemple un taux 6 mois payé tous les 3 mois, alors iFrequence= 12/3=4 et iPeriodeTV=6 (nombre de mois). Par défaut iPeriodeTV=12/iFrequence Optionnel |
Entier |
bSetInArrears |
1 si l’instrument est "Set in arrears" (optionnel, par défaut=0) |
Booléen |
dblSpread |
Spread (optionnel) |
double |
ModeAjustement |
Mode d’ajustement (optionnel) |
Variant |
DateDeDepart |
Date de départ de l’instrument (optionnel) |
Date |
Mode de calcul
Si l’instrument est un instrument forward, alors le coupon couru est nul.
Détermination du taux
Instrument non "Set in arrears"
Le taux t est égal à dblDernierFixing.
Instrument "Set in arrears"
Le taux t est égal au taux forward entre la date du dernier flux d et d+ iPeriodeTV.
Détermination du coupon couru
dblFrac=FractionAnnee(d;DateDeCalcul;Base)
Flux(i)=dblValeurRemboursement*(ti+dblSpread)*dblFrac
Code...
La fonction TauxRendementTV
Objectif
Comme dans le cas de l’instrument à taux fixes, cette fonction détermine le taux de rendement actuariel de l’instrument à taux variables.
Arguments
Nom de l’argument |
Description |
Format de l’argument |
DateDeCalcul |
Date de calcul |
Date |
DateDeMaturite |
Date de maturité de l’instrument |
Date |
dblPrixPied |
Prix pied de coupon de l’instrument |
Double |
iFrequence |
Fréquence |
Entier, nombre de coupon par an de l’instrument |
Base |
Base |
Variant |
dblValeurRemboursement |
Valeur de remboursement (nominal) |
Double |
TabDateFA |
Tableau des maturités des facteurs d’actualisation |
Variant |
TabFA |
Tableau des facteurs d’actualisation |
Variant |
dblDernierFixing |
Dernier fixing s’il est connu (%, optionnel) |
Double |
iPeriodeTV |
Période d’application du taux variable, si elle est différente de la fréquence de paiement. Par exemple un taux 6 mois payé tous les 3 mois, alors iFrequence= 12/3=4 et iPeriodeTV=6 (nombre de mois). Par défaut iPeriodeTV= 12/iFrequence Optionnel |
Entier |
bSetInArrears |
1 si l’instrument est "Set in arrears" (optionnel, par défaut=0) |
Booléen |
dblSpread |
Spread (optionnel) |
Double |
ModeAjustement |
Mode d’ajustement (optionnel) |
Variant |
DateDeDepart |
Date de départ de l’instrument (optionnel) |
Date |
Mode de calcul
Le mode de calcul est identique à celui de la fonction TauxRendement, seul le tableau des flux change.
Code de la fonction TauxRendementTV
Function TauxRendementTV(DateDeCalcul As Date, DateDeMaturite As Date, _
dblPrixPied As Double, _
iFrequence As Integer, Base As Variant, _
dblValeurRemboursement As Double, _
TabDateFA, TabFA, Optional dblDernierFixing...
Autres fonctions pour les instruments à taux variables
Comme vous pouvez le constater avec la fonction TauxRendementTV, il est facile de reporter les fonctions des instruments à taux fixe pour les instruments à taux variable. Il suffit de remplacer les appels des fonctions spécifiques, par exemple l’appel de la fonction FluxTF doit être remplacer par l’appel de la fonction FluxTV.
Une fonction mérite un peu plus d’attention ; la fonction spread sur courbe que vous allez modifier pour calculer le spread à ajouter aux coupons variables pour que la somme des flux actualisés soit égale au prix.
Comme vous en avez besoin pour la suite de cet ouvrage, vous verrez également le code de la fonction PrixPleinSurCoubeInsTV, qui permet de calculer le prix par actualisation des flux sur une courbe de taux et BPVSurCourbeTV, qui détermine les variations de valeurs pour une variation de 1 point de base des facteurs d’actualisation.
La fonction SpreadSurCourbeInsTV
Objectif
Cette fonction détermine le spread à ajouter aux coupons d’un instrument à taux variables de manière à ce que sa somme de flux actualisés soit égale à son prix plein.
Avec DFi le facteur d’actualisation à la date i.
Arguments
Nom de l’argument |
Description |
Format de l’argument |
DateDeCalcul |
Date de calcul |
Date |
DateDeMaturite |
Date de maturité de l’instrument |
Date |
dblPrixPied |
Prix pied de coupon de l’instrument |
Double |
iFrequence |
Fréquence |
Entier, nombre de coupon par an de l’instrument |
Base |
Base |
Variant |
dblValeurRemboursement |
Valeur de remboursement (nominal) |
Double |
TabDateFA |
Tableau des maturités des facteurs d’actualisation |
Variant |
TabFA |
Tableau des facteurs d’actualisation |
Variant |
dblDernierFixing |
Dernier fixing s’il est connu (%, optionnel) |
Double |
iPeriodeTV |
Période d’application du taux variable, si elle est différente de la fréquence de paiement. Par exemple un taux 6 mois payé tous les 3 mois, alors iFrequence= 12/3=4 et iPeriodeTV=6 (nombre de mois). Par défaut iPeriodeTV= 12/iFrequence Optionnel |
Entier |
bSetInArrears |
1 si l’instrument est "Set in arrears" (optionnel, par défaut=0) |
Booléen |
ModeAjustement |
Mode d’ajustement (optionnel) |
Variant |
DateDeDepart |
Date de départ... |