GBM with local volatility
From ThetaWiki
[edit] Overview
Local volatility models were designed to explain the "smile" and "skew" exhibited in the implied volatility of options of identical assets. The basic idea is that volatility, instead of being having constant variance, should be determistic function of time and asset price with geometric Brownian motion statistics. Hence, in a local volatility framework, the risk neutral asset price movement is governed by
- dSt = r(t)dt + σLoc(St,t)dW
where r(t) is the expected instantaneous stock price return, σLoc(S,t) the local volatility function anddW is a Brownian motion process. The key continuous-time equations used in the local volatility model were developed by Bruno Dupire in 1994. The Dupire equation states that
where C is the price of call option for maturity T and strike K, and r is the risk-free rate. In this manner, a local volatility surface can be obtained from an array of call prices for different maturities and strike prices. This local volatility can then be used in a Monte-Carlo pricer or PDE solver to price exotic options.
[edit] Implementation
Obtaining local volatility using the Dupire equation is problematic. With a limited amount of call price data for specific maturities and strikes available, numerical differentiation may yield high error and unusable (complex) values for local volatility. Call prices may also be noisy for deep-out or deep-in the money options.
As a result, the local volatility calculation implemented in Theta Suite follows the following rules:
1. Calculate the implied volatility from the option prices.
2. Interpolate the implied volatility on a grid using radial (multi-quadratic) basis functions.
3. Smooth the implied volatility using smoothed cubic splines. The smoothing parameter is increased until there is no arbitrage in the implied volatility surface.
4. Use the Dupire equation in the implied volatility form to get the local volatility.
5. Calculate the option prices using PDEs and compare with market data.
