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$
6
  • $\begingroup$ what are your input parameters? $\endgroup$
    – Richi W
    Feb 25, 2016 at 15:14
  • $\begingroup$ And where did you get your forumlas? $\endgroup$
    – Bob Jansen
    Feb 25, 2016 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, 2016 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, 2016 at 19:38
  • $\begingroup$ Hereby the link of the article: milliman.com/insight/2015/… $\endgroup$
    – Oamriotn
    Feb 26, 2016 at 7:56

1 Answer 1

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$
1
  • $\begingroup$ very good point and very important in quoting swaption volas! $\endgroup$
    – Richi W
    Feb 17, 2017 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.