Serving the Quantitative Finance Community

 
User avatar
Alice1991
Topic Author
Posts: 0
Joined: March 20th, 2013, 10:48 am

Bootstrapping issue (using par swap rate)

March 25th, 2013, 3:57 pm

Hello everyone,Thanks to this tutorial, I'm trying to generate a ZC curve from euribor rates (for the short end discount curve) and the par swap rates for the long term discount curve.tutorial :p1) http://www.derivativepricing.com/blog/b ... tructionp2) http://www.derivativepricing.com/blog/b ... wap-curveI don't understand how the price of a swap is determined with par .swap ratesfor year one: the pricing formula and the DF is given in page 2for year two (in comments) : DF is given by 1 ? [(R(2y)*df(6mo)*T1)+ (R(2y)*df(1mo)*T2) + (R(2y) * df(1,5y) * T3) ] / [ (R(2y) * T4) + 1 ]  For year 1,5 (in comments) : DF is given by 1 ? [ (R(1.5y)*df(6mo)*T1) + (R(1.5y) * df(1y) * T2) ] / [ (R(1.5y) * T3) + 1 ]Thank you for your help and your time
 
User avatar
DavidJN
Posts: 270
Joined: July 14th, 2002, 3:00 am

Bootstrapping issue (using par swap rate)

March 25th, 2013, 8:21 pm

I didn't have more than a cursory look at the articles. I'll start by pointing out that they are obselete given the changes in the marketplace since the Lehman crises. But they do illustrate the bootstrap algorithm and that in itself is useful because it can still be used with somewhat different data.I assume you are aware that a discount factor is a trivial transform of a zero coupon rate and vice versa. If you know one you can solve the other.The basic idea behind the simplest version of the bootstrap algorithm is as follows. Par swaps pay periodic coupons. The idea here is to consider the cash flows of a coupon-paying par swap as a portfolio of zero coupon payments. From your earlier work building the short end of the zero curve you already have some of the discount factors for the earlier cash flow dates. The idea is to use those and ultimately end up with one equation in one unknown (the last discount factor being solved for). Consider the 18-month (semi-annual pay) par swap - it can be viewed as a portfolio of three zero coupon payments (at 6Months, 12M, and 18Months). From your earlier work building the short end of the zero curve you should already have discount factors for the 6-month and 1-year points. Substitute them into the par value equation for the 18-month par swap and you should be left with one equation in one unknown, the 18-month discount factor. Solve it and now you have three discount known factors (6/12/18M). Plug that information into the value for the 2-year par swap and then solve for the DF at 24 months. Repeat this process sequentially out the curve in six months increments and you are done. You will find that par swap quotes are generally not available with 6-month intervals (you'll generally see them by integer years). So you will need to interpolate the par swap rates to get rates for the half year intervals (e.g. 2.5 years, 3.5 years and so on).Hope this helps.
 
User avatar
Alice1991
Topic Author
Posts: 0
Joined: March 20th, 2013, 10:48 am

Bootstrapping issue (using par swap rate)

March 25th, 2013, 10:15 pm

QuoteOriginally posted by: DavidJNConsider the 18-month (semi-annual pay) par swap - it can be viewed as a portfolio of three zero coupon payments (at 6Months, 12M, and 18Months). From your earlier work building the short end of the zero curve you should already have discount factors for the 6-month and 1-year points. Substitute them into the par value equation for the 18-month par swap and you should be left with one equation in one unknown, the 18-month discount factor. Solve it and now you have three discount known factors (6/12/18M). Plug that information into the value for the 2-year par swap and then solve for the DF at 24 months. Repeat this process sequentially out the curve in six months increments and you are done. You will find that par swap quotes are generally not available with 6-month intervals (you'll generally see them by integer years). So you will need to interpolate the par swap rates to get rates for the half year intervals (e.g. 2.5 years, 3.5 years and so on).Hope this helps.It helped a lot. Thank you very much !! everything is clear now .. but there's still a little problem remaining:for the first part (see page 1) : I did the calculations a hundred times and I really don't get where I did a mistakeHere are the results I getRate Days 0,14% 1 0,9999960833486730,14% 3 0,9999843335327540,19% 7 0,999947200,21% 14 0,999865930,25% 30 0,999658500,35% 63 0,999055320,45% 92 0,997895750,52% 121 0,996144670,59% 154 0,993653800,65% 182 0,990379280,71% 213 0,986247890,75% 245 0,981212900,81% 274 0,975215540,86% 305 0,968185840,91% 336 0,96000531The first one is OKThe second one is OKI copy the formula of the second one to the third one , and it's okI copy it then to the end: from the fourth till the end, everything is falsegood results: see page 1In the comments, there's a guy who had the exact figures I had.If you just calculate the fourth one, what do you get ? my answer or the one from the website ?Thanks again
 
User avatar
DavidJN
Posts: 270
Joined: July 14th, 2002, 3:00 am

Bootstrapping issue (using par swap rate)

March 26th, 2013, 2:15 am

The discount factors provided are for rates that hold between the value date of 10-Nov-2011 and future dates. But you will notice that all the tenors but the very first one start after 10-Nov-2011, so you must adjust for this. The DF for the first tenor, DF(O/N), is simply =1/(1+0.00141*1/360) = 0.999996083348673 because it starts on 10-Nov-2011The second tenor (T/N) starts one day out so you have to multiply the result by DF(O/N). DF(T/N) =1/(1 + rate*days/360)*DF(O/N) = 1/(1+0.00141*3/360)*0.999996083348673 = 0.999984333532754The discount factor for T/N is important because all the other tenors start on 14-Non-2011 The DF for 1W then is = 1/(1+0.00191*7/360)*0.999984333532754 = 0.999947196604925And the rest take the form DF = 1/(1 + rate*days/360)*DF(T/N) SINCE THEY ALL START ON 14-Nov-2011For example DF(2W) = 1/(1+0.00209*14/360)*0.999984333532754 = 0.999903063633749 and so on.Get it now?
 
User avatar
Alice1991
Topic Author
Posts: 0
Joined: March 20th, 2013, 10:48 am

Bootstrapping issue (using par swap rate)

March 27th, 2013, 7:48 am

That's great.Thanks a lot ! I still have one final question:For instance, for 2 years swap (6m / 1yr)(1-[ (R(2y)*df(6mo)*0,5) + (R(2y) * df(1y) * 0,5) + (R(2y)*df(1,5 y)*0,5)]) / [ (R(2y) * 0,5) + 1 ] = df(2y)I can discount df(2y) with the appropriate discount factorthis formula comes from:1 = (R(2y)*df(6mo)*0,5) + (R(2y) * df(1y) * 0,5) + (R(2y)*df(1,5 y)*0,5) + (R(2y)*df(2y)*0,5) +df(2y)The swap should be worth par at maturity. In this formula, I don't get really where's the zero value exactly ?I managed to finish the bootstrapping thanks to you DavidJN !
 
User avatar
DavidJN
Posts: 270
Joined: July 14th, 2002, 3:00 am

Bootstrapping issue (using par swap rate)

March 28th, 2013, 10:32 am

What do you mean when you say "The swap should be worth par at maturity."?After the final interest payments have been exchanged an expired swap has zero value. How could it have non-zero value?`
 
User avatar
Alice1991
Topic Author
Posts: 0
Joined: March 20th, 2013, 10:48 am

Bootstrapping issue (using par swap rate)

March 28th, 2013, 11:08 am

hello david,1 = (R(2y)*df(6mo)*0,5) + (R(2y) * df(1y) * 0,5) + (R(2y)*df(1,5 y)*0,5) + (R(2y)*df(2y)*0,5) +df(2y)I meant that the Swap has a zero value and that is supposed to explain the formula above. But I don't get why it should be equal to 1.
 
User avatar
Cuchulainn
Posts: 23029
Joined: July 16th, 2004, 7:38 am

Bootstrapping issue (using par swap rate)

March 28th, 2013, 7:53 pm

Alice,BonsoirIt might be useful to have a look at the chapters by Andrea Germani on swaps and bootstrapping. The reference to the book is herehttp://www.datasimfinancial.com/forum/viewforum.php?f=196
 
User avatar
DavidJN
Posts: 270
Joined: July 14th, 2002, 3:00 am

Bootstrapping issue (using par swap rate)

March 28th, 2013, 8:16 pm

Your equation is for the present value of the fixed leg of the swap. There are two legs to a vanilla interest rate swap, one fixed and the other floating. The other side, the floating leg, can also be shown to have a present value value of 1, or par.The Net Present Value of the swap is the difference between the two, which thus equals zero for a par swap.
 
User avatar
Shawnxiangyu
Posts: 0
Joined: November 6th, 2013, 10:14 am

Bootstrapping issue (using par swap rate)

November 13th, 2013, 8:50 am

QuoteOriginally posted by: DavidJNYour equation is for the present value of the fixed leg of the swap. There are two legs to a vanilla interest rate swap, one fixed and the other floating. The other side, the floating leg, can also be shown to have a present value value of 1, or par.The Net Present Value of the swap is the difference between the two, which thus equals zero for a par swap.Dear DavidJN, i have exact the same question.I could understand that the the fixed leg and floating leg could be interpreted as coupon-bearing bond and floating-rate note, repectively. But i dit not quite get it how could we make the present value of the bond and note both equal one. As to the fixed leg, isn't it the market conventional that the fixed leg will only have annual payment while the floating leg has semiannual payment?
 
User avatar
DavidJN
Posts: 270
Joined: July 14th, 2002, 3:00 am

Bootstrapping issue (using par swap rate)

November 13th, 2013, 4:13 pm

This discussion thread is about using coupon-paying par swap rates to build the zero curve. The word par in this context means that there is no premium or discount such that when the fixed and floating legs are netted together the par swap has zero value. That is what a par swap is, when two counterparties execute a par (or at-the-market) swap no money changes hands since the value of the swap at inception to both parties is zero. After the trade is made interest rates may of course change and the swaps net present value may thus change, creating a gain to one counterparty and an equal offsetting loss to the other counterparty.The whole purpose of the bootstrap algorithm is to create a set of zero coupon rates that preserves this zero net present value quality for par swap rates (and only par swap rates). Note the direction of the logic here, I fear you might have it backwards.As for the payment conventions of fixed and floating legs, that depends on the currency under consideration, something that has not been stated in the discussion, at least not yet.