- chocolatemoney
**Posts:**322**Joined:**

Hi,I have implemented ADE schemes for the SABR model.I am now in the process of testing the implementation.? Which choice of parameters would you suggest? In which parameter range should I cherry pick my test cases? This question is of particular concern if Hagan's closed-form expression is chosen as benchmark? Robustness: the idea would be to perturbate the parameters. How big should be perturbations be? How far should I be able to stretch the parameter value before calling the ADE implementation robust?? Should the robustness test involve beta and T? They are not [necessary] the result of a numerical calibration procedure (T is known from the product specs)The difficulty of this exercise is, in my view, that I am not testing the ADE schemes for a particular product (having an informed guess of the behavior of the calibration procedure) but, instead, testing the schemes ?in general?.A suggestion for a real life example would also be appreciated.Many thanks!

Here's some cases that will likely break your code: (nu = vol-of-vol)1. beta = -10, other parms O(1), S = 100, 10, 1, 0.12. nu = 0; other parms arbitrary3. nu T >> 1, other parms arbitrary4. |rho| = 1 - epsTo save yourself grief, be sure to input the initial volatility in the rescaled form sig0' = sig0 S0^(beta-1).So, when I say parms O(1), I mean sig0' = O(1).Another thing to test:5. Loss of martingality for beta = 1, rho > 0

Last edited by Alan on August 9th, 2012, 10:00 pm, edited 1 time in total.

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

Here is an article on SABR FX using ADI and Soviet Splitting. The notation looks kind of familiar. P. Hagan was the supervisor so the input should be pretty good.Notice that the author uses the Yanenko trick for mixed derivatives and the notation as in my FDM book. Many articles still wrestle with mixed derivatives by the grail of M-matrices but this seems to sufficient (but not necessary) for stability.I am preparing a kind of cookbook note... more to come. https://www.maths.ox.ac.uk/system/files ... 8.4.11.pdf CEV

Last edited by Cuchulainn on August 12th, 2012, 10:00 pm, edited 1 time in total.

http://www.datasimfinancial.com

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

- chocolatemoney
**Posts:**322**Joined:**

Thank you, Alan. Thank you, Daniel.I will run the test cases suggested.In general (without looking at a specific product), I think I could assume:1) How high could be the initial volatility for the products for which SABR is used? I think that quoted vol < 20% is a reasonable boundary for the FX and FI products where the SABR is used.2) nu (vol-vol): I think I could look at a calibration range between 0 and 100%. Could this range narrowed down?Thank you.

Even if your numbers are 'typical', it's a bad idea to think like that for general code.For one thing, in a calibration, an optimizer may test parameters 10x typical or much higher (or lower)Also, any popular model will be tried against equities (and SABR has), where vols, and vol-of-vols of 100-200% (and higher) are not uncommon: Current example: KCG.

Last edited by Alan on August 12th, 2012, 10:00 pm, edited 1 time in total.

- chocolatemoney
**Posts:**322**Joined:**

My goal is to check the performance of some ADE schemes for SABR.I think the performance check for the schemes should be carried on for "typical numbers" (what they are it is up for discussion)At the same time, I will try to stress test the code with pathological parameter values ...Thanks again for your inputs!

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

There are many choices and combinations to be made when employing the ADE method and these pertain to both the method itself and to the PDE that it approximates. Some scenarios that we discussed in this appendix are: S1: Employ domain truncation or domain transformation. S2: PDE in conservative of non-conservative form. S3: Simplify the PDE by transforming its coefficients. S4: Barakat-Clark, Larkin and Saul'yev methods for diffusion. S5: Towler-Yang, Roberts-Weiss and upwinding for the convection. S6: Constant versus non-constant meshes. S7: Yanenko strategy for mixed derivatives. S8: Use of extrapolation methods. S9: Exponential fitting for convection-dominated problems.Having chosen for a particular PDE and associated ADE variant, we can consider testing the following activities: A1: Large expiry time (similar to an elliptic problem). A2: Convection dominance. A3: Analogous, simpler cases. A4: Choice of boundary conditions. A5: Correlation values in the closed range [-1, 1].Having an exact solution is ideal but not always possible and in these cases we can run two (or more) variants of ADE in parallel and compare the output. This process can be automated, thus freeing up developer time.Some useful Boost:.Random: generate the input parameters(e.g. Uniform).ublas: useful (See my FD2 post error analysis). multiarray: store n-dim data for later 'SQL SELECT' stuff.

Last edited by Cuchulainn on August 12th, 2012, 10:00 pm, edited 1 time in total.

http://www.datasimfinancial.com

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

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

I agree, ADI / Splitting could be used as a benchmark/BASELINE for the results.Any ADIers/Splitters out there?

Last edited by Cuchulainn on August 12th, 2012, 10:00 pm, edited 1 time in total.

http://www.datasimfinancial.com

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

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

When testing ADE, you will probably need to compare it to a "reference" solution, e.g. Exact solutiions. Otherwise if no exact solution is known an option mighe be to let FTCS scheme run all weekend, store the values in a DB (file) and then run ADE. In this way you can create management reports and error reports.It is a typical management/decision support system and it concludes on the accuracy of ADE at all points in space and time. hth

Last edited by Cuchulainn on August 14th, 2012, 10:00 pm, edited 1 time in total.

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

- chocolatemoney
**Posts:**322**Joined:**

Thanks for the post.As mentioned previously, I have coded Hagan's closed form and Yanenko. They should work as a reasonable benchmark.Tonight, I will play with the far-end BC on vol to see which one improves the accuracy of ADE vs Hagan.

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

Ah, thanks.'Yanenko' means splitiing using BTCS (fully implicit in time) in each direction consequetively in x and y and using FTCS in V_xy?BTW here is some discussion on ADE for another ADE problem.

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

- chocolatemoney
**Posts:**322**Joined:**

Yes. Yanenko (1971) as on page 224 of your FDM book.Thanks.

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

QuoteOriginally posted by: chocolatemoneyYes. Yanenko (1971) as on page 224 of your FDM book.Thanks.All things being equal, this scheme will be theoretically first order in general, at some stage we can use Marchuk 1-2-2-1 that is 2nd order even for non-conmuting A1(t) and A2(t). Maybe for later.

Last edited by Cuchulainn on August 14th, 2012, 10:00 pm, edited 1 time in total.

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

- chocolatemoney
**Posts:**322**Joined:**

Marchuk 1-2-2-1 is the MacCormack Method?Page 25, eq 64 and 65 in http://www.mie.utoronto.ca/labs/MUSSL/cfd20.pdf ?Thanks.

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

QuoteOriginally posted by: chocolatemoneyMarchuk 1-2-2-1 is the MacCormack Method?Page 25, eq 64 and 65 in http://www.mie.utoronto.ca/labs/MUSSL/cfd20.pdf ?Thanks.No, Marchuk is a 2nd order 2-level splitting scheme n-1 to n to n +1 (see also (2.2) of http://www.inm.ras.ru/library/Zalesnyj/ ... 2011k3.pdf)u_t = L_1u + L_2u//n-1 to n-1/2u_t = L_1u//n-1/2 to nu_t = L_2u//n to n+1/2u_t = L_2u// n=1/2 to n+1u_t = L_1uHence 1-2-2-1 (refers to elliptic components). Has proven useful for a fixed income app with A.L.//////////////////MacC is a 1st order conditionally stable predictor corrector method, most for convection; we need diffusion as well. (see article Li and Jackson, sent).Predicror: FTBSCorrector: BTFSThen take the average.I have implemented in 1d using a corrected diffusion.

Last edited by Cuchulainn on August 16th, 2012, 10:00 pm, edited 1 time in total.

http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself

Jean Piaget

GZIP: On