0
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ what are your input parameters? $\endgroup$ – Richard Feb 25 '16 at 15:14
  • $\begingroup$ And where did you get your forumlas? $\endgroup$ – Bob Jansen Feb 25 '16 at 16:51
  • $\begingroup$ 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. $\endgroup$ – Oamriotn Feb 25 '16 at 17:25
  • $\begingroup$ 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%. $\endgroup$ – AFK Feb 25 '16 at 19:38
  • $\begingroup$ Hereby the link of the article: milliman.com/insight/2015/… $\endgroup$ – Oamriotn Feb 26 '16 at 7:56
1
$\begingroup$

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 .

$\endgroup$
  • $\begingroup$ very good point and very important in quoting swaption volas! $\endgroup$ – Richard Feb 17 '17 at 8:57

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.