Serving the Quantitative Finance Community

 
User avatar
Bon
Topic Author
Posts: 0
Joined: May 24th, 2006, 9:12 am

Local vol in finite difference

July 8th, 2009, 7:12 am

Hi guys,I wonder if there is any experience in troubles using finite difference (just implicit scheme) when local vol is used. I'm only solving for European style options using log(S) as underlying variable. When I passed in a flat surface, the price and every thing looks fine. But when I pass in a surface (implied vol surface, which gets transformed to local vol surface inside the model), the price / delta go berzerk! I've checked that the local vol transform looks fine, and there is no stability issue (only using implicit scheme). I reused the surface using simulation and the price is fine, suggesting that the local vol transform is okay. Have anyone encountered any special issues with finite difference with local volatilities?
 
User avatar
Cuchulainn
Posts: 22927
Joined: July 16th, 2004, 7:38 am

Local vol in finite difference

July 8th, 2009, 8:24 am

Quotethe price / delta go berzerk! Happens if you use the wrong method, for sure. In general, it's a pde feature.Could you tell?. which FDM are you using?. relative sizes of vol versus drift?. payoff functions. specials, profile of loc vol, min/maxetc.
Last edited by Cuchulainn on July 7th, 2009, 10:00 pm, edited 1 time in total.
 
User avatar
Bon
Topic Author
Posts: 0
Joined: May 24th, 2006, 9:12 am

Local vol in finite difference

July 9th, 2009, 2:46 am

. which FDM are you using? implicit scheme, using the Black-Scholes PDE with underlying variable = log(S). relative sizes of vol versus drift? implied vol goes from 50% to 85% across strikes, which makes local vol roughly 50% to 170%. Interest rate and cts div are zero, so drift of log(S) is -sigma^2/2. payoff functions call payoff. specials, profile of loc vol, min/max strike = 200%. Implied vol is "V" shaped, and so is local vol. min/max log(S) is 3 s.d., which covers stock price from roughly 10 to 500. The mesh has been moved so that a node lands on the strike. Making dt and dx smaller can only improve the price very slightly, and it doesn't look like it's converging to the true value.
 
User avatar
Cuchulainn
Posts: 22927
Joined: July 16th, 2004, 7:38 am

Local vol in finite difference

July 9th, 2009, 8:00 am

QuoteOriginally posted by: Bon. which FDM are you using? implicit scheme, using the Black-Scholes PDE with underlying variable = log(S). relative sizes of vol versus drift? implied vol goes from 50% to 85% across strikes, which makes local vol roughly 50% to 170%. Interest rate and cts div are zero, so drift of log(S) is -sigma^2/2. payoff functions call payoff. specials, profile of loc vol, min/max strike = 200%. Implied vol is "V" shaped, and so is local vol. min/max log(S) is 3 s.d., which covers stock price from roughly 10 to 500. The mesh has been moved so that a node lands on the strike. Making dt and dx smaller can only improve the price very slightly, and it doesn't look like it's converging to the true value.To answer to question indirectly for the moment is it so that the SDEdS = sigSdWgives BIG problems (NSIM = 10^15!!) for call options using Monte Carlo and FDM (see Wilmott thread). I reckon using the log transform - which I avoid - won't help much.So, I am kind of not surprised.Some remedies:1. Have you tried a put option (everything is bounded) and then use put-call if applicable2. Don't use Cank Nicolson, it's basically useless because it is not always wrong3. What kinds of boundary conditions do you use?4. Why log transform, why not stick to S? I see no advantage hereI use 1) exponential fitting 2) Richardson extrapolation of implicit Euler precisely because I wish to avoid the above problems. Is it possible to provide data sets? I could check it with my own schemes.Your PDE is just a diffusion equation. I am assuming your code is correct.HTH The mesh has been moved so that a node lands on the strikeThis is not necessary in general.
Last edited by Cuchulainn on July 8th, 2009, 10:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Posts: 22927
Joined: July 16th, 2004, 7:38 am

Local vol in finite difference

July 9th, 2009, 8:12 am

Here's the bespoke thread here This article might also be relevant as well. Nice diagrams here
Last edited by Cuchulainn on July 8th, 2009, 10:00 pm, edited 1 time in total.
 
User avatar
Bon
Topic Author
Posts: 0
Joined: May 24th, 2006, 9:12 am

Local vol in finite difference

July 14th, 2009, 12:41 am

Thanks!
 
User avatar
Cuchulainn
Posts: 22927
Joined: July 16th, 2004, 7:38 am

Local vol in finite difference

July 14th, 2009, 5:31 am

QuoteOriginally posted by: BonThanks!No prob, so it's working now?
 
User avatar
Bon
Topic Author
Posts: 0
Joined: May 24th, 2006, 9:12 am

Local vol in finite difference

July 28th, 2009, 9:11 am

Yes. It turns out that there's a bug in the boundary condition, and more importantly, my min/max nodes are not far apart enough when local vol on both ends are very high! (about 400% at 3sd from current spot)