Saturday, June 24, 2017

discounting - Bloomberg terminal swap zero curve calculation


I would like to ask about swap zero curve calculation algorithm by Bloomberg terminal. This is a plain vanilla CZK interest rate swap, fixing the Prague IBOR. My task is to calculate zero rates from market rates, however I have only managed to get accurate zero rates from 2 years onwards. I tried to bootstrap spot rates from FRAs (CKFR0F1 is FRA 6x12 and CKFR011 is 12x18) with this formula:



$(1+r_{0;t_{0}}\frac{t_{0}}{360})*(1+r_{t_{0};t_{0}+t{u}}\frac{t_{u}}{360})= (1+r_{0;t_{0}+t{u}}\frac{t_{u}+t_{0}}{360})$


Where $r_{0;t_{0}}= 0.0056$, $r_{t_{0};t_{0}+t{u}} = 0.0095$, $t_{0}=182$ and $t_{u}=183$. By solving this equation I get $r_{0;t_{0}+t{u}}=r_{0;1}= 0.007568827$, which is off only by a tiny fraction. I guess the mistake will be in day count conventions, however this is the closest I have come to the correct solution. Can someone explain how the calculation should be done?


I have also attached screenshots of the swap yield curve and cash-flows.


Swap cash-flows


Swap zero curve screenshot



Answer



It looks like you should use a different convention for the zero rates. I tried the following:


$$\left(1+r_{0;t_{0}}\frac{t_{0}}{360}\right) \times \left(1+r_{t_{0};t_{0}+t{u}}\frac{t_{u}}{360}\right) = \left(1+r_{0;t_{0}+t{u}}\right)^{\frac{t_{u}+t_{0}}{360}}$$


Solving with the same input gives $r_{t_{0};t_{0}+t{u}}=0.00756843$, in agreement with Bloomberg.


The right hand side convention kicks in because $(t_u+t_0)/360 > 1~year$. It's a convention used for zero rates, and it looks Bloomberg is using it.



The only source I'm aware of which treats this convention is Brigo and Mercurio:


https://books.google.ie/books?id=C31l_fs-mMkC&lpg=PA57&pg=PA9#v=onepage&q&f=false


No comments:

Post a Comment

technique - How credible is wikipedia?

I understand that this question relates more to wikipedia than it does writing but... If I was going to use wikipedia for a source for a res...