Daily model calibration with AAD
The morning calibration from three hours to 25 minutes
Reported by the client · Stochastic local volatility · about 300 underlyings · 3 h to 25 min · risk through the calibration · equity derivatives desk, tier-one bank
How adjoint gradients with XAD took a tier-one bank's morning stochastic local volatility calibration across about 300 underlyings from three hours to 25 minutes, with risk through the calibration.
An equity derivatives desk at a tier-one bank recalibrates its stochastic local volatility models every morning, across about 300 underlyings. The optimiser needed the gradient of the fit with respect to every model parameter at each step, and by bumping, one full repricing per parameter, the calibration took three hours. Risk to the quoted volatilities was worse: each bumped quote meant another calibration.
Xcelerit built AAD into the desk's calibration library with XAD. The gradients now come from one adjoint pass per step, validated against bumping, and the implicit function theorem carries sensitivities through the calibration, so vega to each quote needs no recalibration. The morning calibration takes 25 minutes instead of three hours, on the same servers. The desk runs the library under an XAD Commercial subscription.
- Challenge
- Morning SLV calibration across about 300 underlyings; three hours with bumped gradients
- What we did
- AAD enablement: XAD in the desk's calibration library, with risk through the calibration
- How it was checked
- Same calibration, servers and convergence tolerance, bumped against adjoint gradients
Client-reported outcome. Exact figures are in the case study PDF, on request.
More on AAD and XAD
- VideoAAD in three short videos: theory, tools, large librariesThree short videos on algorithmic differentiation: the theory and a manual implementation, how automatic tools work, and how to bring AAD into a large quant library.
- Case studyFrom AAD training to AAD in productionHow a bank's quant team went from the AAD course to its first XAD pricer checked against bumping within six weeks, and into production about four months later, after validation.
Related
- XADXAD, the AAD library for C++ and PythonAutomatic differentiation for pricing and risk code, open source or by subscription.
- TrainingAAD trainingThe AAD course for quant teams, with a workshop on your own code.
- ExplainerWhat is AAD (adjoint algorithmic differentiation)?The idea in plain words, with a worked example.