Le risque de contrepartie, expliqué à un développeur

Quand j'explique ce que je fais en banque d'investissement à des développeurs qui n'ont jamais touché à la finance, je passe toujours par la même analogie : le risque de contrepartie, c'est un problème de dépendance externe qui peut tomber en panne au pire moment.
Le problème, en termes de système distribué
Imaginez un service A qui appelle un service B pour honorer une promesse future (un paiement dans six mois, par exemple). Le risque de contrepartie, c'est la probabilité que le service B soit down au moment où A a besoin de lui, et le coût que ça représente si A avait compté dessus sans filet.
En finance, ce service B, c'est une contrepartie : une banque, un fonds, une entreprise, avec qui on a un contrat (souvent un produit dérivé). Le risque, c'est qu'elle fasse défaut avant l'échéance du contrat.
EAD, PFE, CVA : trois métriques, trois questions
- EAD (Exposure At Default) : si la contrepartie fait défaut maintenant, combien je perds ? C'est un peu comme mesurer l'état actuel d'une connexion ouverte.
- PFE (Potential Future Exposure) : dans le pire des cas plausibles, à quel point mon exposition peut-elle grimper avant l'échéance ? C'est une simulation Monte Carlo sur des milliers de trajectoires de marché possibles.
- CVA (Credit Valuation Adjustment) : combien ça coûte, en valeur aujourd'hui, de porter ce risque de défaut sur toute la durée du contrat ? C'est le prix qu'on paie pour l'incertitude.
| Métrique | Question à laquelle elle répond | Horizon |
|---|---|---|
| EAD | Si la contrepartie fait défaut maintenant, combien je perds ? | Aujourd'hui |
| PFE | Dans le pire cas plausible, à quel point mon exposition peut-elle grimper ? | Future (simulée) |
| CVA | Combien coûte, en valeur actuelle, le risque de défaut sur toute la durée du contrat ? | Toute la durée du contrat |
Un exemple chiffré simplifié
Prenons une contrepartie avec une exposition actuelle de 10M€ (EAD), une probabilité de défaut estimée à 1,5 % sur l'année (issue de son rating), et un taux de recouvrement supposé de 40 % en cas de défaut (on ne perd pas la totalité, une partie est généralement récupérable) :
Perte en cas de défaut = EAD × (1 - taux de recouvrement)
= 10 000 000 × (1 - 0,40)
= 6 000 000 €
CVA (approximation simple) = Perte en cas de défaut × probabilité de défaut
= 6 000 000 × 0,015
≈ 90 000 €
Ces 90 000 € représentent, en valeur aujourd'hui, le coût de porter ce risque de contrepartie sur l'année : c'est ce montant qu'une banque provisionne, ou répercute dans le prix du produit dérivé. Un vrai calcul de CVA est bien plus complexe (il intègre la structure par terme du risque de crédit et l'évolution de l'exposition dans le temps via simulation Monte Carlo), mais l'intuition reste la même : plus l'exposition ou la probabilité de défaut est élevée, plus le coût du risque grimpe.
Pourquoi c'est un bon terrain pour un développeur curieux
Ce qui rend le sujet intéressant techniquement, c'est qu'il force à combiner des simulations numériques lourdes (des milliers de scénarios de marché simulés) avec des contraintes de performance réelles : ces calculs tournent tous les soirs sur l'ensemble du portefeuille d'une banque, et doivent terminer avant l'ouverture des marchés le lendemain.
C'est cette intersection entre rigueur mathématique et contraintes d'ingénierie qui m'a donné envie de construire counterparty-risk-lab et kotlin-counterparty-risk : des implémentations pédagogiques, en TDD, pour rendre ces concepts manipulables par n'importe quel développeur curieux, sans accès à un système bancaire réel.