L’adjoint algorithmic differentiation ou « AAD » : application au calcul des XVA

L’adjoint algorithmic differentiation ou « AAD » : application au calcul des XVA

I- Contexte et objectifs :  

En finance, le calcul de la valeur d’un instrument dérivé (aussi appelée « Marked to market », ou « MtM ») s’accompagne de la production de métriques connexes visant à quantifier ses risques inhérents : les sensibilités. Elles correspondent aux dérivées partielles du marked-to-market par rapport à chacun des facteurs de risques de marchés (courbe de taux, taux de change, actions…). Elles mesurent la dépendance (ou « sensibilité ») de la valorisation de l’instrument aux facteurs de marchés. 

La méthode de calcul des sensibilités la plus couramment utilisée est celle dite de « différences finies » : elle consiste à appliquer un choc infinitésimal ε 𝜀 à chaque facteur de risque et mesurer la valorisation induite par ce choc :  

Le principal obstacle à cette méthode est son coût en infrastructure IT : chaque sensibilité requiert deux calculs du MtM avec facteurs choqués. Pour un instrument dépendant de plusieurs dizaines de facteurs, cette méthode requiert autant de calculs de MtM qu’il y a de facteurs de risques et représente donc une charge IT potentiellement rédhibitoire.  

Une alternative a été proposée au début des années 2000, par Giles et Glasserman[1], inspirée de solutions déjà existantes dans l’industrie en météorologie, mécaniques de fluides… : l’AAD, pour « adjoint algorithmic differentiation ». 

 

II- Principes de l’« AAD » :  

La méthode « AAD » consiste à calculer, en même temps que la métrique désirée, toutes ses dérivées partielles, autrement dit toutes les sensibilités de la métrique à chacun de ses facteurs de risques. 

Le principe est le suivant :  

    • Toute métrique résulte de la composition d’opérations élémentaires (« + », « - », « exp(.) », « log (.) »…) dont les dérivées partielles sont connues et  (presque systématiquement) continues. De façon générale, tout résultat d’un algorithme de calcul « Z » à partir de variables « X » peut être exprimé comme la composition de fonctions élémentaires  Fn sous la forme suivante :

 

 

 

 

 

 

 

 

 

 

 

Le premier point fort de la méthode est de produire un calcul de dérivées analytiques, donc « exactes », au contraire de la méthode des différences finies. 

Le second (et principal) avantage de la méthode est l’économie très significative d’opérations de calcul, qui rend envisageable l’objectif de calcul des sensibilités des XVA.  

Selon la méthode « forward » ou « backward », les dérivées partielles de « Z » par rapport à « X » se calculent comme suit : 

 

III- Applications : 

En risque de contrepartie, les XVA (pour « cross valuation adjustment ») permettent de mesurer le cout ou gain induit par des facteurs externes à la valorisation théorique d’un instrument financier. Par exemple, le cout induit par le défaut de la contrepartie avec lequel l’établissement de crédit traite (counterparty valuation adjustment ou « CVA »), ou la prise en compte du taux de financement réel (funding valuation adjustment ou « FVA »). 

Ces métriques reposent sur la valorisation des instruments dans un grand nombre de scénarios (plusieurs milliers) et horizons de temps futurs (plusieurs centaines). Elles sont à ce titre particulièrement consommatrices en ressources IT. Tout procédé permettant d’en limiter l’inflation de calculs est particulièrement adéquat. 

Les métriques XVA sont prises en compte en résultats (« P&L ») et, de ce fait, justifient un calcul de sensibilités à ses facteurs de risques. Pour une métrique XVA, la problématique consiste à calculer ses sensibilités à l’ensemble des facteurs de risques qui la sous-tendent. L’AAD en mode « backward » est donc optimal dans cette configuration à une sortie – la XVA – et plusieurs dizaines voire centaines d’entrées (les facteurs de risques de marchés :  courbes de taux d’intérêt, taux de change, actions…). 

IV- Déclinaison opérationnelle : 

L’implémentation de la méthode d’AAD est confrontée à plusieurs difficultés, en particulier en mode « backward ». En effet, pour exécuter de façon antéchronologique les opérations élémentaires , il aura été nécessaire de les enregistrer, caractéristiques incluses, dans une « tape », sorte de trace chronologique exhaustive des opérations exécutées pour aboutir à la métrique.  

D’une part, la construction de la « tape » requiert la réécriture du code la librairie de valorisation, pour mettre en place une « surcharge d’opérateurs ». Le procédé permet de systématiser la récupération des caractéristiques d’une opération lors de l’appel à chaque fonction élémentaire. Il consiste à remplacer dans la librairie de calcul, toute opération élémentaire (« + », « - », « exp »…) par un opérateur amélioré qui, non seulement remplira la même fonction, mais en plus  archivera l’opération et ses caractéristiques dans une bibliothèque (la « tape »). 

 

D’autre part, pour des calculs complexes tels que les XVA, le volume d’opérations est conséquent : plusieurs milliers par calcul de « MtM », le calcul de XVA reposant lui-même sur plusieurs centaines de milliers de calculs de « MtM ». La méthode fait donc face à une problématique d’infrastructure qu’elle peut contourner en découpant la mécanique de calcul en étapes, à l’issue desquelles elle produit des sensibilités intermédiaires. La encore, le contournement repose sur une refonte du code de la mécanique de calcul de la métrique. 

Ensuite, les méthodes de valorisations ne peuvent pas toujours être décomposées en opérations élémentaires. C’est notamment le cas pour certains produits exotiques ou « path-dependant ». La méthode de valorisation pouvant par exemple s’appuyer sur des régressions linéaires, elle n’est pas toujours directement réductible à une succession d’opérations élémentaires, notamment lors de l’étape de minimisation de l’erreur quadratique. 

 

Enfin, les fonctions élémentaires ne sont pas systématiquement continues et dérivables (exemple : fonctions max(x,y) et min(x,y) quand x=y) 

 V- Résultats expérimentaux et conclusions : 

Sur un prototype réalisé en python, pour deux types de produits (un cross-currency swap et un call equity), les statistiques sont les suivantes :  

  Cross Currency Swap USD/EUR maturité à 4 ans   Call Equity  maturité à 8 ans 
Nombre de sensibilités calculées  32  26 
Nombre d’opérations élémentaires stockées dans la « tape »  835  177 
Temps de pricing + enregistrement des opérations (ms)  22  15 
Temps de backprocessing / calcul des sensibilités (ms)  45  16 

 

Les résultats illustrent la pertinence de la méthode pour une configuration à grand nombre d’entrées et faible nombre de sorties. Pour calculer une trentaine de sensibilités sur ces deux produits, le temps de calcul est d’environ 2 fois celui du calcul de la métrique. Par comparaison, en utilisant la méthode des différences finies, il aurait été de l’ordre de 64 fois pour le CCY swap et 52 fois pour le call equity.  

Pour le temps de calcul de toutes les sensibilités d’une métrique, les différents benchmarks de place réalisés dans des conditions plus proches de la réalité, affichent un ordre de grandeur de 4 [2], [3], [4] fois égal au temps de calcul de la métrique, relativement peu dépendant du nombre de sensibilités à calculer. Dès lors qu’une métrique dépend de plus de quelques facteurs, l’AAD en mode « backward » devient pertinent pour calculer ses sensibilités.  

A ce titre, et malgré le fait qu’elle ne soit pas encore complètement aboutie, la méthode « AAD » gagne en popularité dans les banques pour répondre à la problématique de calcul de sensibilités XVA. Celles-ci ont vocation à être utilisées en trading à des fins de couverture d’une part, et pour la réglementation FRTB CVA (charge en capital réclamée par Bale III au titre de la variation en CVA) d’autre part.  

 JEAN LABADIE – Consultant du pôle Risques et Modélisation
Bibliographie :  
[1]: Smoking adjoints: fast Monte Carlo Greeks, Giles et Glasserman 
[2]: AAD and least-square Monte Carlo: fast Bermudan-style options and XVA Greeks, Luca Capriotti, Yupeng Jiang , Andrea Macrina (2017) 
[3]: Adjoints and automatic (algorithmic) differentiation in computational finance, Christina Homescu (2011) 
[4]: Introduction to Automatic Adjoint Differentiation – AAD – in Machine Learning and Finance 

1024 576 CMG Consulting Group
CMG Consulting Group
Rechercher...