I have implemented the LIBOR market model (LMM) and I am quite satisfied with the results. I have now added a skew to the model as described in 10.1 of Brigo/Mercurio. That is, I have replaced the SDE

$dF_{k}(t) = \sigma_{k}(t) F_{k}(t) dW_{t}$

for the forward rate $F(t, T_{k-1}, T_{k})$ with

$dH_{k}(t) = v_{k}(t) (H_{k}(t) - \eta) dW_{t}$.

In the actual path simulation I do not simulate the above equations but rather the SDEs under the spot measure. The volatilities $v_{k}$ for the skew case are calibrated as stated in 10.1 of Brigo/Mercurio.

My problem is the following. When I use the simulated paths to price swaptions and back-out the implied swaption volatilities I indeed get an almost flat curve in the non-skew case and a skew curve in the skew case. However, the two implied volatility curves (implied volatility plotted against strike) do not intersect at the at-the-money strike. The skew curve is always above the non-skew curve. When I do the same for caplets I get two almost identical curves (as I would expect from the calibration procedure). I have included an example plot here. The green line is what I would expect and the red-brown line is what I get. The x-axis is moneyness with respect to the ATM forward rate.

The Swaption Volatility Plot

My suspicion is that I am missing something simple and that my calibrated volatilities for the skew case are too high. However, I calibrate exactly as suggested by Brigo/Mercurio in 10.1. I would appreciate any hint!

  • $\begingroup$ See p455 paragraph 4. ... increasing $\alpha$ ($\eta$ in your notation) shifts the volatility curve down, whereas decreasing $\alpha$ shifts the curve up. Is your $\eta < 0$? $\endgroup$ – Bruno Sep 15 '14 at 11:00
  • $\begingroup$ Regardless of the value of $\eta$ (or $\alpha$), I would expect the curves to coincide at the ATM point. $\endgroup$ – KaapstadKwant Sep 15 '14 at 12:52
  • $\begingroup$ So you are calibrating your model ATM and then doing Monte Carlo you can't retrieve proper price/volatility? $\endgroup$ – Bruno Sep 15 '14 at 13:31
  • 1
    $\begingroup$ What I recommend you is to use Hagan's article to calculate approximation for your implied vol. This way you could check if calibrated parameters match input vol to scope your problem: is it in calibration on in the MC. Your ATM vol should be around $$k=1 - \frac{\eta}{F}\\\sigma_{ATM}=vk\{1+\frac{v^2T}{24}(k^2-1)\}.$$ The approximation is very exact for short maturities. Hope it helps. $\endgroup$ – Bruno Sep 15 '14 at 14:01
  • $\begingroup$ Dear Bruno, thank you for helping. Yes, this is exactly what I am doing. I have, after reading your first comment, again looked at the section in Brigo/Mercurio. The graph (caplet vols and not swaption vols and not based on simulation) they show is also above the ATM caplet vol of 20%. $\endgroup$ – KaapstadKwant Sep 15 '14 at 14:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.