7

I have also currently started to learn about the subject. This is some of the material I have encountered: Many people recommend the book "The Volatility Surface: A Practitioner's Guide" by Jim Gatheral. It is a standard reference in the area (even though I personally found it a bit confusing and a bit unclear at some parts). The author also have ...


6

Stochastic-Local Vol (SLV) is an attempt to mix the strengths and weaknesses of both Stochastic Vol and Local Vol models. Below, I'll quickly summarise each model and their strengths and weaknesses, and then discuss how SLV tries to improve things. Although there are many stochastic vol models, I limit the discussion here to the Heston model to keep things ...


6

We can demonstrate this via a pricing experiment using QuantLib-Python. I've defined several utility functions in the code block at the bottom of the answer that you will need to replicate the work. First, let's create a Heston process, and calibrate a local vol model to match it. Up to numerical issues, these should both price vanillas the same. v0, kappa, ...


4

In the end I found that fitting a SABR smile to each tenor (borrowing a result from this answer) was sufficient to build a local vol surface that was smooth and well-behaved enough to build a variance surface worked nicely. I also fitted a Heston model to it, and the two surfaces do look fairly similar. Here is the final code and the fits generated (the long ...


3

In an incomplete market, vanilla options are independent assets like stocks or bonds. So the best way of thinking about how they are priced is the same way equilibrium prices in those markets occur: If too many people try to buy an option at a given strike then they push the price of those options up and we see that as the implied volatility increasing. The ...


3

I tried something along these lines in Quantlib python a few weeks ago. Slightly more simple compared to your approach I think: start with a standard delta quote convention for FX vols (10D puts, 25D puts,ATM,25D call, 10D call) calculate the moneyness of the options to obtain the strike set (this will be a large strike set since each option maturity will ...


3

You can convert the implied volatility to local volatility using this formula: $\sigma^2 \left(T,y\right)=\frac{\frac{\partial w}{\partial T}}{1 -\frac{ y}{w} \frac{\partial w}{\partial y}+\frac{1}{2}\frac{\partial^2 w}{\partial y^2}+\frac{1}{4}\left(\frac{ y^2}{w^2}-\frac{1}{w}-\frac{1}{4}\right)\left( \frac{\partial w}{\partial y}\right)^2}$ Where y is ...


2

For the first question, you can just plug in t for T and S for K: $\sigma^2 \left(t, S \right)=\left. \sigma^2 \left(T,K\right) \right|_{T=t,K=S}$ For the Monte Carlo part, the barrier would apply to the history of the stock price over some window (which could be from today to the option maturity, but other variations are possible) instead of just the ...


2

Ok, I did some investigations, asked around and got some answers to most of my questions. Since it might be of general interest for other people I present my findings here. How to transfer market data (option prices) from the real world to the simplified zero rate economy (used in the article by J. Andreasen, B. Huge) back and forth. We have an underlying ...


2

The forward skew of a model is easy to see by pricing floating strike forward starting options in said model. If you do that to local vol, calibrated to a realistic volatility surface (where the near maturity vols and skews are higher than the far maturity vols and skews) you will see that the forward skew decays to zero.


2

Use the risk free rate for pricing You use the risk free rate (using the risk neutral measure $\mathbb{Q}$) so that you can use the formula $$ V(t) = \underbrace{\exp(-r(T-t))}_{\text{because we used $\mathbb{Q}$}} \mathbb{E}^{\mathbb{Q}}(P(S_T)), $$ where because we used $\mathbb{Q}$ we were able to discount the expectation after doing all the MC ...


1

Your equation holds if you replace $\sigma$ with $\text{var}$. But if you use it as such, even in the BS case ($\sigma(S,t) = \sigma$) then you have a problem, because you are manipulating a lognormal volatility and the (weighted) sum of lognormals is not lognormal. Now nothing prevents you from simulating the future price processes of assets $a$ and $b$ ...


1

Yes, a stochastic volatility SDE can be coupled with any underlying SDE (GBM, diffusion, mean reverting, LMM, etc.). Once stochastic volatility is present, the model earns the right to be labeled 'SV model'. In its name, one may want to specify the names of both SDE's, like in the SABR LMM example found here, or just call it LMM with SV extension. Similarly, ...


1

The bug I had in my PDE solver was that for approximating the option value at time $t$ in the backwards algorithm, I was sampling the local volatility for the time to expiry $t$ instead of $T-t$.


1

In general "parametric" models make a strong assumption (dynamics equation, like Garch, parametric Dupire local vol) about underlying process. Coefficients (parameters) of these equations usually need to be estimated (calibrated). In "non-parametric" models there's usually less assumptions , and they are estimated directly from data. They do have ...


1

"match the prices of vanilla options" It means you need to reprice all vanillas with your LV model using monte carlo sims. If all prices are exactly equal to the market prices, your LV model is well calibrated I think there is a typo in your formula, it should be $$S_{t+1}=S_t\ exp((r-\frac{\sigma(S_t,t)^2}{2})dt+\sigma(S_t,t)\sqrt{dt}N(0,1))$$ &...


1

when testing that an implementation of a model is correct, you essentially do the same things each time. Check that you reprice your calibration instruments to an acceptable degree of accuracy. If there is(are) an additional effect(s) you have in your model that you are aiming to replicate, check that(those) also. In the case of your quesiton, and local ...


1

A few thoughts on the steps please: 1):You would normally calibrate Dupire based on current option prices; so you won't calculate implied volatility from historical prices of the underlying (assuming this is meant), but the current option prices. The prices are usually quoted in terms of implied volatilities, so in most cases you wont need to calculate the ...


1

One issue I see: $$2\cdot0.01+0.01\cdot11\cdot0.15 = 0.0365$$ must be replaced by $$2\cdot \left(0.01+0.01\cdot11\cdot0.15\right) = 0.053$$ Edit: (Detailing my comments a bit) Dupire's equation, as you wrote it, is correct (assumes dividends are null): $$ \frac{\partial C}{\partial T} = \frac{1}{2}\sigma^2 K^2\frac{\partial^2 C}{\partial K^2} -r K \frac{\...


1

The local volatility graph tomorrow doesn't change, unless the implied volatility surface tomorrow is not the same as today. LV takes the implied vol surf today as input, and outputs a instantaneous volatility function of spot and time, which can price vanilla options today exactly the same as the market prices. In local volatility world, you assume the ...


Only top voted, non community-wiki answers of a minimum length are eligible