Hi All,Just wondering if anybody has some experience with the calibration of Bloomberg's FX stoc local vol model? I got a really hard time to reproduce their stochastic parameter calibration results (max vol of vol and max correlation). Basically, what they are doing is to find a term structure of the maximum vol of vol and correlation such that the local volatility leverage surface is as flat as possible, i.e. to push the model to the limit of a "stochastic vol model".During my calibration, it seems that at the early maturities (e.g. 2W) the flatness of the leverage surface monotonically (almost) decreases with increasing correlation. In other words, the calibrated correlation is close to 1 at the short-end, which is unrealistic (Bloomberg got some correlation number around 10% ~ 40% depending on the currency pair). At later stage, my correlation numbers are also much higher than Bloomberg's.So does anybody successfully reproduce their results? Any hidden tricks behind?Thanks,

Last edited by kelang on March 5th, 2013, 11:00 pm, edited 1 time in total.

i think i know the reason, bloomberg's screen shows the final vol of vol and corr given under the mixing factor, not the max vol of vol, and corr. Close to their numbers.thank you all.QuoteOriginally posted by: kelangHi All,Just wondering if anybody has some experience with the calibration of Bloomberg's FX stoc local vol model? I got a really hard time to reproduce their stochastic parameter calibration results (max vol of vol and max correlation). Basically, what they are doing is to find a term structure of the maximum vol of vol and correlation such that the local volatility leverage surface is as flat as possible, i.e. to push the model to the limit of a "stochastic vol model".During my calibration, it seems that at the early maturities (e.g. 2W) the flatness of the leverage surface monotonically (almost) decreases with increasing correlation. In other words, the calibrated correlation is close to 1 at the short-end, which is unrealistic (Bloomberg got some correlation number around 10% ~ 40% depending on the currency pair). At later stage, my correlation numbers are also much higher than Bloomberg's.So does anybody successfully reproduce their results? Any hidden tricks behind?Thanks,

- woodsdevil
**Posts:**176**Joined:**

Do you know how they actually do the calibration of the term-structure max oV and correlation ? Brute force, or something more clever ?Thanks.

in a bootstrap fashion, for each maturity, search for the volVol and corr to minimize the roughness of the leverage surface using LM minimization methodQuoteOriginally posted by: woodsdevilDo you know how they actually do the calibration of the term-structure max oV and correlation ? Brute force, or something more clever ?Thanks.

- woodsdevil
**Posts:**176**Joined:**

I presume you need to calibrate the full local stoch vol model for each iteration though, which involves solving the forward 2D PDE for each iteration. So if you have say 4 iterations per maturity, and about 5 buckets (up to 2Y) then it means having to calibrate the model 25 times right ? Isn't it expensive to do ?Also is it stable ? I presume you need to do something w.r.t. the mean reversion speed as well (i.e. a constant mean reversion speed is probably not going to work...).

QuoteOriginally posted by: woodsdevilI presume you need to calibrate the full local stoch vol model for each iteration though, which involves solving the forward 2D PDE for each iteration. So if you have say 4 iterations per maturity, and about 5 buckets (up to 2Y) then it means having to calibrate the model 25 times right ? Isn't it expensive to do ?Also is it stable ? I presume you need to do something w.r.t. the mean reversion speed as well (i.e. a constant mean reversion speed is probably not going to work...).the speed is tolerable so far. One single iteration of 2D pde (spot to 5Y) takes about 1 second. The calibration of stoc parameters (max vol of vol, max corr) takes about half minute, but the good thing is we do not have to calibrate this part quite often during the day. Let us say we have stoc parameters plus mixing factors, the pricing exercise takes a few seconds (1 second for local vol, 1 second for stoc local vol leverage surface, plus 1-3 second for pricing depending on the product).Plus, we can do multi-threading as well when solving 2D pde which saves a bit time (I didn't manage to save half time for 2 cores, but still faster than 1 core).

- Cuchulainn
**Posts:**63371**Joined:****Location:**Amsterdam-
**Contact:**

QuotePlus, we can do multi-threading as well when solving 2D pde which saves a bit time (I didn't manage to save half time for 2 cores, but still faster than 1 core). What speedup do you expect? A single 2D PDE/FDM is hard to parallelise I have found. Lots of cache hits. And 2d problems are too small.

Last edited by Cuchulainn on March 11th, 2013, 11:00 pm, edited 1 time in total.

My C++ Boost code gives

262537412640768743.999999999999250072597198185688879353856337336990862707537410378210647910118607313

http://www.datasimfinancial.com

http://www.datasim.nl

262537412640768743.999999999999250072597198185688879353856337336990862707537410378210647910118607313

http://www.datasimfinancial.com

http://www.datasim.nl

QuoteOriginally posted by: CuchulainnQuotePlus, we can do multi-threading as well when solving 2D pde which saves a bit time (I didn't manage to save half time for 2 cores, but still faster than 1 core). What speedup do you expect? A single 2D PDE/FDM is hard to parallelise I have found. Lots of cache hits. And 2d problems are too small.yes, you are right, i only save 10%~20% time (at most). I was a bit in a rush to code, so I thought maybe it is my problem not saving more time.

- Cuchulainn
**Posts:**63371**Joined:****Location:**Amsterdam-
**Contact:**

This might be useful; The Wilmott July 2011 article by Pealat and Duffy to calibrate 1d pde by ADE, it was 40% faster than the fastest CN scheme. All sequential code.

Last edited by Cuchulainn on March 11th, 2013, 11:00 pm, edited 1 time in total.

My C++ Boost code gives

262537412640768743.999999999999250072597198185688879353856337336990862707537410378210647910118607313

http://www.datasimfinancial.com

http://www.datasim.nl

262537412640768743.999999999999250072597198185688879353856337336990862707537410378210647910118607313

http://www.datasimfinancial.com

http://www.datasim.nl

- woodsdevil
**Posts:**176**Joined:**

I wouldn't imagine you can do much parallelisation with 2D PDEs. Interesting point about ADE actually though.Interesting to see that despite this you can get a full global calibration working in about 30s.But to be sure from my own experience, I think you also need to do something to the mean reversion speed of the OU process driving the stoch vol process, else it's pretty unstable to calibrate.Do you address this at all, or do you actually manage to calibrate with a constant mean reversion speed.For clarity, I'm referring to the usual exp(OU) process i.e.:dS/S = (r_d-r_f).dt + exp(alpha).sig(t,S).dWdalpha = -beta.alpha.dt + vov.dWand beta is the mrs I'm referring to.

- Cuchulainn
**Posts:**63371**Joined:****Location:**Amsterdam-
**Contact:**

QuoteBut to be sure from my own experience, I think you also need to do something to the mean reversion speed of the OU process driving the stoch vol process, else it's pretty unstable to calibrate.What's the issue? Is it the model data or numerics? AOS schemes (like ADE) can be parallelised (e.g. OMP parallel sections) but it seems in general that too many cache issues destroy any hope of a speedup. MOS schemes (e.g. ADI) are by definition sequential so a lot of effort might help, but I don't see how.

Last edited by Cuchulainn on March 16th, 2013, 11:00 pm, edited 1 time in total.

My C++ Boost code gives

262537412640768743.999999999999250072597198185688879353856337336990862707537410378210647910118607313

http://www.datasimfinancial.com

http://www.datasim.nl

262537412640768743.999999999999250072597198185688879353856337336990862707537410378210647910118607313

http://www.datasimfinancial.com

http://www.datasim.nl

- woodsdevil
**Posts:**176**Joined:**

I suspect the problem is to with calibration, i.e. constant mrs is not consistent with a steep SABR vol-of-vol for instance... But I wonder if this is a problem others have enountered ?As for the brute-force approach described by kelang, is it what Bloomerg actually does ? Also, I suppose that in intra-day, not only you want to caqlibrate it a few times only, but you also want to compute "parameters risks" i.e. dvov/dstrangle, drho/driskreversal, etc... to make sure that your intra-day skew vega takes into account as well (otherwise your vega would be missing these, which could have a significant effect) .So instead of a one 30s calculation, it means probably up to 5 points x 10 buckets = 50 calculations (for all bucketed risks), which would take 25mns to run (sequentially). So besides parallelisation inside the calibration, I suppose you'd want to parallelise the corresponding bucketed risks' calibrations as well. All do-able of course, but seems a bit over-engineered. I wonder: is there some approximations that could be done basd on SABR for instance or what not to get to a very similar result, but without having to calibrate the mixed local stoch vol multiple times ?

- Cuchulainn
**Posts:**63371**Joined:****Location:**Amsterdam-
**Contact:**

There was some work on ADE and SABR here but I don't know what the latest developments are.

262537412640768743.999999999999250072597198185688879353856337336990862707537410378210647910118607313

http://www.datasimfinancial.com

http://www.datasim.nl

Sorry to bump this up, but anyone could kindly help me to find the paper mentioned in this thread? i.e., "stochastic local volatility" by Bloomberg, Tataru & Fisher?I am unlucky to find it through any search. Thank you for any hints!

- cosmologist
**Posts:**640**Joined:**

The bigger question is "How to send the paper to you?". This puzzle needs a model to be solved, it seems. By the way, attaching the paper here will not be a good idea or is it ok? Not sure let me know.

GZIP: On