
Aperçu de la logique Monte Carlo utilisée pour estimer des prix d’options.
Finance quantitative · C++ · Pricing
Projet académique de groupe orienté ingénierie financière en C++. L’objectif était de construire un socle de pricing d’options avec plusieurs approches complémentaires: modèle binomial CRR, formule fermée Black-Scholes (cas européen) et simulation Monte Carlo. Je me suis principalement concentré sur la brique Monte Carlo: amélioration de la précision numérique, gestion de gros volumes de trajectoires dans un temps limité et fiabilisation des calculs (payoffs, bornes, intervalles de confiance).
Ce que ce projet démontre
Capacité à implémenter des pricers quantitatifs en C++ avec une architecture orientée objets, et à optimiser une simulation Monte Carlo pour améliorer à la fois robustesse et performance.

Mon rôle
Projet de groupe. Ma contribution principale: développement et amélioration du pricer Monte Carlo (génération de trajectoires, stabilité numérique, intervalle de confiance 95 %, gestion d’un grand nombre de paths dans un temps imparti), ainsi que l’intégration du générateur aléatoire Mersenne Twister.
Contexte
Le projet s’inscrit dans un cadre de finance de marché orienté pricing d’options. Le travail d’équipe portait sur la construction d’une base commune (options + pricers), puis sur l’approfondissement de modules spécifiques.
Objectif
Comparer plusieurs méthodes de valorisation dans un même codebase, valider leur cohérence sur des cas standards et disposer d’une implémentation Monte Carlo utilisable avec un grand nombre de simulations.
Deep dive
Le projet assemble trois approches de pricing (CRR, Black-Scholes, Monte Carlo) dans une architecture C++ orientée objets. Ma partie principale concerne le moteur Monte Carlo et sa robustesse sous charge.
Captures

Aperçu de la logique Monte Carlo utilisée pour estimer des prix d’options.
Architecture
Classe abstraite `Option` et spécialisations pour options européennes, américaines et asiatiques, avec logique de payoff polymorphe.
Pricers séparés par méthode (`CRRPricer`, `BlackScholesPricer`, `BlackScholesMCPricer`) pour isoler clairement les hypothèses de valorisation.
Générateur `MT` basé sur Mersenne Twister en singleton, utilisé comme source unifiée pour les tirages uniformes et normaux.
Exécutable principal pour comparer les résultats des pricers selon des paramètres communs (spot, strike, volatilité, maturité, taux).
Pipeline
Choix techniques
Le moteur Monte Carlo réutilise des buffers de trajectoires afin de limiter les allocations répétées et tenir un grand nombre de simulations.
Ajout de garde-fous sur les valeurs non finies/négatives et sur la variance pour éviter des sorties instables lors des fortes charges de calcul.
Le pricer ne se limite pas à un prix point-estimé: il retourne aussi une borne statistique pour juger la précision de la simulation.
Le découpage CRR / BS / MC facilite la comparaison des approches et permet d’améliorer chaque moteur indépendamment.
Fiabilité
Limites
Évolutions
Difficultés rencontrées
Concevoir une architecture option/pricer réutilisable pour des payoffs différents (vanille, digitale, asiatique, américaine).
Faire tourner un volume élevé de simulations Monte Carlo tout en gardant un code lisible et une latence raisonnable.
Limiter les dérives numériques (valeurs non finies, variances négatives dues aux arrondis, cas limites sur les intervalles de confiance).
Conserver une cohérence métier entre les différentes méthodes de pricing (CRR, Black-Scholes, Monte Carlo).
Résultats et apprentissages
Mise en place d’un framework C++ de pricing couvrant options européennes, américaines et asiatiques.
Implémentation d’un pricer Monte Carlo avec accumulation statistique (moyenne, variance) et intervalle de confiance à 95 %.
Améliorations ciblées de performance Monte Carlo (réutilisation de structures en mémoire, génération de nombreuses trajectoires dans un temps contraint).
Intégration d’un singleton Mersenne Twister pour standardiser la génération aléatoire dans le projet.
Autres projets

Finance personnelle · Python · PyQt6
Application desktop PyQt6 + SQLite pour centraliser des comptes multi-actifs, reconstruire l’historique hebdomadaire et analyser la performance d’un portefeuille.
Voir ce projet
Finance quantitative · Analyse · Python
Environnement Python pour backtester des stratégies, comparer des métriques risque/rendement et analyser un portefeuille.
Voir ce projetÉchanger
Si ce projet vous intéresse, je peux revenir plus précisément sur le besoin initial, la structure des données, les hypothèses, les difficultés rencontrées et les limites de l'analyse.