Advanced C# pricing engine for multi-asset derivative products
Master 2 Financial Engineering - Université Paris-Dauphine PSL
Rémi Schmitt & Théo Verdelhan - January 2026
Professional-grade basket option pricer implementing both analytical approximations and Monte Carlo simulation with real market data integration (ECB €STR rates, Bloomberg volatility surfaces).
C# / .NET 9.0 | Quantitative Finance | Numerical Methods | Object-Oriented Design
✓ Moment Matching Pricer - Fast analytical approximation (Brigo et al. method)
✓ Monte Carlo Engine - Reference pricing with 98.6% variance reduction via control variates
✓ Dual Framework - H1 (constant parameters) and H2 (term structure modeling)
✓ Real Market Data - ECB €STR rates and Bloomberg OVDV volatility surfaces
✓ Production-Ready - 15 automated tests validating mathematical and economic properties
| Method | Speed | Accuracy |
|---|---|---|
| Moment Matching | < 1ms | Excellent for standard cases |
| Monte Carlo (1M sims) | ~500ms | Reference-grade with variance reduction |
Clean object-oriented design following quantitative finance best practices:
BasketOptionPricer/
├── Models/ Stock, Basket, BasketOption, Term structures
├── Pricers/ MomentMatching (H1/H2), MonteCarlo
├── Utils/ Mathematical functions (Normal CDF, Black-Scholes)
├── Data/ Market data loaders (CSV parsing)
└── Tests/ Unit tests (7) + Functional tests (8)
H1 Framework - Black-Scholes with constant parameters:
- Geometric Brownian motion:
dSᵢ = (r-qᵢ)Sᵢdt + σᵢSᵢdWᵢ - Analytical moment matching for fast pricing
- Full correlation matrix support
H2 Framework - Deterministic term structures:
- Time-varying rates:
r(t)and volatilities:σᵢ(t) - Numerical integration via trapezoidal rule
- Linear interpolation between term points
Monte Carlo Engine:
- Cholesky decomposition for correlated paths
- Log-Euler discretization scheme (252+ steps/year)
- Control variate variance reduction (geometric mean basket)
- Cholesky Decomposition - O(n³) correlation matrix factorization
- Trapezoidal Integration - Numerical term structure integration
- Normal CDF - Abramowitz & Stegun approximation (|error| < 1.5×10⁻⁷)
- Moment Matching - Lognormal basket approximation calibrated to first two moments
H1 Pricing Example (3-asset basket, 1Y maturity, €STR 1.933%):
- Call option (K=107.10€): 4.89€
- Put option (K=96.90€): 3.75€
H2→H1 Convergence: Perfect match (0.0000% error) when term structures are flat
Monte Carlo Variance Reduction:
Standard MC: SE = 0.0568
With Control Var: SE = 0.0066 → 98.6% variance reduction
Unit Tests (7):
- Mathematical functions (Normal CDF, Black-Scholes)
- Object construction and validation
- Strike monotonicity and boundary conditions
Functional Tests (8):
- Multi-asset basket configurations
- Framework convergence validation
- Correlation sensitivity analysis
- Put-call relationship consistency
All tests include tolerance checks and economic property validation.
dotnet build -c Release
dotnet run -c ReleaseUser-friendly menu system for:
- Auto Demo - Pre-configured H1/H2 comparison scenarios
- Interactive Mode - Custom basket configuration wizard
- Test Suite - Automated validation (unit + functional)
- Bloomberg Data - Volatility surface analysis
🎯 Configure basket (2-10 assets)
💰 Input market parameters (rates, correlations, volatilities)
📋 Define option (Call/Put, Strike, Maturity)
⚡ Price with Moment Matching or Monte Carlo
📊 Get results with confidence intervals
Risk-Free Rate: €STR (Euro Short-Term Rate) from ECB
- Real historical data: Oct 2019 - Jan 2026
- Current rate: 1.933% (Jan 23, 2026)
Volatility Surfaces: Bloomberg OVDV for Euro Stoxx 50
- Multiple maturities and moneyness points
- Linear interpolation for continuous surface
Programming: C# 9.0, .NET SDK, OOP design patterns, LINQ
Finance: Derivative pricing, Black-Scholes model, Monte Carlo methods, variance reduction techniques, term structure modeling
Mathematics: Stochastic calculus, numerical integration, matrix decomposition, statistical estimation
Software Engineering: Unit testing, functional testing, input validation, error handling, clean code architecture
Data: CSV parsing, real market data integration (ECB, Bloomberg)
Academic: Brigo et al. (2004) - Moment matching for basket options | Glasserman (2003) - Monte Carlo methods in finance
Data Sources: European Central Bank (€STR rates) | Bloomberg Terminal (OVDV surfaces)
# Build optimized version
dotnet build -c Release
# Run application
dotnet run -c Release
# Test suite
dotnet run → Option 3 (Unit) / Option 4 (Functional)Project Structure: 1000+ lines of C# across Models, Pricers, Utils, Tests
Test Coverage: 15 automated tests (100% pass rate)
Performance: Release mode 2-3× faster than Debug
M2 Quantitative Finance Project - Université Paris-Dauphine PSL
Full technical documentation available in ReproductionParameters.md