Add Andreasen-Huge local volatility calibration
Motivation
Local volatility calibration is a planned part of the project roadmap after volatility surface construction.
An earlier exploratory Andreasen-Huge implementation was attempted previously and is visible in the commit history. That implementation should be treated as experimental, not as the final design.
A revised methodology is currently being developed as part of a working paper. The new implementation should follow that updated methodology rather than simply restoring the previous attempt.
Goal
Add an Andreasen-Huge local volatility calibration module that calibrates a local variance representation to vanilla option market data across strikes and maturities.
The implementation should support irregular volatility surface inputs, where each maturity may have its own strike or moneyness grid.
Initial scope
- Define the core data structures needed for local volatility calibration.
- Build the calibration flow maturity-by-maturity.
- Convert market implied volatilities to option prices where needed.
- Use B-spline interpolation to represent or smooth local variance across the spatial grid.
- Calibrate positive local variance values.
- Add basic diagnostics for calibration error and repricing quality.
- Add small synthetic tests and one regression fixture.
B-spline interpolation
The local variance curve for each maturity bucket may be represented using B-spline basis functions.
This should allow:
- smooth local variance interpolation across log-moneyness
- positive local variance parametrisation
- compact control-point representation
- future extension to regularisation or smoothing penalties
The exact parametrisation should follow the working-paper methodology as it stabilizes.
Out of scope for now
- Full production-grade smoothing.
- Full static-arbitrage repair.
- Stochastic-local volatility calibration.
- Large-scale performance optimization.
- Full documentation of the working-paper methodology before it stabilizes.
Acceptance criteria
- Add an Andreasen-Huge calibration module.
- Support the new irregular volatility surface representation.
- Include B-spline-based local variance interpolation.
- Calibrate a small synthetic surface successfully.
- Add unit and regression tests for the initial implementation.
- Document current assumptions and limitations.
Add Andreasen-Huge local volatility calibration
Motivation
Local volatility calibration is a planned part of the project roadmap after volatility surface construction.
An earlier exploratory Andreasen-Huge implementation was attempted previously and is visible in the commit history. That implementation should be treated as experimental, not as the final design.
A revised methodology is currently being developed as part of a working paper. The new implementation should follow that updated methodology rather than simply restoring the previous attempt.
Goal
Add an Andreasen-Huge local volatility calibration module that calibrates a local variance representation to vanilla option market data across strikes and maturities.
The implementation should support irregular volatility surface inputs, where each maturity may have its own strike or moneyness grid.
Initial scope
B-spline interpolation
The local variance curve for each maturity bucket may be represented using B-spline basis functions.
This should allow:
The exact parametrisation should follow the working-paper methodology as it stabilizes.
Out of scope for now
Acceptance criteria