Serving the Quantitative Finance Community

 
User avatar
Church
Topic Author
Posts: 0
Joined: September 4th, 2007, 10:27 am

Smile extrapolation - Benaim et al

September 14th, 2013, 8:57 am

Hello,In the article "An arbitrage-free method for smile extrapolation" of Benaim, Dodgson and Kainth an approach is given for smile extrapolation.But not a lot of detail is given, for example the formulae to calculate a, b and c and for the partial derivatives of the swaption prices.Does anyone have some reference where these formulae are given?Thanks
 
User avatar
pcaspers
Posts: 30
Joined: June 6th, 2005, 9:49 am
Location: Germany

Smile extrapolation - Benaim et al

September 15th, 2013, 6:30 pm

yes ( ... yet it is rather straightforward I think - what is your particular question about this ? )
 
User avatar
Church
Topic Author
Posts: 0
Joined: September 4th, 2007, 10:27 am

Smile extrapolation - Benaim et al

September 15th, 2013, 6:35 pm

Just to be sure that I'm doing the right thing...
 
User avatar
pcaspers
Posts: 30
Joined: June 6th, 2005, 9:49 am
Location: Germany

Smile extrapolation - Benaim et al

September 16th, 2013, 9:59 am

sure, here are formulas I implemented once. Do they make sense from your point of view ? I do not really use them any more, so there might be bugs...LEFT WING leftCutoff_ = moneynessGrid1[leftIndex] * f_; Real left1d = source->digitalOptionPrice(leftCutoff_,Option::Put); Real left2d = source->density(leftCutoff_,Option::Put); Real p0 = source->optionPrice(leftCutoff_,Option::Put); Real l1 = left1d / p0; Real l2 = - left1d / (p0*p0) * left1d + 1.0 / p0 * left2d; // compute paramters for price extrapolation at left bound lc_=0.5*(l2+mu_/(leftCutoff_*leftCutoff_)); lb_=l1-mu_/leftCutoff_-2.0*lc_*leftCutoff_; la_=log(p0)-mu_*log(leftCutoff_)-lb_*leftCutoff_-lc_*leftCutoff_*leftCutoff_;RIGHT WING rightCutoff_ = moneynessGrid1[rightIndex] * f_; Real right1d_ = -source->digitalOptionPrice(rightCutoff_); Real right2d_ = source->density(rightCutoff_); Real p1 = source->optionPrice(rightCutoff_); Real r1 = right1d_ / p1; Real r2 = - right1d_ / (p1*p1) * right1d_ + 1.0 / p1 * right2d_; // compute parameters for price extrapolation at right bound rc_=r1*rightCutoff_*rightCutoff_*rightCutoff_+0.5*rightCutoff_*rightCutoff_*(rightCutoff_*rightCutoff_*r2+nu_); rb_=-rightCutoff_*rightCutoff_*r1-nu_*rightCutoff_-2.0*rc_/rightCutoff_; ra_=log(p1)+nu_*log(rightCutoff_)-rb_/rightCutoff_-rc_/(rightCutoff_*rightCutoff_);PUT EXTRAPOLATIONdiscount * ( pow(strike,mu_)*exp(la_+lb_*strike+lc_*strike*strike)CALL EXTRAPOLATIONdiscount * ( pow(strike,-nu_)*exp(ra_+rb_/strike+rc_/(strike*strike))
Last edited by pcaspers on September 15th, 2013, 10:00 pm, edited 1 time in total.
 
User avatar
Church
Topic Author
Posts: 0
Joined: September 4th, 2007, 10:27 am

Smile extrapolation - Benaim et al

September 17th, 2013, 9:26 am

Thanks. Yes, it seems to make sense.But can you give some more information about the derivation of r1 en r2?I just found a short paper that seems to do something else:http://developers.opengamma.com/quantit ... nGamma.pdf
 
User avatar
pcaspers
Posts: 30
Joined: June 6th, 2005, 9:49 am
Location: Germany

Smile extrapolation - Benaim et al

September 18th, 2013, 5:23 pm

nothing special, when I remember correctly, just wrote down the conditions and solved for a, b, c ... at which point do you have difficulties in the derivation exactly ?maybe you also want to have a look at Kahale's paper on it (just google kahale smile), this is also quite nice to get a smile arbitrage free.
 
User avatar
Church
Topic Author
Posts: 0
Joined: September 4th, 2007, 10:27 am

Smile extrapolation - Benaim et al

September 20th, 2013, 3:31 pm

Thanks, after looking again the code is clear to me now.
 
User avatar
BenjG
Posts: 0
Joined: November 25th, 2013, 3:17 pm

Smile extrapolation - Benaim et al

November 27th, 2013, 7:13 am

Considering that mu and nu are parameters specified by the user, you have to calibrate a, b and c.As you have information only on the interpolated part of the smile, you need to find three equations that sit on both the extrapolated part and the interpolated part of the curve. Moreover, you want your smile to be arbitrage free. Hence, one natural condition is to set the second derivative equals on both sides of the last interpolated point ! But you need two more equations. Why not setting also the first derivative and the value of the call (put) at this same point.You can easily solve this system by considering the log of the price and the first and second derivatives of the log of the price. Moreover, don't forget that you don't know the distribution of the underlying since you have only the value of the call/put in the interpolated part. However that is enough: you need to calculate a second order one-sided difference (your calibration algorithm will be very sensitive on the precison of the derivatives).I really like this extrapolation scheme and I'm using it on my desk. It is simple (hence robust) and do perfectly its job, while allowing traders to input their view on the tails using the nu/mu parameters.
 
User avatar
pcaspers
Posts: 30
Joined: June 6th, 2005, 9:49 am
Location: Germany

Smile extrapolation - Benaim et al

November 27th, 2013, 11:25 am

yet it does not guarantee no-arbitrage. Which may be acceptable for plain cms though ?
 
User avatar
BenjG
Posts: 0
Joined: November 25th, 2013, 3:17 pm

Smile extrapolation - Benaim et al

November 27th, 2013, 12:57 pm

If the interpolated part of the smile is arbitrage free (that is if the second derivative of the price is non negative) then I think that the extrapolation will also be arbitrage free. Indeed, the second derivative of the call/put function used in the extrapolation doesn't seem to change of sign. What could possibly lead to arbitrage is if you have a jump in your second derivative at the last interpolated point. Fortunatly, the calibration procedure ensures this condition.So I think it is arbitrage free by construction, conditionnaly to the fact that your interpolated smile (at least the ends parts) is also.
 
User avatar
Lapsilago
Posts: 5
Joined: October 15th, 2004, 7:36 am
Location: Germany

Smile extrapolation - Benaim et al

November 27th, 2013, 2:03 pm

No, it is not!Have you tried different parameters? It can a) lead to negative densities and b) does not conserve the forward!I would advice to a) directly work on the probability density or b) use the No-Arbitrage SABR / other arb free model...Best, Lapsi
 
User avatar
BenjG
Posts: 0
Joined: November 25th, 2013, 3:17 pm

Smile extrapolation - Benaim et al

November 27th, 2013, 3:03 pm

I am not saying that the function cannot have a negative second derivative. What I think (it is an intuition) is that the sign of the second derivative doesn't change. So, if at the last interpolated point d²C(K)/dK² is non negative then there will be no arbitrage. Perhaps am I wrong ? Quoteand b) does not conserve the forward!I don't understand that part. Could you be more explicit ?Many thx, Ben
Last edited by BenjG on November 26th, 2013, 11:00 pm, edited 1 time in total.
 
User avatar
pcaspers
Posts: 30
Joined: June 6th, 2005, 9:49 am
Location: Germany

Smile extrapolation - Benaim et al

November 27th, 2013, 4:08 pm

QuoteOriginally posted by: BenjGI am not saying that the function cannot have a negative second derivative. What I think (it is an intuition) is that the sign of the second derivative doesn't change. So, if at the last interpolated point d²C(K)/dK² is non negative then there will be no arbitrage. Perhaps am I wrong ? it's been a while since I used this method, but when I remember correctly it is not enough to extrapolate an arbitrage free part of a smile. In case of a classic SABR smile input you have to move much closer to ATM with your glue point in order to get a convex extrapolation. Also, the formulas do not suggest that the second derivative can not change signs, do they ?
 
User avatar
BenjG
Posts: 0
Joined: November 25th, 2013, 3:17 pm

Smile extrapolation - Benaim et al

November 27th, 2013, 5:25 pm

After doing some calculations, it looks like the answer is indeed not obvious...When I look at the second derivative I get: $ \frac{\partial ^2 P(K)}{\partial K^2} \sim \left ( \frac{\mu}{K} + b + 2cK\right )^2 - \frac{\mu}{K^2} + 2c $The nice feature is that the sign depends only on (b,c). But I can't find a way to prove that indeed this function cannot change of sign... However to get some intuition I displayed in excel the surface put = function of (b,c) - with a fixed mu = 1 for different values of K (0.1, 1, 4 and 5 since I work on FX). And the result confirms my previous intuition, even if I cannot (yet I hope) prove it.
 
User avatar
Antonio
Posts: 8
Joined: June 30th, 2004, 3:13 pm
Location: Imperial College London
Contact:

Smile extrapolation - Benaim et al

November 28th, 2013, 8:36 am

Hello,It may depend on what you are trying to achieve: are you calibrating a given model, for which you need to extrapolate or are you trying to calibrate some parametric function to the observed smile, and then extrapolate this function outside the observed range?Another possibility is to consider a class of arbitrage-free volatility surfaces which you calibrate on the data. By construction, there, the family is arbitrage-free, so extrapolation will not break this property.Best,