Iterative Bootstrap

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Iterative Bootstrap

Dobrin Petkov
Hi, 

    I have a problem with bootstrapping a yield curve. The iterative bootstrap fails on the first iteration. Debugging I found the problem is that there are two different bonds with same time to maturity. They are both German bonds with respective maturity dates 16-Dec-2016 and 4-Jan-2017. The yield curve reference date is 30-Mar-2015 and the used day count convention is ActualActural::ISMA. Obviously those bonds have different maturity dates, but using that day count convention time to maturity is 1.75 years for both bonds. And that leads to the failure of the algorithm.

    The iterative bootstrap checks whether there are two bonds with same maturity date. This should imply and same time to maturity check, but obviously time to maturity depends on maturity date and on the day count convention. What I want to say simply is that I think the iterative bootstrap must compare time to maturity and not maturity dates (without making the implicit assumption that they are equivalent). 

    Any thoughts on that?

Regards,
Dobrin


Oh, I use Quantlib 1.41. Sorry if that has been changed already!

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Iterative Bootstrap

Luigi Ballabio
Hello,
    the day count convention for the curve does not necessarily be the same as the one used for the bond coupons. I'd suggest you change the day count for the curve to one that behaves better (act/360 or act/365). As long as you work with dates and not with times directly, it won't affect your results.

    Luigi


On Fri, Mar 27, 2015 at 1:36 PM, Dobrin Petkov <[hidden email]> wrote:
Hi, 

    I have a problem with bootstrapping a yield curve. The iterative bootstrap fails on the first iteration. Debugging I found the problem is that there are two different bonds with same time to maturity. They are both German bonds with respective maturity dates 16-Dec-2016 and 4-Jan-2017. The yield curve reference date is 30-Mar-2015 and the used day count convention is ActualActural::ISMA. Obviously those bonds have different maturity dates, but using that day count convention time to maturity is 1.75 years for both bonds. And that leads to the failure of the algorithm.

    The iterative bootstrap checks whether there are two bonds with same maturity date. This should imply and same time to maturity check, but obviously time to maturity depends on maturity date and on the day count convention. What I want to say simply is that I think the iterative bootstrap must compare time to maturity and not maturity dates (without making the implicit assumption that they are equivalent). 

    Any thoughts on that?

Regards,
Dobrin


Oh, I use Quantlib 1.41. Sorry if that has been changed already!

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users




--

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Iterative Bootstrap

Stefano Portolan

Hi Dobrin,

It could sound silly but if you start from two different dates (which are not holidays) and you count the time to maturity from the same date (30/03/2015) with the same day count convention, you should always find different times to maturity and no matter which day count you use!

I see that it could happen if you use two day count convention (maybe…), but with the same day count I really do not see …

If you have, for instance, 1 bond maturing on Sunday and the other on the adjacent Monday and you have some following convention, I see. Otherwise different dates through the same day count should give different year fraction …

 

Am I wrong?

Cheers.

Stefano

 

Ps.

When I extensively used the iterative bootstrap, I saw that it was kind of easy to actually upload not the dates that I really wanted because of a tiny error with the use of the QuantLib::Calendar advance method…

 

Stefano PORTOLAN - Complex Valuation Services

 

EUROPEAN FUND ADMINISTRATION S.A.

2, rue d’Alsace | L-1122 Luxembourg | Luxembourg

Tel.: +352 48 48 80 711

www.efa.eu

 

 

From: Luigi Ballabio [mailto:[hidden email]]
Sent: vendredi 27 mars 2015 14:43
To: Dobrin Petkov
Cc: QuantLib users
Subject: Re: [Quantlib-users] Iterative Bootstrap

 

Hello,

    the day count convention for the curve does not necessarily be the same as the one used for the bond coupons. I'd suggest you change the day count for the curve to one that behaves better (act/360 or act/365). As long as you work with dates and not with times directly, it won't affect your results.

 

    Luigi

 

 

On Fri, Mar 27, 2015 at 1:36 PM, Dobrin Petkov <[hidden email]> wrote:

Hi, 

 

    I have a problem with bootstrapping a yield curve. The iterative bootstrap fails on the first iteration. Debugging I found the problem is that there are two different bonds with same time to maturity. They are both German bonds with respective maturity dates 16-Dec-2016 and 4-Jan-2017. The yield curve reference date is 30-Mar-2015 and the used day count convention is ActualActural::ISMA. Obviously those bonds have different maturity dates, but using that day count convention time to maturity is 1.75 years for both bonds. And that leads to the failure of the algorithm.

 

    The iterative bootstrap checks whether there are two bonds with same maturity date. This should imply and same time to maturity check, but obviously time to maturity depends on maturity date and on the day count convention. What I want to say simply is that I think the iterative bootstrap must compare time to maturity and not maturity dates (without making the implicit assumption that they are equivalent). 

 

    Any thoughts on that?

 

Regards,

Dobrin

 

 

Oh, I use Quantlib 1.41. Sorry if that has been changed already!


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users



 

--


Agile Investment Servicing: Find out more in our latest annual report.


Follow us:
 


The information in this e-mail message and/ or its attachments is confidential and may be legally privileged, thus any disclosure, copying, distribution or any action taken or omitted to be taken in reliance thereon may be strictly prohibited and unlawful. If you are not the intended recipient, please notify us immediately and destroy this e-mail and its attachments. Considering the various risks involved when sending emails through the Internet, EFA will not be liable in any case for damages and claims due to the risks of this communication channel (e.g. non or late delivery, message corruption, inadvertent disclosure). Any views or opinions presented in this email and/or its attachments are solely those of the author and do not necessarily represent those of the company, consequently, EFA may not be held liable for its content unless confirmed subsequently in writing.


European Fund Administration SA | 2 rue d'Alsace, P.O. Box 1725,  L-1017 Luxembourg | Tel: +352 48 48 80 80 | www.efa.eu


Please consider the environment before printing this e-mail


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users