Applying a Local Volatility Surface in Monte Carlo and Finite Differences
Summary
The document asks how to use a local volatility function after estimating it from observed option prices. It presents the Dupire-style expression relating local volatility to derivatives of call prices with respect to maturity and strike. The proposed workflow first estimates this function across a grid of strikes and maturities, using finite differences on market prices, then inserts the resulting state- and time-dependent volatility into a pricing model.
For Monte Carlo, the question proposes simulating the underlying with local volatility evaluated at each time and simulated price. For a finite-difference method, it proposes using the corresponding local volatility at each time and price grid point. These are framed as candidate steps rather than a validated answer: the document includes no reply, numerical experiment, or discussion of calibration quality. It also acknowledges that practical pricing requires more sophistication than the basic approximations described. In particular, the exposition does not explain surface interpolation, numerical stability, boundary treatment, or how drift and measure choices affect implementation.
Key ideas
- The local volatility formula derives a state- and time-dependent volatility from maturity and strike derivatives of call prices.
- The proposed workflow estimates local volatility over a strike and maturity grid using finite differences.
- Monte Carlo simulation can evaluate local volatility at each simulated price and time step.
- Finite-difference pricing can use local volatility at each point in the time-price grid.
- The question does not establish implementation details such as interpolation, numerical stability, or boundary handling.
Tags
Full text
# How do I proceed with pricing after calculating local vol volatilities?
# How do I proceed with pricing after calculating local vol volatilities?
What are the next steps for pricing under the local volatility formula? It feels like I'm missing the trick (as I only see the numerical methods used to obtain prices after calculating local vol).
I.e. I understand the derivation of the local volatility formula below but not the application:
$$ \sigma_{local}(T,K)=\sqrt{2\frac{\frac{\partial C}{\partial T}+rK\frac{\partial C}{\partial K}}{K^2\frac{\partial^2C}{\partial K^2}}}$$
As I understand the following are the (basic) pricing steps:
- obtain the $ \sigma_{local}(T,K) $ function for all values of $S$ and $T$ (with adequate granularity) using the finite difference approximations based on observed option prices. When pricing by:
- Monte Carlo use equation $dS_t=\mu(t)S_tdt+\sigma_{local}(t,S_t)S_tdW_t$ with appropriate value of $\sigma_{local}(t,S_t)$ for steps at different times $t$ and prices $S$ instead of flat $\sigma$ like in BS
- FDM use $\sigma_{local}(t,S_t)$ for gridpoints at different times $t$ and prices $S$ instead of flat $\sigma$ (e.g. in the explicit scheme like here: https://www.quantstart.com/articles/C-Explicit-Euler-Finite-Difference-Method-for-Black-Scholes)
Are these steps correct (subject to adding more sophistication to each of these approximations)?Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.