0

I just wrote two functions in Matlab which calculates the swaption prices based on the Lognormal model and on the Normal model, although I have the idea that the Normal model is wrong because the swaption price is (I think) too high.

Hereby the Lognormal function in Matlab:

 function [Receiver, Payer] = BlackSwaptionModel(K,S,Bvol,Time,Reonia,TenorSwap)
        d1 = (log(S/K) + 1/2*Bvol^2*Time) / (Bvol*sqrt(Time));
        d2 = d1 - (Bvol * sqrt(Time));

        Receiver = ((1-1/(1+S)^(TenorSwap)) / S) * exp(-Reonia*Time) * (S*normcdf(d1) - K*normcdf(d2)); %Value receiver swaption Black Model
        Payer = ((1-1/(1+S)^(TenorSwap)) / S) * exp(-Reonia*Time) * (K*normcdf(-d2) - S*normcdf(-d1)); % Value payer swaption Black Model
      end

Plus the Normal model function in Matlab:

function [Receiver, Payer] = NormalSwaptionModel(K,S,Nvol,Time,Reonia,TenorSwap)

    d1 = (S-K) / (Nvol * sqrt(Time));
    d2 = -(S-K) / (Nvol * sqrt(Time));

    Receiver = Nvol * sqrt(Time) * (d1*normcdf(d1) + normpdf(d1)) * ((1-1/(1+S)^(TenorSwap)) / S) * exp(-Reonia*Time);

    Payer = Nvol * sqrt(Time) * (d2*normcdf(d2) + normpdf(d2)) * ((1-1/(1+S)^(TenorSwap)) / S) * exp(-Reonia*Time);

end

Could anybody see what's going wrong here. Thanks.

Richi Wa
  • 13,670
  • 5
  • 38
  • 88
Oamriotn
  • 355
  • 5
  • 12
  • what are your input parameters? – Richi Wa Feb 25 '16 at 15:14
  • And where did you get your forumlas? – Bob Jansen Feb 25 '16 at 16:51
  • Input parameterrs are: S = 0.02, K=0.02, Reonia=0.01, Time=1, Bvol=0.20, Nvol=0.20,Tenorswap=10. Now I know that when using these parameters the two formula's won't yield the same value but I think there is something wrong with the NormalSwaptionModel because the Nvol needs to be very small (which doesn't make sense) will these formula's give the same value for the swaptions. – Oamriotn Feb 25 '16 at 17:25
  • The vols do not have the same order of magnitude. To get an idea, at the money, a 30% lognormal vol can correspond to a 0.60% normal vol. Normal vols are usually quoted in bps = 0.01%. – AFK Feb 25 '16 at 19:38
  • Hereby the link of the article: http://www.milliman.com/insight/2015/The-new-normal-Using-the-right-volatility-quote-in-times-of-low-interest-rates-for-Solvency-II-risk-factor-modelling/ – Oamriotn Feb 26 '16 at 07:56
  • What do you exactly mean with the same order of magnitude. So for example if the Black vol = 30% -> 0.30 as an input Normalvol will be for example 0.60% so meaning 0.0060 as an input for the model? – Oamriotn Feb 26 '16 at 07:58

1 Answers1

1

The vols do not have the same order of magnitude. To get an idea, at the money, a 30% lognormal vol can correspond to a 0.60% normal vol. Normal vols are usually quoted in bps = 0.01%.

The approximate relation should be

Nvol = S * Bvol

If you want to be more accurate, you can invert the price obtained from the BS model into the normal implied volatility. See here for direct approximation https://quant.stackexchange.com/a/32489/26559 .

jChoi
  • 1,154
  • 9
  • 25