VBA pour les taux et les structurés
Agenda Produits de taux Prévoir les dates des flux en fonction des conventions et des informations Fonctions de courbes de taux Fonctions pour les instruments à taux fixe et à taux variable Gestion des risques
Agenda (suite) Finance structurée (ABS) Récupération des informations d’un portefeuille de crédits → programmation objet Mise en place d’un screener Modèle prévisionnel des cash flows
Références Taux S. Hamard « Mathématiques Financières avec VBA Excel », eni éditions Interest Rate Risk Modeling: The Fixed Income Valuation Course – Nawalkha, Soto, Beliaeva
Références Structurés William Preinitz (Citigroup) « A fast-tracked to structured finance », Wiley Darren Smith & Pamela Winchie (Dresdner Kleinwort) « Cash CDO modelling in Excel », Wiley Evan Tick (IXIS) Structured Finance Modeling with object-oriented VBA
Les dates des flux Conventions et fonctions VBA
1ere application : les dates des flux Spécifité des produits de taux « classiques » : Des dates de flux Les déterminants des dates : Jours travaillés → calendrier Target en Europe Conventions des reports de dates Conventions sur les taux Le résultat : la fonction des dates des flux
1ere application : les dates des flux Les fonctions préalables : Années bissextiles, jours fériés Les jours travaillés La fonction d’ajustement des dates La fonction « fraction année » La fonction principale définissant les dates des flux
La fonction fnJourTravaille Argument : une date Résultat : Vrai/Faux Les règles = celles du calendrier Target Jours non travaillés = samedi, dimanche Jours fériés : 25 déc., 26 déc., 1er janvier, 1er mai, Vendredi Saint et Lundi de Pâques
La fonction fnJourTravaille Les fonctions VBA sur les dates Day, Year, Month Weekday (et sa convention) Les fonctions fnBissextile Année → Vrai/Faux fnPaques Résultat = dates des dimanches de Pâques Algo → Wiki
Test sur l’existence du tableau sur Pâques Le pseudo code Test sur l’existence du tableau sur Pâques Tests sur les différents jours fériés et autres jours non travaillés Structure if then Résultats : booléen
2eme fonction : fnDateTravaillee Problème : Si premier jour envisagé pour un flux n’est pas travaillé, proposition d’un autre jour Conventions « forward » (ou « following ») « modified forward » (ou modified following ») « backward » (ou « preceding ») « modified backward » (ou « modified preceding »)
fnAjusteDate : éléments VBA Select Case (ou If Then) While Wend (ou Do… Loop) Not (pour la condition)
fnDateTravaillee : pseudo code Les 4 cas à envisager avec Select Case Tâtonnement Simple avec While Wend si condition est forward ou backward Tâtonnement initial puis second tâtonnement en cas de débordement mensuel si condition modified forward ou modified backward
La fonction fnFractionAnnee Calcul des intérêts sur une base annuelle Utilisation de conventions Conventions utilisées Actual / 365 Actual / 360 Exact / Exact 30 / 360
fnFractionAnnee : éléments VBA Fonctions VBA Month, Day, Year DateSerial Fonctions personnelles fnBissextile
pseudo-code Cas à envisager (avec Select Case) Calcul en fonction des conventions Si convention Exact / Exact, test sur le fait que l’année soit bissextile
La fonction fnDatesFlux Fonction combinant les fonctions précédentes Calcul de toutes les dates de flux comprise entre date de calcul et Date d’échéance En prenant en compte en plus :
La fonction fnDatesFlux Fonction combinant les fonctions précédentes Calcul de toutes les dates de flux comprise entre date de calcul et Date d’échéance En prenant en compte en plus :
La fonction fnDatesFlux La date de départ > date de calcul → instrument forward La fréquence annuelle Le mode d’ajustement (forward, etc.) Le type du coupon brisé
La fonction fnDatesFlux Le type du coupon brisé : Au début / A la fin des flux Court / long → 4 cas