Serving the Quantitative Finance Community

 
User avatar
OPTION88
Topic Author
Posts: 0
Joined: April 7th, 2008, 3:38 am

Is there any good way to calibration SVI or SABR models?

July 12th, 2010, 8:26 am

Hi bro,I have tried Levenberg-Marquardt algo to calibration these models.I want to find other numerical metods to fit the market data and let the squre-error of the fitting result less than LM algo result.
 
User avatar
Antonio
Posts: 8
Joined: June 30th, 2004, 3:13 pm
Location: Imperial College London
Contact:

Is there any good way to calibration SVI or SABR models?

July 12th, 2010, 1:13 pm

Hello,As far as I am concerned the best way to perform such a calibration is to ensure that you have good initial starting points.For instance, concerning SVI,(i) use the atm as well as the slopes of the wings to infer initial parameters given your observed smile(ii) then use these initial points to calibrate your data.You can do the same for SABR using the closed-form approximation.Axel Vogt had some very good and clear Maple sheets doing this for SVI, this should be helpful.Best,Jack
 
User avatar
FinancialAlex
Posts: 1
Joined: April 11th, 2005, 10:34 pm

Is there any good way to calibration SVI or SABR models?

July 13th, 2010, 3:17 am

Take a look at this oneArticle linkAlso, one other way is to use a hybrid optimizer:a) 10-20 iterations of a good global optimizer (such as Differential Evolution)b) then use that output as initial guess for good local optimizer (such as L-BFGS)
 
User avatar
OPTION88
Topic Author
Posts: 0
Joined: April 7th, 2008, 3:38 am

Is there any good way to calibration SVI or SABR models?

July 13th, 2010, 7:50 am

Thanks...Do you have reference for L-BFGS
 
User avatar
SeniorMember
Posts: 0
Joined: June 5th, 2009, 1:28 am

Is there any good way to calibration SVI or SABR models?

July 21st, 2010, 2:13 pm

Hi,Personally, I implemented SVI fitting with Matlab, using its fmincon function. It works real fine.First, create a function taking all the SVI parameters in (just 5 for a single smile, or 5N for a surface built on N distinct smiles) as well as the raw volatility points and outputting the mean-square error (or every other error stat you prefer). Then create a constraints function taking the parameters in and outputting a vector of all the inequalities you want to check. Basically, there's an "on smile" one involving 2-3 parameters and time to expiry and there's a "smiles against one another" one if, again, you're fitting many smiles. The later asks for the smiles, expressed in total variance, to be strictly increasing in their whole. In my case, I choose a specific collection of log-moneyness values (say -2 to 1 step 0.1 for example) and I add the spread between two consecutive smiles on each of these points to the inequalities vector.For the starting point, my solution is to use the parameters of the previous day's fitting. On the not too long run (few days), it settles pretty nicely. The first fit uses a generic parameters set. We have technicians here who look at the surfaces daily and can decide to re-run the fit by forcing the use of the generic set if there seems to be some "overfitting" ongoing. They can also delete outlying points and re-run the fit if they see wierd looking vol surfaces.I implemented SVI for the equities market, the FX markets and the interest rate swaptions volatilities with great results. For FX, you obviously have to translate the vol quotes from "by-delta" to "by-moneyness" and there are some other issues as well. For swaptions, the time-arbitrage constraint does not exists. There's another arbitrage condition though (let S(t1,t2) be a swaption with maturity at t1 on a swap running from t1 to t2, then you must have S(t1,t2)+S(t2,t3)>S(t1,t3) with t1<t2<t3) but it's real slow to check for it. I don't check for it. I fit each smile independently in that specific case.It's a model-independent approach in some ways because it simply uses a V-shaped curve that can be tweaked in every way a smile can look and it checks for simple arbitrage constraints. So one could expect the SVI method to work for a long time. The obvious downside, and the reason why it isn't useful for everybody, is that it doesn't infer any information on the underlying instrument process. In my case, I just want to price simple derivatives so that's fine.So that's pretty much it for my experience with SVI. Hope it helps.