Hi,
I'm using quantlib to build a spread strategy for pricing corporates bonds. At the moment I have a problem with some bond types because the yields and the prices achieved with quantlib are different from those of bloomberg. I'm looking for an user with a good knowledge of Quantlib financial functions [mainly qlFixedCouponBond(); qlBondYield() e qlBondCleanPrice()], available some days to assessing togheter the accuracy of the library. Vittorio di Stefano mailto:[hidden email] SoftSolutions! Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia Tel: +39 035-22714-1 Fax: +39 035-22714-99 http://www.softsolutions.it ************************************************** This document is strictly confidential and is intended for use by the addressee unless otherwise indicated. If you have received this e-mail in error we would be very grateful if you could please notify us immediately at mailto:[hidden email] and delete this e-mail from your system. SoftSolutions! reserves the right to monitor all email communications through its internal and external networks. SoftSolutions! s.r.l. ************************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html |
Hi Vittorio, Currently, QuantLib's Bond calculation fails to calculate correctly because of the way unadjusted coupon dates are calculated. Basically, given an array of coupon objects that represent a bond schedule and given a DayCounter (ie - act365, 30360, actact), when a yearfraction() is requested for any coupon period within a Bond object, the unadjusted dates underlying the coupon object are initially incorrect. Even though the logic within the DayCounter class is correct, many of the dayCounter classes make use of the unadjusted dates within the yearFraction() logic and thus you arrive at inaccurate results. You also have the problem of short/long first/last coupon periods that are not treated correctly either. Best Regards, Toyin Akin. CapeTools QuantTools, www.QuantTools.com >From: [hidden email] >To: [hidden email] >Subject: [Quantlib-users] On the accuracy of quantlib addins >Date: Tue, 9 Jan 2007 09:59:24 +0100 > >Hi, > >I'm using quantlib to build a spread strategy for pricing corporates >bonds. At the moment I have a problem with some bond types because the >yields and the prices achieved with quantlib are different from those of >bloomberg. >I'm looking for an user with a good knowledge of Quantlib financial >functions [mainly qlFixedCouponBond(); qlBondYield() e >qlBondCleanPrice()], available some days to assessing togheter the >accuracy of the library. > > >Vittorio di Stefano >mailto:[hidden email] > >SoftSolutions! >Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia >Tel: +39 035-22714-1 >Fax: +39 035-22714-99 >http://www.softsolutions.it >************************************************** > >This document is strictly confidential and is intended for use by the >addressee >unless otherwise indicated. If you have received this e-mail in error we >would >be very grateful if you could please notify us immediately at >mailto:[hidden email] and delete this e-mail from your system. > >SoftSolutions! reserves the right to monitor all email communications >through >its internal and external networks. > >SoftSolutions! s.r.l. > >************************************************** >-------------- next part -------------- >An HTML attachment was scrubbed... >URL: >http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys - and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >QuantLib-users mailing list >[hidden email] >https://lists.sourceforge.net/lists/listinfo/quantlib-users _________________________________________________________________ MSN Hotmail is evolving check out the new Windows Live Mail http://ideas.live.com |
Hi again, On a positive note though, if you want to compute ISMA, Simple, Moosmuller yield values, do not pass in a Calendar object or more rather, pass in a NullCalendar object. This is because these yield values do not take into consideration holidays and thus produces much better results (the unadjusted or refDates are correct). There are other issues, but you will produce much better results. Forget True yield. You can also try our product. We have a Bond Mini module for corporate Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and Bond Options. All for £79. Best Regards, Toyin Akin, CapeTools QuantTools. www.QuantTools.com >From: "Toyin Akin" <[hidden email]> >To: >[hidden email],[hidden email] >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > >Hi Vittorio, > >Currently, QuantLib's Bond calculation fails to calculate correctly because >of the way unadjusted coupon dates are calculated. > >Basically, given an array of coupon objects that represent a bond schedule >and given a DayCounter (ie - act365, 30360, actact), when a yearfraction() >is requested for any coupon period within a Bond object, the unadjusted >dates underlying the coupon object are initially incorrect. > >Even though the logic within the DayCounter class is correct, many of the >dayCounter classes make use of the unadjusted dates within the >yearFraction() logic and thus you arrive at inaccurate results. > >You also have the problem of short/long first/last coupon periods that are >not treated correctly either. > >Best Regards, >Toyin Akin. >CapeTools QuantTools, >www.QuantTools.com > >>From: [hidden email] >>To: [hidden email] >>Subject: [Quantlib-users] On the accuracy of quantlib addins >>Date: Tue, 9 Jan 2007 09:59:24 +0100 >> >>Hi, >> >>I'm using quantlib to build a spread strategy for pricing corporates >>bonds. At the moment I have a problem with some bond types because the >>yields and the prices achieved with quantlib are different from those of >>bloomberg. >>I'm looking for an user with a good knowledge of Quantlib financial >>functions [mainly qlFixedCouponBond(); qlBondYield() e >>qlBondCleanPrice()], available some days to assessing togheter the >>accuracy of the library. >> >> >>Vittorio di Stefano >>mailto:[hidden email] >> >>SoftSolutions! >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia >>Tel: +39 035-22714-1 >>Fax: +39 035-22714-99 >>http://www.softsolutions.it >>************************************************** >> >>This document is strictly confidential and is intended for use by the >>addressee >>unless otherwise indicated. If you have received this e-mail in error we >>would >>be very grateful if you could please notify us immediately at >>mailto:[hidden email] and delete this e-mail from your system. >> >>SoftSolutions! reserves the right to monitor all email communications >>through >>its internal and external networks. >> >>SoftSolutions! s.r.l. >> >>************************************************** >>-------------- next part -------------- >>An HTML attachment was scrubbed... >>URL: >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html >>------------------------------------------------------------------------- >>Take Surveys. Earn Cash. Influence the Future of IT >>Join SourceForge.net's Techsay panel and you'll get the chance to share >>your >>opinions on IT & business topics through brief surveys - and earn cash >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >>_______________________________________________ >>QuantLib-users mailing list >>[hidden email] >>https://lists.sourceforge.net/lists/listinfo/quantlib-users > >_________________________________________________________________ >MSN Hotmail is evolving check out the new Windows Live Mail >http://ideas.live.com > > >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys - and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >QuantLib-users mailing list >[hidden email] >https://lists.sourceforge.net/lists/listinfo/quantlib-users _________________________________________________________________ Be the first to hear what's new at MSN - sign up to our free newsletters! http://www.msn.co.uk/newsletters |
In reply to this post by vittorio.distefano
Hi Vittorio,
QuantLib's Bond calculation doens't fail to calculate correctly bond's price. In my opinion, the point you're spotting is that in QuantLib (I guess you're using Version 0.3.14)only one type of yield calculation is implemented (bonds with different coupon calculation type have different compounding method, therefore unequivalent yields), so this can give you misleading results when using yield to calculate bond price. Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: IT0000366655 has semiannual frequency and calculation type used for the Italian government BTPS issues; which triggers a T+3 settlement period and accomodates long last coupon. This calculation type is different from the one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), which has annual frequency and German Government Bonds calculation type. This last calculation type is used for German government and corporate issues. It calculates Moosmueller yield, which discounts according to simple interest. Government bonds, agencies, jumbos, and floaters generally trade T+3, while all other bonds generally trade T+2. So using this bond as a benchmark (I guess you're using YAS in Bloomberg) you're not comparing apples to apples. My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. My second recommendation is to pay attention when using YAS <go> if you're comparing bonds with different compounding methods, and choose equivalent yields. Using PFI <go> in Bloomberg will help you to find equivalent yield. Then I have a remark: why are you pricing corporate bonds using yield? I don't think it's a current market practice. I mean, I've never seen a trader using yield to quote bonds. Bonds traders use asset swap spreads rather than z-spread. You can do the same with QuantLibAddin using qlAssetSwap related functions. Regarding Calendar object you can pass "TARGET" calendar to construct a bond object, and providing all static data for the bond correctly, will lead you to the real schedule of the bond. If you have doubts on this, you can easily check the cashflow analysis using qlBondFlowAnalysis. Chiara Chiara Fornarola Equity & Fixed Income Markets Unit Banca Caboto Spa Piazzetta Giordano Dell'amore 3 20121 Milano Voice: +39 02 8021 5778 Fax: +39 02 8021 5299 Hi again, On a positive note though, if you want to compute ISMA, Simple, Moosmuller yield values, do not pass in a Calendar object or more rather, pass in a NullCalendar object. This is because these yield values do not take into consideration holidays and thus produces much better results (the unadjusted or refDates are correct). There are other issues, but you will produce much better results. Forget True yield. You can also try our product. We have a Bond Mini module for corporate Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and Bond Options. All for £79. Best Regards, Toyin Akin, CapeTools QuantTools. www.QuantTools.com >From: "Toyin Akin" <[hidden email]> >To: >[hidden email],[hidden email] >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > >Hi Vittorio, > >Currently, QuantLib's Bond calculation fails to calculate correctly >because >of the way unadjusted coupon dates are calculated. > >Basically, given an array of coupon objects that represent a bond >schedule >and given a DayCounter (ie - act365, 30360, actact), when a yearfraction() >is requested for any coupon period within a Bond object, the unadjusted >dates underlying the coupon object are initially incorrect. > >Even though the logic within the DayCounter class is correct, many of >the >dayCounter classes make use of the unadjusted dates within the >yearFraction() logic and thus you arrive at inaccurate results. > >You also have the problem of short/long first/last coupon periods that >are >not treated correctly either. > >Best Regards, >Toyin Akin. >CapeTools QuantTools, >www.QuantTools.com > >>From: [hidden email] >>To: [hidden email] >>Subject: [Quantlib-users] On the accuracy of quantlib addins >>Date: Tue, 9 Jan 2007 09:59:24 +0100 >> >>Hi, >> >>I'm using quantlib to build a spread strategy for pricing corporates >>bonds. At the moment I have a problem with some bond types because the >>yields and the prices achieved with quantlib are different from those >>of bloomberg. I'm looking for an user with a good knowledge of >>Quantlib financial functions [mainly qlFixedCouponBond(); >>qlBondYield() e qlBondCleanPrice()], available some days to assessing >>togheter the accuracy of the library. >> >> >>Vittorio di Stefano mailto:[hidden email] >> >>SoftSolutions! >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia >>Tel: +39 035-22714-1 >>Fax: +39 035-22714-99 >>http://www.softsolutions.it <http://www.softsolutions.it/> >>************************************************** >> >>This document is strictly confidential and is intended for use by the >>addressee unless otherwise indicated. If you have received this e-mail >>in error we would >>be very grateful if you could please notify us immediately at >>mailto:[hidden email] <mailto:[hidden email]> and delete this e-mail from your system. >> >>SoftSolutions! reserves the right to monitor all email communications >>through its internal and external networks. >> >>SoftSolutions! s.r.l. >> >>************************************************** >>-------------- next part -------------- >>An HTML attachment was scrubbed... >>URL: >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html <http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html> >>------------------------------------------------------------------------- >>Take Surveys. Earn Cash. Influence the Future of IT >>Join SourceForge.net's Techsay panel and you'll get the chance to share >>your >>opinions on IT & business topics through brief surveys - and earn cash >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> >>_______________________________________________ >>QuantLib-users mailing list >>[hidden email] >>https://lists.sourceforge.net/lists/listinfo/quantlib-users <https://lists.sourceforge.net/lists/listinfo/quantlib-users> > >_________________________________________________________________ >MSN Hotmail is evolving - check out the new Windows Live Mail >http://ideas.live.com <http://ideas.live.com/> > > >----------------------------------------------------------------------- >-- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys - and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> >_______________________________________________ >QuantLib-users mailing list [hidden email] >https://lists.sourceforge.net/lists/listinfo/quantlib-users <https://lists.sourceforge.net/lists/listinfo/quantlib-users> _________________________________________________________________ Be the first to hear what's new at MSN - sign up to our free newsletters! http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070112/e3e3607b/attachment.html |
Hi, Actually, it's a known fact that the refDates computed within a coupon object can be incorrect (unless it has been changed recently). I posted this issue some time last year and Luigi confirmed that this needed to be looked at. The refDates must be unAdusted dates for Bonds, however if you pass a holiday object to a schedule class, the resulting dates are adjusted for holidays and these are the new refDates. You will the have a series of long and short periods (differing by a few days if a weekend or holiday is hit). I agree that the payment dates will be adjusted and so they should be, but when actually calculating coupon period times (yearFractions), the refDates must be unAdjusted when the logic is processed by the dayCounter classes. Yes, if you simply display the dates of the Schedule, you produce the correct payment dates. QuantLib (unless it has changed recently), currently uses the adjusted dates for the coupons refDates parameters. Also, most bonds pay equal coupon amounts (ie - for a six month coupon period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for every coupon. Currently in most cases other than 30360 or Simple daycounters, if you display the schedule of coupons which are calculated as yearFraction*coupon*Nominal for each period you will end up will an array of values centered around 2.5, but not exactly 2.5 (according to our example above). The yearFraction is needed in order to compute the correct discount factor for discounting a bond flow (an internal variable is built up aggregating the yearFractions and then the value used for discounting). Thus because the yearFraction value can be incorrect because of the refDates, you are discounting at the wrong value. Best Regards, Toyin Akin. >From: "FORNAROLA CHIARA" <[hidden email]> >To: <[hidden email]>, <[hidden email]> >CC: <[hidden email]> >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 11:53:08 +0100 > >Hi Vittorio, > > > >QuantLib's Bond calculation doens't fail to calculate correctly bond's >price. > >In my opinion, the point you're spotting is that in QuantLib (I guess >you're using Version 0.3.14)only one type of yield calculation is >implemented (bonds with different coupon calculation type have different >compounding method, therefore unequivalent yields), so this can give you >misleading results when using yield to calculate bond price. > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: >IT0000366655 has semiannual frequency and calculation type used for the >Italian government BTPS issues; which triggers a T+3 settlement period and >accomodates long last coupon. This calculation type is different from the >one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), >which has annual frequency and German Government Bonds calculation type. >This last calculation type is used for German government and corporate >issues. It calculates Moosmueller yield, which discounts according to >simple interest. Government bonds, agencies, jumbos, and floaters generally >trade T+3, while all other bonds generally trade T+2. So using this bond as >a benchmark (I guess you're using YAS in Bloomberg) you're not comparing >apples to apples. > >My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 >08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > >My second recommendation is to pay attention when using YAS <go> if you're >comparing bonds with different compounding methods, and choose equivalent >yields. Using PFI <go> in Bloomberg will help you to find equivalent yield. > >Then I have a remark: why are you pricing corporate bonds using yield? I >don't think it's a current market practice. I mean, I've never seen a >trader using yield to quote bonds. Bonds traders use asset swap spreads >rather than z-spread. You can do the same with QuantLibAddin using >qlAssetSwap related functions. > >Regarding Calendar object you can pass "TARGET" calendar to construct a >bond object, and providing all static data for the bond correctly, will >lead you to the real schedule of the bond. If you have doubts on this, you >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > >Chiara > > > > > >Chiara Fornarola > > > >Equity & Fixed Income Markets Unit > >Banca Caboto Spa > >Piazzetta Giordano Dell'amore 3 > >20121 Milano > >Voice: +39 02 8021 5778 > >Fax: +39 02 8021 5299 > > > > > > > > > >Hi again, > > > >On a positive note though, if you want to compute ISMA, Simple, Moosmuller > >yield values, do not pass in a Calendar object or more rather, pass in a > >NullCalendar object. > > > >This is because these yield values do not take into consideration holidays > >and thus produces much better results (the unadjusted or refDates are > >correct). There are other issues, but you will produce much better results. > >Forget True yield. > > > >You can also try our product. We have a Bond Mini module for corporate > >Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and > >Bond Options. All for £79. > > > >Best Regards, > >Toyin Akin, > >CapeTools QuantTools. > >www.QuantTools.com > > > > > > >From: "Toyin Akin" <[hidden email]> > > >To: > > >[hidden email],[hidden email] > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > >Hi Vittorio, > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > >because > > >of the way unadjusted coupon dates are calculated. > > > > > >Basically, given an array of coupon objects that represent a bond > > >schedule > > >and given a DayCounter (ie - act365, 30360, actact), when a >yearfraction() > > >is requested for any coupon period within a Bond object, the unadjusted > > >dates underlying the coupon object are initially incorrect. > > > > > >Even though the logic within the DayCounter class is correct, many of > > >the > > >dayCounter classes make use of the unadjusted dates within the > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > >You also have the problem of short/long first/last coupon periods that > > >are > > >not treated correctly either. > > > > > >Best Regards, > > >Toyin Akin. > > >CapeTools QuantTools, > > >www.QuantTools.com > > > > > >>From: [hidden email] > > >>To: [hidden email] > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > >> > > >>Hi, > > >> > > >>I'm using quantlib to build a spread strategy for pricing corporates > > >>bonds. At the moment I have a problem with some bond types because the > > >>yields and the prices achieved with quantlib are different from those > > >>of bloomberg. I'm looking for an user with a good knowledge of > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > >>qlBondYield() e qlBondCleanPrice()], available some days to assessing > > >>togheter the accuracy of the library. > > >> > > >> > > >>Vittorio di Stefano mailto:[hidden email] > > >> > > >>SoftSolutions! > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > >>Tel: +39 035-22714-1 > > >>Fax: +39 035-22714-99 > > >>http://www.softsolutions.it <http://www.softsolutions.it/> > > >>************************************************** > > >> > > >>This document is strictly confidential and is intended for use by the > > >>addressee unless otherwise indicated. If you have received this e-mail > > >>in error we would > > >>be very grateful if you could please notify us immediately at > > >>mailto:[hidden email] <mailto:[hidden email]> and delete >this e-mail from your system. > > >> > > >>SoftSolutions! reserves the right to monitor all email communications > > >>through its internal and external networks. > > >> > > >>SoftSolutions! s.r.l. > > >> > > >>************************************************** > > >>-------------- next part -------------- > > >>An HTML attachment was scrubbed... > > >>URL: > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html> > > >>------------------------------------------------------------------------- > > >>Take Surveys. Earn Cash. Influence the Future of IT > > >>Join SourceForge.net's Techsay panel and you'll get the chance to share > > >>your > > >>opinions on IT & business topics through brief surveys - and earn cash > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > >>_______________________________________________ > > >>QuantLib-users mailing list > > >>[hidden email] > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > >_________________________________________________________________ > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > > > > > > >----------------------------------------------------------------------- > > >-- > > >Take Surveys. Earn Cash. Influence the Future of IT > > >Join SourceForge.net's Techsay panel and you'll get the chance to share > > >your > > >opinions on IT & business topics through brief surveys - and earn cash > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > >_______________________________________________ > > >QuantLib-users mailing list [hidden email] > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > >_________________________________________________________________ > >Be the first to hear what's new at MSN - sign up to our free newsletters! > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > _________________________________________________________________ MSN Hotmail is evolving check out the new Windows Live Mail http://ideas.live.com |
Hi,
There is no way to compare the prices from different source. Different models will have different results, even with simple discount bond, your discount factor might be different from bloomberg's. In reality, the price on bloomberg is a consensus market clean price not a theoretical clean price. Also the effect because of the coupon payment shift should not be significant. Thanks, Guowen "Toyin Akin" <[hidden email]> Sent by: [hidden email] 01/12/2007 06:57 AM To [hidden email], [hidden email] cc [hidden email] Subject Re: [Quantlib-users] On the accuracy of quantlib addins Hi, Actually, it's a known fact that the refDates computed within a coupon object can be incorrect (unless it has been changed recently). I posted this issue some time last year and Luigi confirmed that this needed to be looked at. The refDates must be unAdusted dates for Bonds, however if you pass a holiday object to a schedule class, the resulting dates are adjusted for holidays and these are the new refDates. You will the have a series of long and short periods (differing by a few days if a weekend or holiday is hit). I agree that the payment dates will be adjusted and so they should be, but when actually calculating coupon period times (yearFractions), the refDates must be unAdjusted when the logic is processed by the dayCounter classes. Yes, if you simply display the dates of the Schedule, you produce the correct payment dates. QuantLib (unless it has changed recently), currently uses the adjusted dates for the coupons refDates parameters. Also, most bonds pay equal coupon amounts (ie - for a six month coupon period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for every coupon. Currently in most cases other than 30360 or Simple daycounters, if you display the schedule of coupons which are calculated as yearFraction*coupon*Nominal for each period you will end up will an array of values centered around 2.5, but not exactly 2.5 (according to our example above). The yearFraction is needed in order to compute the correct discount factor for discounting a bond flow (an internal variable is built up aggregating the yearFractions and then the value used for discounting). Thus because the yearFraction value can be incorrect because of the refDates, you are discounting at the wrong value. Best Regards, Toyin Akin. >From: "FORNAROLA CHIARA" <[hidden email]> >To: <[hidden email]>, <[hidden email]> >CC: <[hidden email]> >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 11:53:08 +0100 > >Hi Vittorio, > > > >QuantLib's Bond calculation doens't fail to calculate correctly bond's >price. > >In my opinion, the point you're spotting is that in QuantLib (I guess >you're using Version 0.3.14)only one type of yield calculation is >implemented (bonds with different coupon calculation type have different >compounding method, therefore unequivalent yields), so this can give you >misleading results when using yield to calculate bond price. > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: >IT0000366655 has semiannual frequency and calculation type used for the >Italian government BTPS issues; which triggers a T+3 settlement period >accomodates long last coupon. This calculation type is different from the >one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), >which has annual frequency and German Government Bonds calculation type. >This last calculation type is used for German government and corporate >issues. It calculates Moosmueller yield, which discounts according to >simple interest. Government bonds, agencies, jumbos, and floaters generally >trade T+3, while all other bonds generally trade T+2. So using this bond as >a benchmark (I guess you're using YAS in Bloomberg) you're not comparing >apples to apples. > >My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 >08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > >My second recommendation is to pay attention when using YAS <go> if you're >comparing bonds with different compounding methods, and choose equivalent >yields. Using PFI <go> in Bloomberg will help you to find equivalent yield. > >Then I have a remark: why are you pricing corporate bonds using yield? I >don't think it's a current market practice. I mean, I've never seen a >trader using yield to quote bonds. Bonds traders use asset swap spreads >rather than z-spread. You can do the same with QuantLibAddin using >qlAssetSwap related functions. > >Regarding Calendar object you can pass "TARGET" calendar to construct a >bond object, and providing all static data for the bond correctly, will >lead you to the real schedule of the bond. If you have doubts on this, >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > >Chiara > > > > > >Chiara Fornarola > > > >Equity & Fixed Income Markets Unit > >Banca Caboto Spa > >Piazzetta Giordano Dell'amore 3 > >20121 Milano > >Voice: +39 02 8021 5778 > >Fax: +39 02 8021 5299 > > > > > > > > > >Hi again, > > > >On a positive note though, if you want to compute ISMA, Simple, > >yield values, do not pass in a Calendar object or more rather, pass in a > >NullCalendar object. > > > >This is because these yield values do not take into consideration holidays > >and thus produces much better results (the unadjusted or refDates are > >correct). There are other issues, but you will produce much better results. > >Forget True yield. > > > >You can also try our product. We have a Bond Mini module for corporate > >Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and > >Bond Options. All for £79. > > > >Best Regards, > >Toyin Akin, > >CapeTools QuantTools. > >www.QuantTools.com > > > > > > >From: "Toyin Akin" <[hidden email]> > > >To: > > >[hidden email],[hidden email] > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > >Hi Vittorio, > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > >because > > >of the way unadjusted coupon dates are calculated. > > > > > >Basically, given an array of coupon objects that represent a bond > > >schedule > > >and given a DayCounter (ie - act365, 30360, actact), when a >yearfraction() > > >is requested for any coupon period within a Bond object, the unadjusted > > >dates underlying the coupon object are initially incorrect. > > > > > >Even though the logic within the DayCounter class is correct, many of > > >the > > >dayCounter classes make use of the unadjusted dates within the > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > >You also have the problem of short/long first/last coupon periods that > > >are > > >not treated correctly either. > > > > > >Best Regards, > > >Toyin Akin. > > >CapeTools QuantTools, > > >www.QuantTools.com > > > > > >>From: [hidden email] > > >>To: [hidden email] > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > >> > > >>Hi, > > >> > > >>I'm using quantlib to build a spread strategy for pricing corporates > > >>bonds. At the moment I have a problem with some bond types because the > > >>yields and the prices achieved with quantlib are different from those > > >>of bloomberg. I'm looking for an user with a good knowledge of > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > >>qlBondYield() e qlBondCleanPrice()], available some days to assessing > > >>togheter the accuracy of the library. > > >> > > >> > > >>Vittorio di Stefano mailto:[hidden email] > > >> > > >>SoftSolutions! > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > >>Tel: +39 035-22714-1 > > >>Fax: +39 035-22714-99 > > >>http://www.softsolutions.it <http://www.softsolutions.it/> > > >>************************************************** > > >> > > >>This document is strictly confidential and is intended for use by the > > >>addressee unless otherwise indicated. If you have received this e-mail > > >>in error we would > > >>be very grateful if you could please notify us immediately at > > >>mailto:[hidden email] <mailto:[hidden email]> and >this e-mail from your system. > > >> > > >>SoftSolutions! reserves the right to monitor all email communications > > >>through its internal and external networks. > > >> > > >>SoftSolutions! s.r.l. > > >> > > >>************************************************** > > >>-------------- next part -------------- > > >>An HTML attachment was scrubbed... > > >>URL: > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html >< http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html > > > >>------------------------------------------------------------------------- > > >>Take Surveys. Earn Cash. Influence the Future of IT > > >>Join SourceForge.net's Techsay panel and you'll get the chance to share > > >>your > > >>opinions on IT & business topics through brief surveys - and earn cash > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >< http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > >>_______________________________________________ > > >>QuantLib-users mailing list > > >>[hidden email] > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > >_________________________________________________________________ > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > > > > > > >----------------------------------------------------------------------- > > >-- > > >Take Surveys. Earn Cash. Influence the Future of IT > > >Join SourceForge.net's Techsay panel and you'll get the chance to share > > >your > > >opinions on IT & business topics through brief surveys - and earn cash > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >< http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > >_______________________________________________ > > >QuantLib-users mailing list [hidden email] > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > >_________________________________________________________________ > >Be the first to hear what's new at MSN - sign up to our free newsletters! > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > _________________________________________________________________ MSN Hotmail is evolving – check out the new Windows Live Mail http://ideas.live.com ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users ----------------------------------------- ________________________________________________________ DTCC DISCLAIMER: This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please notify us immediately and delete the email and any attachments from your system. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070112/58ea6133/attachment.html |
In reply to this post by vittorio.distefano
Hi Toyin,
I think I'll ask Luigi or Nando to know the whole history of the class. I don't see the problem you're quoting with the bond schedule. I created about 100 bond's object using "TARGET" as calendar object and checked the cashflows with Bloomberg. Payment dates and accrual start and end dates seemed correct to me. Also their pricing in asset swap can be compared with Bloomberg ASW. So what I suggest is to wait for the new release, choose a bond and compare its cashflows analysis with Bloomberg. Chiara -----Original Message----- From: Toyin Akin [mailto:[hidden email]] Sent: Friday, January 12, 2007 12:58 PM To: FORNAROLA CHIARA; [hidden email] Cc: [hidden email] Subject: Re: [Quantlib-users] On the accuracy of quantlib addins Hi, Actually, it's a known fact that the refDates computed within a coupon object can be incorrect (unless it has been changed recently). I posted this issue some time last year and Luigi confirmed that this needed to be looked at. The refDates must be unAdusted dates for Bonds, however if you pass a holiday object to a schedule class, the resulting dates are adjusted for holidays and these are the new refDates. You will the have a series of long and short periods (differing by a few days if a weekend or holiday is hit). I agree that the payment dates will be adjusted and so they should be, but when actually calculating coupon period times (yearFractions), the refDates must be unAdjusted when the logic is processed by the dayCounter classes. Yes, if you simply display the dates of the Schedule, you produce the correct payment dates. QuantLib (unless it has changed recently), currently uses the adjusted dates for the coupons refDates parameters. Also, most bonds pay equal coupon amounts (ie - for a six month coupon period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for every coupon. Currently in most cases other than 30360 or Simple daycounters, if you display the schedule of coupons which are calculated as yearFraction*coupon*Nominal for each period you will end up will an array of values centered around 2.5, but not exactly 2.5 (according to our example above). The yearFraction is needed in order to compute the correct discount factor for discounting a bond flow (an internal variable is built up aggregating the yearFractions and then the value used for discounting). Thus because the yearFraction value can be incorrect because of the refDates, you are discounting at the wrong value. Best Regards, Toyin Akin. >From: "FORNAROLA CHIARA" <[hidden email]> >To: <[hidden email]>, <[hidden email]> >CC: <[hidden email]> >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 11:53:08 +0100 > >Hi Vittorio, > > > >QuantLib's Bond calculation doens't fail to calculate correctly bond's >price. > >In my opinion, the point you're spotting is that in QuantLib (I guess >you're using Version 0.3.14)only one type of yield calculation is >implemented (bonds with different coupon calculation type have different >compounding method, therefore unequivalent yields), so this can give you >misleading results when using yield to calculate bond price. > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: >IT0000366655 has semiannual frequency and calculation type used for the >Italian government BTPS issues; which triggers a T+3 settlement period and >accomodates long last coupon. This calculation type is different from the >one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), >which has annual frequency and German Government Bonds calculation type. >This last calculation type is used for German government and corporate >issues. It calculates Moosmueller yield, which discounts according to >simple interest. Government bonds, agencies, jumbos, and floaters generally >trade T+3, while all other bonds generally trade T+2. So using this bond as >a benchmark (I guess you're using YAS in Bloomberg) you're not comparing >apples to apples. > >My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 >08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > >My second recommendation is to pay attention when using YAS <go> if you're >comparing bonds with different compounding methods, and choose equivalent >yields. Using PFI <go> in Bloomberg will help you to find equivalent yield. > >Then I have a remark: why are you pricing corporate bonds using yield? I >don't think it's a current market practice. I mean, I've never seen a >trader using yield to quote bonds. Bonds traders use asset swap spreads >rather than z-spread. You can do the same with QuantLibAddin using >qlAssetSwap related functions. > >Regarding Calendar object you can pass "TARGET" calendar to construct a >bond object, and providing all static data for the bond correctly, will >lead you to the real schedule of the bond. If you have doubts on this, you >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > >Chiara > > > > > >Chiara Fornarola > > > >Equity & Fixed Income Markets Unit > >Banca Caboto Spa > >Piazzetta Giordano Dell'amore 3 > >20121 Milano > >Voice: +39 02 8021 5778 > >Fax: +39 02 8021 5299 > > > > > > > > > >Hi again, > > > >On a positive note though, if you want to compute ISMA, Simple, Moosmuller > >yield values, do not pass in a Calendar object or more rather, pass in a > >NullCalendar object. > > > >This is because these yield values do not take into consideration holidays > >and thus produces much better results (the unadjusted or refDates are > >correct). There are other issues, but you will produce much better results. > >Forget True yield. > > > >You can also try our product. We have a Bond Mini module for corporate > >Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and > >Bond Options. All for £79. > > > >Best Regards, > >Toyin Akin, > >CapeTools QuantTools. > >www.QuantTools.com > > > > > > >From: "Toyin Akin" <[hidden email]> > > >To: > > >[hidden email],[hidden email] > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > >Hi Vittorio, > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > >because > > >of the way unadjusted coupon dates are calculated. > > > > > >Basically, given an array of coupon objects that represent a bond > > >schedule > > >and given a DayCounter (ie - act365, 30360, actact), when a >yearfraction() > > >is requested for any coupon period within a Bond object, the unadjusted > > >dates underlying the coupon object are initially incorrect. > > > > > >Even though the logic within the DayCounter class is correct, many of > > >the > > >dayCounter classes make use of the unadjusted dates within the > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > >You also have the problem of short/long first/last coupon periods that > > >are > > >not treated correctly either. > > > > > >Best Regards, > > >Toyin Akin. > > >CapeTools QuantTools, > > >www.QuantTools.com > > > > > >>From: [hidden email] > > >>To: [hidden email] > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > >> > > >>Hi, > > >> > > >>I'm using quantlib to build a spread strategy for pricing corporates > > >>bonds. At the moment I have a problem with some bond types because the > > >>yields and the prices achieved with quantlib are different from those > > >>of bloomberg. I'm looking for an user with a good knowledge of > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > >>qlBondYield() e qlBondCleanPrice()], available some days to assessing > > >>togheter the accuracy of the library. > > >> > > >> > > >>Vittorio di Stefano mailto:[hidden email] > > >> > > >>SoftSolutions! > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > >>Tel: +39 035-22714-1 > > >>Fax: +39 035-22714-99 > > >>http://www.softsolutions.it <http://www.softsolutions.it/> > > >>************************************************** > > >> > > >>This document is strictly confidential and is intended for use by the > > >>addressee unless otherwise indicated. If you have received this e-mail > > >>in error we would > > >>be very grateful if you could please notify us immediately at > > >>mailto:[hidden email] <mailto:[hidden email]> and delete >this e-mail from your system. > > >> > > >>SoftSolutions! reserves the right to monitor all email communications > > >>through its internal and external networks. > > >> > > >>SoftSolutions! s.r.l. > > >> > > >>************************************************** > > >>-------------- next part -------------- > > >>An HTML attachment was scrubbed... > > >>URL: > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html> > > >>------------------------------------------------------------------------- > > >>Take Surveys. Earn Cash. Influence the Future of IT > > >>Join SourceForge.net's Techsay panel and you'll get the chance to share > > >>your > > >>opinions on IT & business topics through brief surveys - and earn cash > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > >>_______________________________________________ > > >>QuantLib-users mailing list > > >>[hidden email] > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > >_________________________________________________________________ > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > > > > > > >----------------------------------------------------------------------- > > >-- > > >Take Surveys. Earn Cash. Influence the Future of IT > > >Join SourceForge.net's Techsay panel and you'll get the chance to share > > >your > > >opinions on IT & business topics through brief surveys - and earn cash > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > >_______________________________________________ > > >QuantLib-users mailing list [hidden email] > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > >_________________________________________________________________ > >Be the first to hear what's new at MSN - sign up to our free newsletters! > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > _________________________________________________________________ MSN Hotmail is evolving - check out the new Windows Live Mail http://ideas.live.com |
Hi Chiara, Okay fair enough. The reason I mentioned the refDates is that I'm actually going by the dayCounter definitions (ISDA or is it ISMA of how yearFractions should be calculated). Unadjusted dates are part of this calculation. You can price lots of bonds, but if the majority of these do not hit weekends or holiday dates, then you will not really feel the effect. In fact I demostrated a case (posted last year within the forum) of a date period where the yearFraction gave the same values (0.5) for a 6 month period and a slightly less than 7 month period. I believe this was for a 30360 daycounter where the refDates were not passed in to the yearFraction() function. This logic (the last time I checked), was in the Yield() (Yield To Maturity) calculation of the Bond object. I was trying to calculate a long stub period. You mentioned a new version. Perhaps this has changed. Best Regards, Toyin Akin. >From: "FORNAROLA CHIARA" <[hidden email]> >To: "Toyin Akin" ><[hidden email]>,<[hidden email]> >CC: <[hidden email]> >Subject: RE: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 15:21:48 +0100 > >Hi Toyin, > >I think I'll ask Luigi or Nando to know the whole history of the class. >I don't see the problem you're quoting with the bond schedule. >I created about 100 bond's object using "TARGET" as calendar object and >checked the cashflows with Bloomberg. Payment dates and accrual start and >end dates seemed correct to me. Also their pricing in asset swap can be >compared with Bloomberg ASW. So what I suggest is to wait for the new >release, choose a bond and compare its cashflows analysis with Bloomberg. > >Chiara > >-----Original Message----- >From: Toyin Akin [mailto:[hidden email]] >Sent: Friday, January 12, 2007 12:58 PM >To: FORNAROLA CHIARA; [hidden email] >Cc: [hidden email] >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > >Hi, > >Actually, it's a known fact that the refDates computed within a coupon >object can be incorrect (unless it has been changed recently). I posted >this >issue some time last year and Luigi confirmed that this needed to be looked >at. > >The refDates must be unAdusted dates for Bonds, however if you pass a >holiday object to a schedule class, the resulting dates are adjusted for >holidays and these are the new refDates. > >You will the have a series of long and short periods (differing by a few >days if a weekend or holiday is hit). > >I agree that the payment dates will be adjusted and so they should be, but >when actually calculating coupon period times (yearFractions), the refDates >must be unAdjusted when the logic is processed by the dayCounter classes. >Yes, if you simply display the dates of the Schedule, you produce the >correct payment dates. > >QuantLib (unless it has changed recently), currently uses the adjusted >dates >for the coupons refDates parameters. > >Also, most bonds pay equal coupon amounts (ie - for a six month coupon >period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for every >coupon. Currently in most cases other than 30360 or Simple daycounters, if >you display the schedule of coupons which are calculated as > >yearFraction*coupon*Nominal for each period > >you will end up will an array of values centered around 2.5, but not >exactly >2.5 (according to our example above). > >The yearFraction is needed in order to compute the correct discount factor >for discounting a bond flow (an internal variable is built up aggregating >the yearFractions and then the value used for discounting). Thus because >the >yearFraction value can be incorrect because of the refDates, you are >discounting at the wrong value. > >Best Regards, >Toyin Akin. > > >From: "FORNAROLA CHIARA" <[hidden email]> > >To: <[hidden email]>, <[hidden email]> > >CC: <[hidden email]> > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > >Date: Fri, 12 Jan 2007 11:53:08 +0100 > > > >Hi Vittorio, > > > > > > > >QuantLib's Bond calculation doens't fail to calculate correctly bond's > >price. > > > >In my opinion, the point you're spotting is that in QuantLib (I guess > >you're using Version 0.3.14)only one type of yield calculation is > >implemented (bonds with different coupon calculation type have different > >compounding method, therefore unequivalent yields), so this can give you > >misleading results when using yield to calculate bond price. > > > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: > >IT0000366655 has semiannual frequency and calculation type used for the > >Italian government BTPS issues; which triggers a T+3 settlement period >and > >accomodates long last coupon. This calculation type is different from the > >one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), > >which has annual frequency and German Government Bonds calculation type. > >This last calculation type is used for German government and corporate > >issues. It calculates Moosmueller yield, which discounts according to > >simple interest. Government bonds, agencies, jumbos, and floaters >generally > >trade T+3, while all other bonds generally trade T+2. So using this bond >as > >a benchmark (I guess you're using YAS in Bloomberg) you're not comparing > >apples to apples. > > > >My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 > >08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > > > >My second recommendation is to pay attention when using YAS <go> if >you're > >comparing bonds with different compounding methods, and choose equivalent > >yields. Using PFI <go> in Bloomberg will help you to find equivalent >yield. > > > >Then I have a remark: why are you pricing corporate bonds using yield? I > >don't think it's a current market practice. I mean, I've never seen a > >trader using yield to quote bonds. Bonds traders use asset swap spreads > >rather than z-spread. You can do the same with QuantLibAddin using > >qlAssetSwap related functions. > > > >Regarding Calendar object you can pass "TARGET" calendar to construct a > >bond object, and providing all static data for the bond correctly, will > >lead you to the real schedule of the bond. If you have doubts on this, >you > >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > > > > > > > >Chiara > > > > > > > > > > > >Chiara Fornarola > > > > > > > >Equity & Fixed Income Markets Unit > > > >Banca Caboto Spa > > > >Piazzetta Giordano Dell'amore 3 > > > >20121 Milano > > > >Voice: +39 02 8021 5778 > > > >Fax: +39 02 8021 5299 > > > > > > > > > > > > > > > > > > > >Hi again, > > > > > > > >On a positive note though, if you want to compute ISMA, Simple, >Moosmuller > > > >yield values, do not pass in a Calendar object or more rather, pass in a > > > >NullCalendar object. > > > > > > > >This is because these yield values do not take into consideration >holidays > > > >and thus produces much better results (the unadjusted or refDates are > > > >correct). There are other issues, but you will produce much better >results. > > > >Forget True yield. > > > > > > > >You can also try our product. We have a Bond Mini module for corporate > > > >Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, > > > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and > > > >Bond Options. All for £79. > > > > > > > >Best Regards, > > > >Toyin Akin, > > > >CapeTools QuantTools. > > > >www.QuantTools.com > > > > > > > > > > > > >From: "Toyin Akin" <[hidden email]> > > > > >To: > > > > > >[hidden email],[hidden email] > > > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > > > > > > > >Hi Vittorio, > > > > > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > > > >because > > > > >of the way unadjusted coupon dates are calculated. > > > > > > > > > >Basically, given an array of coupon objects that represent a bond > > > > >schedule > > > > >and given a DayCounter (ie - act365, 30360, actact), when a > >yearfraction() > > > > >is requested for any coupon period within a Bond object, the unadjusted > > > > >dates underlying the coupon object are initially incorrect. > > > > > > > > > >Even though the logic within the DayCounter class is correct, many of > > > > >the > > > > >dayCounter classes make use of the unadjusted dates within the > > > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > > > > > >You also have the problem of short/long first/last coupon periods that > > > > >are > > > > >not treated correctly either. > > > > > > > > > >Best Regards, > > > > >Toyin Akin. > > > > >CapeTools QuantTools, > > > > >www.QuantTools.com > > > > > > > > > >>From: [hidden email] > > > > >>To: [hidden email] > > > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > > > >> > > > > >>Hi, > > > > >> > > > > >>I'm using quantlib to build a spread strategy for pricing corporates > > > > >>bonds. At the moment I have a problem with some bond types because the > > > > >>yields and the prices achieved with quantlib are different from those > > > > >>of bloomberg. I'm looking for an user with a good knowledge of > > > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > > > >>qlBondYield() e qlBondCleanPrice()], available some days to assessing > > > > >>togheter the accuracy of the library. > > > > >> > > > > >> > > > > >>Vittorio di Stefano mailto:[hidden email] > > > > >> > > > > >>SoftSolutions! > > > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > > > >>Tel: +39 035-22714-1 > > > > >>Fax: +39 035-22714-99 > > > > >>http://www.softsolutions.it <http://www.softsolutions.it/> > > > > >>************************************************** > > > > >> > > > > >>This document is strictly confidential and is intended for use by the > > > > >>addressee unless otherwise indicated. If you have received this e-mail > > > > >>in error we would > > > > >>be very grateful if you could please notify us immediately at > > > > >>mailto:[hidden email] <mailto:[hidden email]> and >delete > >this e-mail from your system. > > > > >> > > > > >>SoftSolutions! reserves the right to monitor all email communications > > > > >>through its internal and external networks. > > > > >> > > > > >>SoftSolutions! s.r.l. > > > > >> > > > > >>************************************************** > > > > >>-------------- next part -------------- > > > > >>An HTML attachment was scrubbed... > > > > >>URL: > > > > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html > ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html> > > > > > >>------------------------------------------------------------------------- > > > > >>Take Surveys. Earn Cash. Influence the Future of IT > > > > >>Join SourceForge.net's Techsay panel and you'll get the chance to >share > > > > >>your > > > > >>opinions on IT & business topics through brief surveys - and earn cash > > > > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > >>_______________________________________________ > > > > >>QuantLib-users mailing list > > > > >>[hidden email] > > > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > > > >_________________________________________________________________ > > > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > > > > > > > > > > > > > > > > >----------------------------------------------------------------------- > > > > >-- > > > > >Take Surveys. Earn Cash. Influence the Future of IT > > > > >Join SourceForge.net's Techsay panel and you'll get the chance to share > > > > >your > > > > >opinions on IT & business topics through brief surveys - and earn cash > > > > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > > > > > > > >_______________________________________________ > > > > >QuantLib-users mailing list [hidden email] > > > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > >_________________________________________________________________ > > > >Be the first to hear what's new at MSN - sign up to our free newsletters! > > > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > > > > > > > > > > > > > >_________________________________________________________________ >MSN Hotmail is evolving - check out the new Windows Live Mail >http://ideas.live.com > _________________________________________________________________ MSN Hotmail is evolving check out the new Windows Live Mail http://ideas.live.com |
In reply to this post by Guowen Han
Hi Guowen, I agree. I mention the refDates simply because that is the way ISDA defines how the dayCounters should compute yearFractions() (or is that ISMA?). The coupon payment shift may not be significant in terms of price, but I believe when you are computing yields (ie - ISMA), you may have differences of a couple of basis points or more. When you feed this into risk analysis and hedging...well I know in the swaps book world, when you conduct yieldcurve risk, shifting a tenor point by one basis point can lead to a theorectical millions of dollars change in your book. Besides, I believe that if the market convention is to pay 2,500 dollars per period, that's what you should compute. It's the definition. However as you say, if the market price is a consensus market clean price, then how the hell do you compare values!!! I will take a look at the latest QuantLib code. Toyin Akin, CapeTools QuantTools. >From: Guowen Han <[hidden email]> >To: "Toyin Akin" <[hidden email]> >CC: >[hidden email],[hidden email],[hidden email],[hidden email] >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 08:55:58 -0500 > >Hi, > >There is no way to compare the prices from different source. Different >models will have different results, even with simple discount bond, your >discount factor might be different from bloomberg's. In reality, the price >on bloomberg is a consensus market clean price not a theoretical clean >price. Also the effect because of the coupon payment shift should not be >significant. > >Thanks, > >Guowen > > > > >"Toyin Akin" <[hidden email]> >Sent by: [hidden email] >01/12/2007 06:57 AM > >To >[hidden email], [hidden email] >cc >[hidden email] >Subject >Re: [Quantlib-users] On the accuracy of quantlib addins > > > > > > > >Hi, > >Actually, it's a known fact that the refDates computed within a coupon >object can be incorrect (unless it has been changed recently). I posted >this >issue some time last year and Luigi confirmed that this needed to be >looked >at. > >The refDates must be unAdusted dates for Bonds, however if you pass a >holiday object to a schedule class, the resulting dates are adjusted for >holidays and these are the new refDates. > >You will the have a series of long and short periods (differing by a few >days if a weekend or holiday is hit). > >I agree that the payment dates will be adjusted and so they should be, but > >when actually calculating coupon period times (yearFractions), the >refDates >must be unAdjusted when the logic is processed by the dayCounter classes. >Yes, if you simply display the dates of the Schedule, you produce the >correct payment dates. > >QuantLib (unless it has changed recently), currently uses the adjusted >dates >for the coupons refDates parameters. > >Also, most bonds pay equal coupon amounts (ie - for a six month coupon >period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for >every >coupon. Currently in most cases other than 30360 or Simple daycounters, if > >you display the schedule of coupons which are calculated as > >yearFraction*coupon*Nominal for each period > >you will end up will an array of values centered around 2.5, but not >exactly >2.5 (according to our example above). > >The yearFraction is needed in order to compute the correct discount factor > >for discounting a bond flow (an internal variable is built up aggregating >the yearFractions and then the value used for discounting). Thus because >the >yearFraction value can be incorrect because of the refDates, you are >discounting at the wrong value. > >Best Regards, >Toyin Akin. > > >From: "FORNAROLA CHIARA" <[hidden email]> > >To: <[hidden email]>, <[hidden email]> > >CC: <[hidden email]> > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > >Date: Fri, 12 Jan 2007 11:53:08 +0100 > > > >Hi Vittorio, > > > > > > > >QuantLib's Bond calculation doens't fail to calculate correctly bond's > >price. > > > >In my opinion, the point you're spotting is that in QuantLib (I guess > >you're using Version 0.3.14)only one type of yield calculation is > >implemented (bonds with different coupon calculation type have different > >compounding method, therefore unequivalent yields), so this can give you > >misleading results when using yield to calculate bond price. > > > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: > >IT0000366655 has semiannual frequency and calculation type used for the > >Italian government BTPS issues; which triggers a T+3 settlement period >and > >accomodates long last coupon. This calculation type is different from the > > >one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), > >which has annual frequency and German Government Bonds calculation type. > >This last calculation type is used for German government and corporate > >issues. It calculates Moosmueller yield, which discounts according to > >simple interest. Government bonds, agencies, jumbos, and floaters >generally > >trade T+3, while all other bonds generally trade T+2. So using this bond >as > >a benchmark (I guess you're using YAS in Bloomberg) you're not comparing > >apples to apples. > > > >My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 > >08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > > > >My second recommendation is to pay attention when using YAS <go> if >you're > >comparing bonds with different compounding methods, and choose equivalent > > >yields. Using PFI <go> in Bloomberg will help you to find equivalent >yield. > > > >Then I have a remark: why are you pricing corporate bonds using yield? I > >don't think it's a current market practice. I mean, I've never seen a > >trader using yield to quote bonds. Bonds traders use asset swap spreads > >rather than z-spread. You can do the same with QuantLibAddin using > >qlAssetSwap related functions. > > > >Regarding Calendar object you can pass "TARGET" calendar to construct a > >bond object, and providing all static data for the bond correctly, will > >lead you to the real schedule of the bond. If you have doubts on this, >you > >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > > > > > > > >Chiara > > > > > > > > > > > >Chiara Fornarola > > > > > > > >Equity & Fixed Income Markets Unit > > > >Banca Caboto Spa > > > >Piazzetta Giordano Dell'amore 3 > > > >20121 Milano > > > >Voice: +39 02 8021 5778 > > > >Fax: +39 02 8021 5299 > > > > > > > > > > > > > > > > > > > >Hi again, > > > > > > > >On a positive note though, if you want to compute ISMA, Simple, >Moosmuller > > > >yield values, do not pass in a Calendar object or more rather, pass in a > > > >NullCalendar object. > > > > > > > >This is because these yield values do not take into consideration >holidays > > > >and thus produces much better results (the unadjusted or refDates are > > > >correct). There are other issues, but you will produce much better >results. > > > >Forget True yield. > > > > > > > >You can also try our product. We have a Bond Mini module for corporate > > > >Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, > > > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and > > > >Bond Options. All for £79. > > > > > > > >Best Regards, > > > >Toyin Akin, > > > >CapeTools QuantTools. > > > >www.QuantTools.com > > > > > > > > > > > > >From: "Toyin Akin" <[hidden email]> > > > > >To: > > > > > >[hidden email],[hidden email] > > > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > > > > > > > >Hi Vittorio, > > > > > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > > > >because > > > > >of the way unadjusted coupon dates are calculated. > > > > > > > > > >Basically, given an array of coupon objects that represent a bond > > > > >schedule > > > > >and given a DayCounter (ie - act365, 30360, actact), when a > >yearfraction() > > > > >is requested for any coupon period within a Bond object, the unadjusted > > > > >dates underlying the coupon object are initially incorrect. > > > > > > > > > >Even though the logic within the DayCounter class is correct, many of > > > > >the > > > > >dayCounter classes make use of the unadjusted dates within the > > > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > > > > > >You also have the problem of short/long first/last coupon periods that > > > > >are > > > > >not treated correctly either. > > > > > > > > > >Best Regards, > > > > >Toyin Akin. > > > > >CapeTools QuantTools, > > > > >www.QuantTools.com > > > > > > > > > >>From: [hidden email] > > > > >>To: [hidden email] > > > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > > > >> > > > > >>Hi, > > > > >> > > > > >>I'm using quantlib to build a spread strategy for pricing corporates > > > > >>bonds. At the moment I have a problem with some bond types because the > > > > >>yields and the prices achieved with quantlib are different from those > > > > >>of bloomberg. I'm looking for an user with a good knowledge of > > > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > > > >>qlBondYield() e qlBondCleanPrice()], available some days to assessing > > > > >>togheter the accuracy of the library. > > > > >> > > > > >> > > > > >>Vittorio di Stefano mailto:[hidden email] > > > > >> > > > > >>SoftSolutions! > > > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > > > >>Tel: +39 035-22714-1 > > > > >>Fax: +39 035-22714-99 > > > > >>http://www.softsolutions.it <http://www.softsolutions.it/> > > > > >>************************************************** > > > > >> > > > > >>This document is strictly confidential and is intended for use by the > > > > >>addressee unless otherwise indicated. If you have received this e-mail > > > > >>in error we would > > > > >>be very grateful if you could please notify us immediately at > > > > >>mailto:[hidden email] <mailto:[hidden email]> and >delete > >this e-mail from your system. > > > > >> > > > > >>SoftSolutions! reserves the right to monitor all email communications > > > > >>through its internal and external networks. > > > > >> > > > > >>SoftSolutions! s.r.l. > > > > >> > > > > >>************************************************** > > > > >>-------------- next part -------------- > > > > >>An HTML attachment was scrubbed... > > > > >>URL: > > > > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html > > >< >http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html > > > > > > > >>------------------------------------------------------------------------- > > > > >>Take Surveys. Earn Cash. Influence the Future of IT > > > > >>Join SourceForge.net's Techsay panel and you'll get the chance to >share > > > > >>your > > > > >>opinions on IT & business topics through brief surveys - and earn cash > > > > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > >< >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > >>_______________________________________________ > > > > >>QuantLib-users mailing list > > > > >>[hidden email] > > > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > > > >_________________________________________________________________ > > > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > > > > > > > > > > > > > > > > >----------------------------------------------------------------------- > > > > >-- > > > > >Take Surveys. Earn Cash. Influence the Future of IT > > > > >Join SourceForge.net's Techsay panel and you'll get the chance to share > > > > >your > > > > >opinions on IT & business topics through brief surveys - and earn cash > > > > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > >< >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > > > > > > > >_______________________________________________ > > > > >QuantLib-users mailing list [hidden email] > > > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > >_________________________________________________________________ > > > >Be the first to hear what's new at MSN - sign up to our free newsletters! > > > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > > > > > > > > > > > > > >_________________________________________________________________ >MSN Hotmail is evolving â check out the new Windows Live Mail >http://ideas.live.com > > >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys - and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >QuantLib-users mailing list >[hidden email] >https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > >----------------------------------------- >________________________________________________________ >DTCC DISCLAIMER: This email and any files transmitted with it are >confidential and intended solely for the use of the individual or >entity to whom they are addressed. If you have received this email >in error, please notify us immediately and delete the email and any >attachments from your system. The recipient should check this email >and any attachments for the presence of viruses. The company >accepts no liability for any damage caused by any virus transmitted >by this email. _________________________________________________________________ MSN Hotmail is evolving check out the new Windows Live Mail http://ideas.live.com |
In reply to this post by FORNAROLA CHIARA
Hi, I just looked within quantLib source safe tree and it looks like the same logic as before is still there. In a nutshell, apart from the possible short/long start/end coupon periods, QuantLib sets every coupon's unadjusted date (inbetween the first and last coupon period) equal to the adjusted period date. I believe that this is not correct. It makes a huge difference when you are computing Bond yearFractions... I believe this link shows the calculations... http://www.isda.org/c_and_a/pdf/mktc1198.pdf Again I could be wrong and that all refDate dates for coupon periods between the far coupon periods should equal the adjusted dates, but I do remember when I raised this issue with Luigi he agreed with this and refered the issue to nando. As an example, I guess the quantLib team can let me know if the following is the correct behaviour... use the yearFraction() function to compute a period between 1/Jan/2005 and 30/Jun/2005 with an actact Bond Basis. The function will compute a value of 0.5. Now do the following move the end date from 18/Jun/2005 to 17/Jul/2005 keeping the same start date. The function still computes 0.5 for every period!! This is true if you pass in the same refDate as the adjusted date. This example simulates the end date possibly being adjusted from the unAdjusted date of 30/Jun/2005 to a date between 18/Jun/2005 to 17/Jul/2005. If however you pass in the unAdjusted dates to the refDate parameters (ie - the original period is 1/Jan/2005 to 30/Jun/2005), you get more realistic values for each set of values you compute. Thus given this dayCounter (actact Bond Basis), you may have coupon periods where there may be up to 5 holiday dates adjustments (ie - easter) and yet the day fraction will be computed as 0.5. I don't know about you, but this looks a bit fishy to me. If it's market convention then it's market convention... Best Regards, Toyin Akin. >From: "FORNAROLA CHIARA" <[hidden email]> >To: "Toyin Akin" ><[hidden email]>,<[hidden email]> >CC: <[hidden email]> >Subject: RE: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 15:21:48 +0100 > >Hi Toyin, > >I think I'll ask Luigi or Nando to know the whole history of the class. >I don't see the problem you're quoting with the bond schedule. >I created about 100 bond's object using "TARGET" as calendar object and >checked the cashflows with Bloomberg. Payment dates and accrual start and >end dates seemed correct to me. Also their pricing in asset swap can be >compared with Bloomberg ASW. So what I suggest is to wait for the new >release, choose a bond and compare its cashflows analysis with Bloomberg. > >Chiara > >-----Original Message----- >From: Toyin Akin [mailto:[hidden email]] >Sent: Friday, January 12, 2007 12:58 PM >To: FORNAROLA CHIARA; [hidden email] >Cc: [hidden email] >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > >Hi, > >Actually, it's a known fact that the refDates computed within a coupon >object can be incorrect (unless it has been changed recently). I posted >this >issue some time last year and Luigi confirmed that this needed to be looked >at. > >The refDates must be unAdusted dates for Bonds, however if you pass a >holiday object to a schedule class, the resulting dates are adjusted for >holidays and these are the new refDates. > >You will the have a series of long and short periods (differing by a few >days if a weekend or holiday is hit). > >I agree that the payment dates will be adjusted and so they should be, but >when actually calculating coupon period times (yearFractions), the refDates >must be unAdjusted when the logic is processed by the dayCounter classes. >Yes, if you simply display the dates of the Schedule, you produce the >correct payment dates. > >QuantLib (unless it has changed recently), currently uses the adjusted >dates >for the coupons refDates parameters. > >Also, most bonds pay equal coupon amounts (ie - for a six month coupon >period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for every >coupon. Currently in most cases other than 30360 or Simple daycounters, if >you display the schedule of coupons which are calculated as > >yearFraction*coupon*Nominal for each period > >you will end up will an array of values centered around 2.5, but not >exactly >2.5 (according to our example above). > >The yearFraction is needed in order to compute the correct discount factor >for discounting a bond flow (an internal variable is built up aggregating >the yearFractions and then the value used for discounting). Thus because >the >yearFraction value can be incorrect because of the refDates, you are >discounting at the wrong value. > >Best Regards, >Toyin Akin. > > >From: "FORNAROLA CHIARA" <[hidden email]> > >To: <[hidden email]>, <[hidden email]> > >CC: <[hidden email]> > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > >Date: Fri, 12 Jan 2007 11:53:08 +0100 > > > >Hi Vittorio, > > > > > > > >QuantLib's Bond calculation doens't fail to calculate correctly bond's > >price. > > > >In my opinion, the point you're spotting is that in QuantLib (I guess > >you're using Version 0.3.14)only one type of yield calculation is > >implemented (bonds with different coupon calculation type have different > >compounding method, therefore unequivalent yields), so this can give you > >misleading results when using yield to calculate bond price. > > > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: > >IT0000366655 has semiannual frequency and calculation type used for the > >Italian government BTPS issues; which triggers a T+3 settlement period >and > >accomodates long last coupon. This calculation type is different from the > >one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), > >which has annual frequency and German Government Bonds calculation type. > >This last calculation type is used for German government and corporate > >issues. It calculates Moosmueller yield, which discounts according to > >simple interest. Government bonds, agencies, jumbos, and floaters >generally > >trade T+3, while all other bonds generally trade T+2. So using this bond >as > >a benchmark (I guess you're using YAS in Bloomberg) you're not comparing > >apples to apples. > > > >My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 > >08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > > > >My second recommendation is to pay attention when using YAS <go> if >you're > >comparing bonds with different compounding methods, and choose equivalent > >yields. Using PFI <go> in Bloomberg will help you to find equivalent >yield. > > > >Then I have a remark: why are you pricing corporate bonds using yield? I > >don't think it's a current market practice. I mean, I've never seen a > >trader using yield to quote bonds. Bonds traders use asset swap spreads > >rather than z-spread. You can do the same with QuantLibAddin using > >qlAssetSwap related functions. > > > >Regarding Calendar object you can pass "TARGET" calendar to construct a > >bond object, and providing all static data for the bond correctly, will > >lead you to the real schedule of the bond. If you have doubts on this, >you > >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > > > > > > > >Chiara > > > > > > > > > > > >Chiara Fornarola > > > > > > > >Equity & Fixed Income Markets Unit > > > >Banca Caboto Spa > > > >Piazzetta Giordano Dell'amore 3 > > > >20121 Milano > > > >Voice: +39 02 8021 5778 > > > >Fax: +39 02 8021 5299 > > > > > > > > > > > > > > > > > > > >Hi again, > > > > > > > >On a positive note though, if you want to compute ISMA, Simple, >Moosmuller > > > >yield values, do not pass in a Calendar object or more rather, pass in a > > > >NullCalendar object. > > > > > > > >This is because these yield values do not take into consideration >holidays > > > >and thus produces much better results (the unadjusted or refDates are > > > >correct). There are other issues, but you will produce much better >results. > > > >Forget True yield. > > > > > > > >You can also try our product. We have a Bond Mini module for corporate > > > >Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, > > > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and > > > >Bond Options. All for £79. > > > > > > > >Best Regards, > > > >Toyin Akin, > > > >CapeTools QuantTools. > > > >www.QuantTools.com > > > > > > > > > > > > >From: "Toyin Akin" <[hidden email]> > > > > >To: > > > > > >[hidden email],[hidden email] > > > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > > > > > > > >Hi Vittorio, > > > > > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > > > >because > > > > >of the way unadjusted coupon dates are calculated. > > > > > > > > > >Basically, given an array of coupon objects that represent a bond > > > > >schedule > > > > >and given a DayCounter (ie - act365, 30360, actact), when a > >yearfraction() > > > > >is requested for any coupon period within a Bond object, the unadjusted > > > > >dates underlying the coupon object are initially incorrect. > > > > > > > > > >Even though the logic within the DayCounter class is correct, many of > > > > >the > > > > >dayCounter classes make use of the unadjusted dates within the > > > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > > > > > >You also have the problem of short/long first/last coupon periods that > > > > >are > > > > >not treated correctly either. > > > > > > > > > >Best Regards, > > > > >Toyin Akin. > > > > >CapeTools QuantTools, > > > > >www.QuantTools.com > > > > > > > > > >>From: [hidden email] > > > > >>To: [hidden email] > > > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > > > >> > > > > >>Hi, > > > > >> > > > > >>I'm using quantlib to build a spread strategy for pricing corporates > > > > >>bonds. At the moment I have a problem with some bond types because the > > > > >>yields and the prices achieved with quantlib are different from those > > > > >>of bloomberg. I'm looking for an user with a good knowledge of > > > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > > > >>qlBondYield() e qlBondCleanPrice()], available some days to assessing > > > > >>togheter the accuracy of the library. > > > > >> > > > > >> > > > > >>Vittorio di Stefano mailto:[hidden email] > > > > >> > > > > >>SoftSolutions! > > > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > > > >>Tel: +39 035-22714-1 > > > > >>Fax: +39 035-22714-99 > > > > >>http://www.softsolutions.it <http://www.softsolutions.it/> > > > > >>************************************************** > > > > >> > > > > >>This document is strictly confidential and is intended for use by the > > > > >>addressee unless otherwise indicated. If you have received this e-mail > > > > >>in error we would > > > > >>be very grateful if you could please notify us immediately at > > > > >>mailto:[hidden email] <mailto:[hidden email]> and >delete > >this e-mail from your system. > > > > >> > > > > >>SoftSolutions! reserves the right to monitor all email communications > > > > >>through its internal and external networks. > > > > >> > > > > >>SoftSolutions! s.r.l. > > > > >> > > > > >>************************************************** > > > > >>-------------- next part -------------- > > > > >>An HTML attachment was scrubbed... > > > > >>URL: > > > > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html > ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html> > > > > > >>------------------------------------------------------------------------- > > > > >>Take Surveys. Earn Cash. Influence the Future of IT > > > > >>Join SourceForge.net's Techsay panel and you'll get the chance to >share > > > > >>your > > > > >>opinions on IT & business topics through brief surveys - and earn cash > > > > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > >>_______________________________________________ > > > > >>QuantLib-users mailing list > > > > >>[hidden email] > > > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > > > >_________________________________________________________________ > > > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > > > > > > > > > > > > > > > > >----------------------------------------------------------------------- > > > > >-- > > > > >Take Surveys. Earn Cash. Influence the Future of IT > > > > >Join SourceForge.net's Techsay panel and you'll get the chance to share > > > > >your > > > > >opinions on IT & business topics through brief surveys - and earn cash > > > > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > > > > > > > >_______________________________________________ > > > > >QuantLib-users mailing list [hidden email] > > > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > >_________________________________________________________________ > > > >Be the first to hear what's new at MSN - sign up to our free newsletters! > > > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > > > > > > > > > > > > > >_________________________________________________________________ >MSN Hotmail is evolving - check out the new Windows Live Mail >http://ideas.live.com > _________________________________________________________________ MSN Hotmail is evolving check out the new Windows Live Mail http://ideas.live.com |
In reply to this post by Toyin Akin
You have to assume the market is rational, which means the market price
should be very close to the therotical price. But keep in mind, can you guarantees your model can exactly produce the therotical price? Thanks, Guowen "Toyin Akin" <[hidden email]> 01/12/2007 10:08 AM To Guowen Han <[hidden email]> cc [hidden email], [hidden email], [hidden email], [hidden email] Subject Re: [Quantlib-users] On the accuracy of quantlib addins Hi Guowen, I agree. I mention the refDates simply because that is the way ISDA defines how the dayCounters should compute yearFractions() (or is that ISMA?). The coupon payment shift may not be significant in terms of price, but I believe when you are computing yields (ie - ISMA), you may have differences of a couple of basis points or more. When you feed this into risk analysis and hedging...well I know in the swaps book world, when you conduct yieldcurve risk, shifting a tenor point by one basis point can lead to a theorectical millions of dollars change in your book. Besides, I believe that if the market convention is to pay 2,500 dollars per period, that's what you should compute. It's the definition. However as you say, if the market price is a consensus market clean price, then how the hell do you compare values!!! I will take a look at the latest QuantLib code. Toyin Akin, CapeTools QuantTools. >From: Guowen Han <[hidden email]> >To: "Toyin Akin" <[hidden email]> >CC: >[hidden email],[hidden email],[hidden email],[hidden email] >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 08:55:58 -0500 > >Hi, > >There is no way to compare the prices from different source. Different >models will have different results, even with simple discount bond, your >discount factor might be different from bloomberg's. In reality, the >on bloomberg is a consensus market clean price not a theoretical clean >price. Also the effect because of the coupon payment shift should not be >significant. > >Thanks, > >Guowen > > > > >"Toyin Akin" <[hidden email]> >Sent by: [hidden email] >01/12/2007 06:57 AM > >To >[hidden email], [hidden email] >cc >[hidden email] >Subject >Re: [Quantlib-users] On the accuracy of quantlib addins > > > > > > > >Hi, > >Actually, it's a known fact that the refDates computed within a coupon >object can be incorrect (unless it has been changed recently). I posted >this >issue some time last year and Luigi confirmed that this needed to be >looked >at. > >The refDates must be unAdusted dates for Bonds, however if you pass a >holiday object to a schedule class, the resulting dates are adjusted for >holidays and these are the new refDates. > >You will the have a series of long and short periods (differing by a few >days if a weekend or holiday is hit). > >I agree that the payment dates will be adjusted and so they should be, > >when actually calculating coupon period times (yearFractions), the >refDates >must be unAdjusted when the logic is processed by the dayCounter classes. >Yes, if you simply display the dates of the Schedule, you produce the >correct payment dates. > >QuantLib (unless it has changed recently), currently uses the adjusted >dates >for the coupons refDates parameters. > >Also, most bonds pay equal coupon amounts (ie - for a six month coupon >period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for >every >coupon. Currently in most cases other than 30360 or Simple daycounters, > >you display the schedule of coupons which are calculated as > >yearFraction*coupon*Nominal for each period > >you will end up will an array of values centered around 2.5, but not >exactly >2.5 (according to our example above). > >The yearFraction is needed in order to compute the correct discount > >for discounting a bond flow (an internal variable is built up aggregating >the yearFractions and then the value used for discounting). Thus because >the >yearFraction value can be incorrect because of the refDates, you are >discounting at the wrong value. > >Best Regards, >Toyin Akin. > > >From: "FORNAROLA CHIARA" <[hidden email]> > >To: <[hidden email]>, <[hidden email]> > >CC: <[hidden email]> > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > >Date: Fri, 12 Jan 2007 11:53:08 +0100 > > > >Hi Vittorio, > > > > > > > >QuantLib's Bond calculation doens't fail to calculate correctly bond's > >price. > > > >In my opinion, the point you're spotting is that in QuantLib (I guess > >you're using Version 0.3.14)only one type of yield calculation is > >implemented (bonds with different coupon calculation type have > >compounding method, therefore unequivalent yields), so this can give you > >misleading results when using yield to calculate bond price. > > > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: > >IT0000366655 has semiannual frequency and calculation type used for the > >Italian government BTPS issues; which triggers a T+3 settlement period >and > >accomodates long last coupon. This calculation type is different from the > > >one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), > >which has annual frequency and German Government Bonds calculation type. > >This last calculation type is used for German government and corporate > >issues. It calculates Moosmueller yield, which discounts according to > >simple interest. Government bonds, agencies, jumbos, and floaters >generally > >trade T+3, while all other bonds generally trade T+2. So using this bond >as > >a benchmark (I guess you're using YAS in Bloomberg) you're not comparing > >apples to apples. > > > >My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 > >08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > > > >My second recommendation is to pay attention when using YAS <go> if >you're > >comparing bonds with different compounding methods, and choose equivalent > > >yields. Using PFI <go> in Bloomberg will help you to find equivalent >yield. > > > >Then I have a remark: why are you pricing corporate bonds using yield? I > >don't think it's a current market practice. I mean, I've never seen a > >trader using yield to quote bonds. Bonds traders use asset swap spreads > >rather than z-spread. You can do the same with QuantLibAddin using > >qlAssetSwap related functions. > > > >Regarding Calendar object you can pass "TARGET" calendar to construct a > >bond object, and providing all static data for the bond correctly, will > >lead you to the real schedule of the bond. If you have doubts on this, >you > >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > > > > > > > >Chiara > > > > > > > > > > > >Chiara Fornarola > > > > > > > >Equity & Fixed Income Markets Unit > > > >Banca Caboto Spa > > > >Piazzetta Giordano Dell'amore 3 > > > >20121 Milano > > > >Voice: +39 02 8021 5778 > > > >Fax: +39 02 8021 5299 > > > > > > > > > > > > > > > > > > > >Hi again, > > > > > > > >On a positive note though, if you want to compute ISMA, Simple, >Moosmuller > > > >yield values, do not pass in a Calendar object or more rather, pass in > > > >NullCalendar object. > > > > > > > >This is because these yield values do not take into consideration >holidays > > > >and thus produces much better results (the unadjusted or refDates are > > > >correct). There are other issues, but you will produce much better >results. > > > >Forget True yield. > > > > > > > >You can also try our product. We have a Bond Mini module for corporate > > > >Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, > > > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds > > > >Bond Options. All for £79. > > > > > > > >Best Regards, > > > >Toyin Akin, > > > >CapeTools QuantTools. > > > >www.QuantTools.com > > > > > > > > > > > > >From: "Toyin Akin" <[hidden email]> > > > > >To: > > > > > >[hidden email],[hidden email] > > > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > > > > > > > >Hi Vittorio, > > > > > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > > > >because > > > > >of the way unadjusted coupon dates are calculated. > > > > > > > > > >Basically, given an array of coupon objects that represent a bond > > > > >schedule > > > > >and given a DayCounter (ie - act365, 30360, actact), when a > >yearfraction() > > > > >is requested for any coupon period within a Bond object, the > > > > >dates underlying the coupon object are initially incorrect. > > > > > > > > > >Even though the logic within the DayCounter class is correct, many of > > > > >the > > > > >dayCounter classes make use of the unadjusted dates within the > > > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > > > > > >You also have the problem of short/long first/last coupon periods > > > > >are > > > > >not treated correctly either. > > > > > > > > > >Best Regards, > > > > >Toyin Akin. > > > > >CapeTools QuantTools, > > > > >www.QuantTools.com > > > > > > > > > >>From: [hidden email] > > > > >>To: [hidden email] > > > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > > > >> > > > > >>Hi, > > > > >> > > > > >>I'm using quantlib to build a spread strategy for pricing corporates > > > > >>bonds. At the moment I have a problem with some bond types because > > > > >>yields and the prices achieved with quantlib are different from those > > > > >>of bloomberg. I'm looking for an user with a good knowledge of > > > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > > > >>qlBondYield() e qlBondCleanPrice()], available some days to assessing > > > > >>togheter the accuracy of the library. > > > > >> > > > > >> > > > > >>Vittorio di Stefano mailto:[hidden email] > > > > >> > > > > >>SoftSolutions! > > > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > > > >>Tel: +39 035-22714-1 > > > > >>Fax: +39 035-22714-99 > > > > >>http://www.softsolutions.it <http://www.softsolutions.it/> > > > > >>************************************************** > > > > >> > > > > >>This document is strictly confidential and is intended for use by > > > > >>addressee unless otherwise indicated. If you have received this > > > > >>in error we would > > > > >>be very grateful if you could please notify us immediately at > > > > >>mailto:[hidden email] <mailto:[hidden email]> and >delete > >this e-mail from your system. > > > > >> > > > > >>SoftSolutions! reserves the right to monitor all email > > > > >>through its internal and external networks. > > > > >> > > > > >>SoftSolutions! s.r.l. > > > > >> > > > > >>************************************************** > > > > >>-------------- next part -------------- > > > > >>An HTML attachment was scrubbed... > > > > >>URL: > > > > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html > > >< >http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html > > > > > > > >>------------------------------------------------------------------------- > > > > >>Take Surveys. Earn Cash. Influence the Future of IT > > > > >>Join SourceForge.net's Techsay panel and you'll get the chance to >share > > > > >>your > > > > >>opinions on IT & business topics through brief surveys - and earn > > > > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > >< >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > >>_______________________________________________ > > > > >>QuantLib-users mailing list > > > > >>[hidden email] > > > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > > > >_________________________________________________________________ > > > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > > > > > > > > > > > > > > > > >----------------------------------------------------------------------- > > > > >-- > > > > >Take Surveys. Earn Cash. Influence the Future of IT > > > > >Join SourceForge.net's Techsay panel and you'll get the chance to > > > > >your > > > > >opinions on IT & business topics through brief surveys - and earn cash > > > > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > >< >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > > > > > > > >_______________________________________________ > > > > >QuantLib-users mailing list [hidden email] > > > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > >_________________________________________________________________ > > > >Be the first to hear what's new at MSN - sign up to our free > > > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > > > > > > > > > > > > > >_________________________________________________________________ >MSN Hotmail is evolving – check out the new Windows Live Mail >http://ideas.live.com > > >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys - and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >QuantLib-users mailing list >[hidden email] >https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > >----------------------------------------- >________________________________________________________ >DTCC DISCLAIMER: This email and any files transmitted with it are >confidential and intended solely for the use of the individual or >entity to whom they are addressed. If you have received this email >in error, please notify us immediately and delete the email and any >attachments from your system. The recipient should check this email >and any attachments for the presence of viruses. The company >accepts no liability for any damage caused by any virus transmitted >by this email. _________________________________________________________________ MSN Hotmail is evolving – check out the new Windows Live Mail http://ideas.live.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070112/58e0d5aa/attachment.html |
In reply to this post by vittorio.distefano
Hi Toyin, I think I'll ask Luigi or Nando to know the whole history of the class. I don't see the problem you're quoting with the bond schedule. I created about 100 bond's object using "TARGET" as calendar object and checked the cashflows with Bloomberg. Payment dates and accrual start and end dates seemed correct to me. Also their pricing in asset swap can be compared with Bloomberg ASW. So what I suggest is to wait for the new release, choose a bond and compare its cashflows analysis with Bloomberg. Chiara -----Original Message----- From: Toyin Akin [mailto:[hidden email]] Sent: Friday, January 12, 2007 12:58 PM To: FORNAROLA CHIARA; [hidden email] Cc: [hidden email] Subject: Re: [Quantlib-users] On the accuracy of quantlib addins Hi, Actually, it's a known fact that the refDates computed within a coupon object can be incorrect (unless it has been changed recently). I posted this issue some time last year and Luigi confirmed that this needed to be looked at. The refDates must be unAdusted dates for Bonds, however if you pass a holiday object to a schedule class, the resulting dates are adjusted for holidays and these are the new refDates. You will the have a series of long and short periods (differing by a few days if a weekend or holiday is hit). I agree that the payment dates will be adjusted and so they should be, but when actually calculating coupon period times (yearFractions), the refDates must be unAdjusted when the logic is processed by the dayCounter classes. Yes, if you simply display the dates of the Schedule, you produce the correct payment dates. QuantLib (unless it has changed recently), currently uses the adjusted dates for the coupons refDates parameters. Also, most bonds pay equal coupon amounts (ie - for a six month coupon period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for every coupon. Currently in most cases other than 30360 or Simple daycounters, if you display the schedule of coupons which are calculated as yearFraction*coupon*Nominal for each period you will end up will an array of values centered around 2.5, but not exactly 2.5 (according to our example above). The yearFraction is needed in order to compute the correct discount factor for discounting a bond flow (an internal variable is built up aggregating the yearFractions and then the value used for discounting). Thus because the yearFraction value can be incorrect because of the refDates, you are discounting at the wrong value. Best Regards, Toyin Akin. |
In reply to this post by vittorio.distefano
Hi
I know it's not easy to line up two different environments like your Bloomberg and your QuantLibXL, but is not impossible, for example you can replicate BBG Yield curve in excel or you can upload your yield curve in BBG. You have to work a bit to obtain this but you can reach good results. About theoretical price in Bloomberg you can see them for example when you type ASW <go> after selecting a bond, the implied value shown in the gross spread valuation section is the bond theoretical clean value, you can also obtain this information by using other Bloomberg calculators for asset swap or zeta spread (YAS <go>) and inputing a value of the spread equal to zero, then you will obtain the bond theoretical clean price. Hope this will help. Regards Chiara -----Original Message----- From: Guowen Han [mailto:[hidden email]] Sent: Friday, January 12, 2007 2:56 PM To: Toyin Akin Cc: FORNAROLA CHIARA; [hidden email]; [hidden email]; [hidden email] Subject: Re: [Quantlib-users] On the accuracy of quantlib addins Hi, There is no way to compare the prices from different source. Different models will have different results, even with simple discount bond, your discount factor might be different from bloomberg's. In reality, the price on bloomberg is a consensus market clean price not a theoretical clean price. Also the effect because of the coupon payment shift should not be significant. Thanks, Guowen "Toyin Akin" <[hidden email]> Sent by: [hidden email] 01/12/2007 06:57 AM To [hidden email], [hidden email] cc [hidden email] Subject Re: [Quantlib-users] On the accuracy of quantlib addins Hi, Actually, it's a known fact that the refDates computed within a coupon object can be incorrect (unless it has been changed recently). I posted this issue some time last year and Luigi confirmed that this needed to be looked at. The refDates must be unAdusted dates for Bonds, however if you pass a holiday object to a schedule class, the resulting dates are adjusted for holidays and these are the new refDates. You will the have a series of long and short periods (differing by a few days if a weekend or holiday is hit). I agree that the payment dates will be adjusted and so they should be, but when actually calculating coupon period times (yearFractions), the refDates must be unAdjusted when the logic is processed by the dayCounter classes. Yes, if you simply display the dates of the Schedule, you produce the correct payment dates. QuantLib (unless it has changed recently), currently uses the adjusted dates for the coupons refDates parameters. Also, most bonds pay equal coupon amounts (ie - for a six month coupon period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for every coupon. Currently in most cases other than 30360 or Simple daycounters, if you display the schedule of coupons which are calculated as yearFraction*coupon*Nominal for each period you will end up will an array of values centered around 2.5, but not exactly 2.5 (according to our example above). The yearFraction is needed in order to compute the correct discount factor for discounting a bond flow (an internal variable is built up aggregating the yearFractions and then the value used for discounting). Thus because the yearFraction value can be incorrect because of the refDates, you are discounting at the wrong value. Best Regards, Toyin Akin. >From: "FORNAROLA CHIARA" <[hidden email]> >To: <[hidden email]>, <[hidden email]> >CC: <[hidden email]> >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 11:53:08 +0100 > >Hi Vittorio, > > > >QuantLib's Bond calculation doens't fail to calculate correctly bond's >price. > >In my opinion, the point you're spotting is that in QuantLib (I guess >you're using Version 0.3.14)only one type of yield calculation is >implemented (bonds with different coupon calculation type have different >compounding method, therefore unequivalent yields), so this can give you >misleading results when using yield to calculate bond price. > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: >IT0000366655 has semiannual frequency and calculation type used for the >Italian government BTPS issues; which triggers a T+3 settlement period and >accomodates long last coupon. This calculation type is different from the >one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: DE0001134922), >which has annual frequency and German Government Bonds calculation type. >This last calculation type is used for German government and corporate >issues. It calculates Moosmueller yield, which discounts according to >simple interest. Government bonds, agencies, jumbos, and floaters generally >trade T+3, while all other bonds generally trade T+2. So using this bond as >a benchmark (I guess you're using YAS in Bloomberg) you're not comparing >apples to apples. > >My first recommendation is to use a different benchmark (e.g. BTPS 3 3/4 >08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > >My second recommendation is to pay attention when using YAS <go> if you're >comparing bonds with different compounding methods, and choose equivalent >yields. Using PFI <go> in Bloomberg will help you to find equivalent yield. > >Then I have a remark: why are you pricing corporate bonds using yield? I >don't think it's a current market practice. I mean, I've never seen a >trader using yield to quote bonds. Bonds traders use asset swap spreads >rather than z-spread. You can do the same with QuantLibAddin using >qlAssetSwap related functions. > >Regarding Calendar object you can pass "TARGET" calendar to construct a >bond object, and providing all static data for the bond correctly, will >lead you to the real schedule of the bond. If you have doubts on this, you >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > >Chiara > > > > > >Chiara Fornarola > > > >Equity & Fixed Income Markets Unit > >Banca Caboto Spa > >Piazzetta Giordano Dell'amore 3 > >20121 Milano > >Voice: +39 02 8021 5778 > >Fax: +39 02 8021 5299 > > > > > > > > > >Hi again, > > > >On a positive note though, if you want to compute ISMA, Simple, Moosmuller > >yield values, do not pass in a Calendar object or more rather, pass in a > >NullCalendar object. > > > >This is because these yield values do not take into consideration holidays > >and thus produces much better results (the unadjusted or refDates are > >correct). There are other issues, but you will produce much better results. > >Forget True yield. > > > >You can also try our product. We have a Bond Mini module for corporate > >Bonds, portfolios of corporate Bonds as well as Government Bonds (JGB, > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds and > >Bond Options. All for £79. > > > >Best Regards, > >Toyin Akin, > >CapeTools QuantTools. > >www.QuantTools.com > > > > > > >From: "Toyin Akin" <[hidden email]> > > >To: > > >[hidden email],[hidden email] > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > >Hi Vittorio, > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > >because > > >of the way unadjusted coupon dates are calculated. > > > > > >Basically, given an array of coupon objects that represent a bond > > >schedule > > >and given a DayCounter (ie - act365, 30360, actact), when a >yearfraction() > > >is requested for any coupon period within a Bond object, the unadjusted > > >dates underlying the coupon object are initially incorrect. > > > > > >Even though the logic within the DayCounter class is correct, many of > > >the > > >dayCounter classes make use of the unadjusted dates within the > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > >You also have the problem of short/long first/last coupon periods that > > >are > > >not treated correctly either. > > > > > >Best Regards, > > >Toyin Akin. > > >CapeTools QuantTools, > > >www.QuantTools.com > > > > > >>From: [hidden email] > > >>To: [hidden email] > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > >> > > >>Hi, > > >> > > >>I'm using quantlib to build a spread strategy for pricing corporates > > >>bonds. At the moment I have a problem with some bond types because the > > >>yields and the prices achieved with quantlib are different from those > > >>of bloomberg. I'm looking for an user with a good knowledge of > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > >>qlBondYield() e qlBondCleanPrice()], available some days to assessing > > >>togheter the accuracy of the library. > > >> > > >> > > >>Vittorio di Stefano mailto:[hidden email] > > >> > > >>SoftSolutions! > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > >>Tel: +39 035-22714-1 > > >>Fax: +39 035-22714-99 > > >>http://www.softsolutions.it <http://www.softsolutions.it/> > > >>************************************************** > > >> > > >>This document is strictly confidential and is intended for use by the > > >>addressee unless otherwise indicated. If you have received this e-mail > > >>in error we would > > >>be very grateful if you could please notify us immediately at > > >>mailto:[hidden email] <mailto:[hidden email]> and delete >this e-mail from your system. > > >> > > >>SoftSolutions! reserves the right to monitor all email communications > > >>through its internal and external networks. > > >> > > >>SoftSolutions! s.r.l. > > >> > > >>************************************************** > > >>-------------- next part -------------- > > >>An HTML attachment was scrubbed... > > >>URL: > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070109/af2c49d9/attachment.html> > > >>------------------------------------------------------------------------- > > >>Take Surveys. Earn Cash. Influence the Future of IT > > >>Join SourceForge.net's Techsay panel and you'll get the chance to share > > >>your > > >>opinions on IT & business topics through brief surveys - and earn cash > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > >>_______________________________________________ > > >>QuantLib-users mailing list > > >>[hidden email] > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > >_________________________________________________________________ > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > > > > > > >----------------------------------------------------------------------- > > >-- > > >Take Surveys. Earn Cash. Influence the Future of IT > > >Join SourceForge.net's Techsay panel and you'll get the chance to share > > >your > > >opinions on IT & business topics through brief surveys - and earn cash > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > >_______________________________________________ > > >QuantLib-users mailing list [hidden email] > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > >_________________________________________________________________ > >Be the first to hear what's new at MSN - sign up to our free newsletters! > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > _________________________________________________________________ MSN Hotmail is evolving - check out the new Windows Live Mail http://ideas.live.com ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV_______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users ________________________________________________________ DTCC DISCLAIMER: This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please notify us immediately and delete the email and any attachments from your system. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070112/92c546fe/attachment.html |
In reply to this post by vittorio.distefano
Hi again, Yes I totally agree, QuantLib can really only compute ISMA yield values. However problems will arise once you start pricing bonds where the dayCounter convension is heavily dependant on the refDates. Perhaps the portfolio of bonds that you are currently pricing is specific to a particular market. I believe that once you start pricing Government Bonds in various currencies, you will start to see the differences crop up, even for the ISMA calculations because the dayCounter used varies from currency to currency. Thank you for the asset swap info. That I didn't know... Best Regards, Toyin Akin. >From: "FORNAROLA CHIARA" <[hidden email]> >To: "Toyin Akin" <[hidden email]> >CC: ><[hidden email]>,<[hidden email]> >Subject: RE: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 18:11:48 +0100 > >Hi, > >I hadn't seen your link and your example yet, but what I'd like to >underline is that the problem spotted by Vittorio is not a matter of market >conventions but it's because in QuantLib you have just one type of yield >calculation implemented, which doesn't fit every bonds in the market. > >Again I don't think yield calculation is relevant when your quoting a bond, >because the market practice as far as I know is to price pond in asset >swap. > > > >Chiara > > > >-----Original Message----- >From: Toyin Akin [mailto:[hidden email]] >Sent: Friday, January 12, 2007 5:06 PM >To: FORNAROLA CHIARA; [hidden email] >Cc: [hidden email] >Subject: RE: [Quantlib-users] On the accuracy of quantlib addins > > > > > >Hi, > > > >I just looked within quantLib source safe tree and it looks like the same > >logic as before is still there. > > > >In a nutshell, apart from the possible short/long start/end coupon periods, > >QuantLib sets every coupon's unadjusted date (inbetween the first and last > >coupon period) equal to the adjusted period date. > > > >I believe that this is not correct. It makes a huge difference when you are > >computing Bond yearFractions... > > > >I believe this link shows the calculations... > > > >http://www.isda.org/c_and_a/pdf/mktc1198.pdf ><http://www.isda.org/c_and_a/pdf/mktc1198.pdf> > > > >Again I could be wrong and that all refDate dates for coupon periods >between > >the far coupon periods should equal the adjusted dates, but I do remember > >when I raised this issue with Luigi he agreed with this and refered the > >issue to nando. > > > >As an example, I guess the quantLib team can let me know if the following >is > >the correct behaviour... use the yearFraction() function to compute a >period > >between > > > >1/Jan/2005 and 30/Jun/2005 with an actact Bond Basis. The function will > >compute a value of 0.5. > > > >Now do the following move the end date from 18/Jun/2005 to 17/Jul/2005 > >keeping the same start date. The function still computes 0.5 for every > >period!! > > > >This is true if you pass in the same refDate as the adjusted date. > > > >This example simulates the end date possibly being adjusted from the > >unAdjusted date of 30/Jun/2005 to a date between 18/Jun/2005 to >17/Jul/2005. > > > >If however you pass in the unAdjusted dates to the refDate parameters (ie - > >the original period is 1/Jan/2005 to 30/Jun/2005), you get more realistic > >values for each set of values you compute. > > > >Thus given this dayCounter (actact Bond Basis), you may have coupon periods > >where there may be up to 5 holiday dates adjustments (ie - easter) and yet > >the day fraction will be computed as 0.5. > > > >I don't know about you, but this looks a bit fishy to me. If it's market > >convention then it's market convention... > > > >Best Regards, > >Toyin Akin. > > > > >From: "FORNAROLA CHIARA" <[hidden email]> > > >To: "Toyin Akin" > > ><[hidden email]>,<[hidden email]> > > >CC: <[hidden email]> > > >Subject: RE: [Quantlib-users] On the accuracy of quantlib addins > > >Date: Fri, 12 Jan 2007 15:21:48 +0100 > > > > > >Hi Toyin, > > > > > >I think I'll ask Luigi or Nando to know the whole history of the class. > > >I don't see the problem you're quoting with the bond schedule. I > > >created about 100 bond's object using "TARGET" as calendar object and > > >checked the cashflows with Bloomberg. Payment dates and accrual start > > >and end dates seemed correct to me. Also their pricing in asset swap > > >can be compared with Bloomberg ASW. So what I suggest is to wait for > > >the new release, choose a bond and compare its cashflows analysis with > > >Bloomberg. > > > > > >Chiara > > > > > >-----Original Message----- > > >From: Toyin Akin [mailto:[hidden email] ><mailto:[hidden email]> ] > > >Sent: Friday, January 12, 2007 12:58 PM > > >To: FORNAROLA CHIARA; [hidden email] > > >Cc: [hidden email] > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > > > > > > >Hi, > > > > > >Actually, it's a known fact that the refDates computed within a coupon > > >object can be incorrect (unless it has been changed recently). I posted > > >this issue some time last year and Luigi confirmed that this needed to > > >be looked at. > > > > > >The refDates must be unAdusted dates for Bonds, however if you pass a > > >holiday object to a schedule class, the resulting dates are adjusted > > >for holidays and these are the new refDates. > > > > > >You will the have a series of long and short periods (differing by a > > >few days if a weekend or holiday is hit). > > > > > >I agree that the payment dates will be adjusted and so they should be, > > >but when actually calculating coupon period times (yearFractions), the > > >refDates must be unAdjusted when the logic is processed by the > > >dayCounter classes. Yes, if you simply display the dates of the > > >Schedule, you produce the correct payment dates. > > > > > >QuantLib (unless it has changed recently), currently uses the adjusted > > >dates > > >for the coupons refDates parameters. > > > > > >Also, most bonds pay equal coupon amounts (ie - for a six month coupon > > >period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for > > >every coupon. Currently in most cases other than 30360 or Simple > > >daycounters, if you display the schedule of coupons which are > > >calculated as > > > > > >yearFraction*coupon*Nominal for each period > > > > > >you will end up will an array of values centered around 2.5, but not > > >exactly > > >2.5 (according to our example above). > > > > > >The yearFraction is needed in order to compute the correct discount > > >factor for discounting a bond flow (an internal variable is built up > > >aggregating the yearFractions and then the value used for discounting). > > >Thus because the yearFraction value can be incorrect because of the > > >refDates, you are discounting at the wrong value. > > > > > >Best Regards, > > >Toyin Akin. > > > > > > >From: "FORNAROLA CHIARA" <[hidden email]> > > > >To: <[hidden email]>, <[hidden email]> > > > >CC: <[hidden email]> > > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > >Date: Fri, 12 Jan 2007 11:53:08 +0100 > > > > > > > >Hi Vittorio, > > > > > > > > > > > > > > > >QuantLib's Bond calculation doens't fail to calculate correctly > > > >bond's price. > > > > > > > >In my opinion, the point you're spotting is that in QuantLib (I guess > > > >you're using Version 0.3.14)only one type of yield calculation is > > > >implemented (bonds with different coupon calculation type have > > > >different compounding method, therefore unequivalent yields), so this > > > >can give you misleading results when using yield to calculate bond > > > >price. > > > > > > > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: > > > >IT0000366655 has semiannual frequency and calculation type used for > > > >the Italian government BTPS issues; which triggers a T+3 settlement > > > >period > > >and > > > >accomodates long last coupon. This calculation type is different from > > > >the one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: > > > >DE0001134922), which has annual frequency and German Government Bonds > > > >calculation type. This last calculation type is used for German > > > >government and corporate issues. It calculates Moosmueller yield, > > > >which discounts according to simple interest. Government bonds, > > > >agencies, jumbos, and floaters > > >generally > > > >trade T+3, while all other bonds generally trade T+2. So using this > > > >bond > > >as > > > >a benchmark (I guess you're using YAS in Bloomberg) you're not > > > >comparing apples to apples. > > > > > > > >My first recommendation is to use a different benchmark (e.g. BTPS 3 > > > >3/4 08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > > > > > > > >My second recommendation is to pay attention when using YAS <go> if > > >you're > > > >comparing bonds with different compounding methods, and choose > > > >equivalent yields. Using PFI <go> in Bloomberg will help you to find > > > >equivalent > > >yield. > > > > > > > >Then I have a remark: why are you pricing corporate bonds using > > > >yield? I don't think it's a current market practice. I mean, I've > > > >never seen a trader using yield to quote bonds. Bonds traders use > > > >asset swap spreads rather than z-spread. You can do the same with > > > >QuantLibAddin using qlAssetSwap related functions. > > > > > > > >Regarding Calendar object you can pass "TARGET" calendar to construct > > > >a bond object, and providing all static data for the bond correctly, > > > >will lead you to the real schedule of the bond. If you have doubts on > > > >this, > > >you > > > >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > > > > > > > > > > > > > > > > > > > >Chiara > > > > > > > > > > > > > > > > > > > > > > > >Chiara Fornarola > > > > > > > > > > > > > > > >Equity & Fixed Income Markets Unit > > > > > > > >Banca Caboto Spa > > > > > > > >Piazzetta Giordano Dell'amore 3 > > > > > > > >20121 Milano > > > > > > > >Voice: +39 02 8021 5778 > > > > > > > >Fax: +39 02 8021 5299 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >Hi again, > > > > > > > > > > > > > > > >On a positive note though, if you want to compute ISMA, Simple, > > >Moosmuller > > > > > > > >yield values, do not pass in a Calendar object or more rather, pass > > > >in a > > > > > > > >NullCalendar object. > > > > > > > > > > > > > > > >This is because these yield values do not take into consideration > > >holidays > > > > > > > >and thus produces much better results (the unadjusted or refDates are > > > > > > > >correct). There are other issues, but you will produce much better > > >results. > > > > > > > >Forget True yield. > > > > > > > > > > > > > > > >You can also try our product. We have a Bond Mini module for > > > >corporate > > > > > > > >Bonds, portfolios of corporate Bonds as well as Government Bonds > > > >(JGB, > > > > > > > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds > > > >and > > > > > > > >Bond Options. All for £79. > > > > > > > > > > > > > > > >Best Regards, > > > > > > > >Toyin Akin, > > > > > > > >CapeTools QuantTools. > > > > > > > >www.QuantTools.com > > > > > > > > > > > > > > > > > > > > > > > > >From: "Toyin Akin" <[hidden email]> > > > > > > > > >To: > > > > > > > > > > > >[hidden email],[hidden email]. > > > >net > > > > > > > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > > > > > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > > > > > > > > > > > > > > > > > > > >Hi Vittorio, > > > > > > > > > > > > > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > > > > > > > >because > > > > > > > > >of the way unadjusted coupon dates are calculated. > > > > > > > > > > > > > > > > > >Basically, given an array of coupon objects that represent a bond > > > > > > > > >schedule > > > > > > > > >and given a DayCounter (ie - act365, 30360, actact), when a > > > >yearfraction() > > > > > > > > >is requested for any coupon period within a Bond object, the > > > > >unadjusted > > > > > > > > >dates underlying the coupon object are initially incorrect. > > > > > > > > > > > > > > > > > >Even though the logic within the DayCounter class is correct, many > > > > >of > > > > > > > > >the > > > > > > > > >dayCounter classes make use of the unadjusted dates within the > > > > > > > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > > > > > > > > > > > > > >You also have the problem of short/long first/last coupon periods > > > > >that > > > > > > > > >are > > > > > > > > >not treated correctly either. > > > > > > > > > > > > > > > > > >Best Regards, > > > > > > > > >Toyin Akin. > > > > > > > > >CapeTools QuantTools, > > > > > > > > >www.QuantTools.com > > > > > > > > > > > > > > > > > >>From: [hidden email] > > > > > > > > >>To: [hidden email] > > > > > > > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > > > > > > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > > > > > > > >> > > > > > > > > >>Hi, > > > > > > > > >> > > > > > > > > >>I'm using quantlib to build a spread strategy for pricing > > > > >>corporates > > > > > > > > >>bonds. At the moment I have a problem with some bond types because > > > > >>the > > > > > > > > >>yields and the prices achieved with quantlib are different from > > > > >>those > > > > > > > > >>of bloomberg. I'm looking for an user with a good knowledge of > > > > > > > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > > > > > > > >>qlBondYield() e qlBondCleanPrice()], available some days to > > > > >>assessing > > > > > > > > >>togheter the accuracy of the library. > > > > > > > > >> > > > > > > > > >> > > > > > > > > >>Vittorio di Stefano mailto:[hidden email] > > > > > > > > >> > > > > > > > > >>SoftSolutions! > > > > > > > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > > > > > > > >>Tel: +39 035-22714-1 > > > > > > > > >>Fax: +39 035-22714-99 > > > > > > > > >>http://www.softsolutions.it <http://www.softsolutions.it/> ><http://www.softsolutions.it/> > > > > > > > > >>************************************************** > > > > > > > > >> > > > > > > > > >>This document is strictly confidential and is intended for use by > > > > >>the > > > > > > > > >>addressee unless otherwise indicated. If you have received this > > > > > > > > > >>in error we would > > > > > > > > >>be very grateful if you could please notify us immediately at > > > > > > > > >>mailto:[hidden email] <mailto:[hidden email]> ><mailto:[hidden email] <mailto:[hidden email]> > and > > >delete > > > >this e-mail from your system. > > > > > > > > >> > > > > > > > > >>SoftSolutions! reserves the right to monitor all email > > > > >>communications > > > > > > > > >>through its internal and external networks. > > > > > > > > >> > > > > > > > > >>SoftSolutions! s.r.l. > > > > > > > > >> > > > > > > > > >>************************************************** > > > > > > > > >>-------------- next part -------------- > > > > > > > > >>An HTML attachment was scrubbed... > > > > > > > > >>URL: > > > > > > > > > > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/at ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/at> > > > >>tachments/20070109/af2c49d9/attachment.html > > > ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/at ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/at> > > > >tachments/20070109/af2c49d9/attachment.html> > > > > > > > > > > > >>-------------------------------------------------------------------- > > > >>----- > > > > > > > > >>Take Surveys. Earn Cash. Influence the Future of IT > > > > > > > > >>Join SourceForge.net's Techsay panel and you'll get the chance to > > >share > > > > > > > > >>your > > > > > > > > >>opinions on IT & business topics through brief surveys - and earn > > > > >>cash > > > > > > > > > > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D> > > > >>EVDEV > > > ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D> > > > >EVDEV> > > > > > > > > >>_______________________________________________ > > > > > > > > >>QuantLib-users mailing list > > > > > > > > >>[hidden email] > > > > > > > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > > > > > > > > > > > > >_________________________________________________________________ > > > > > > > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > > > > > > > >http://ideas.live.com <http://ideas.live.com/> ><http://ideas.live.com/ <http://ideas.live.com/> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >------------------------------------------------------------------- > > > > >---- > > > > > > > > >-- > > > > > > > > >Take Surveys. Earn Cash. Influence the Future of IT > > > > > > > > >Join SourceForge.net's Techsay panel and you'll get the chance to > > > > >share > > > > > > > > >your > > > > > > > > >opinions on IT & business topics through brief surveys - and earn > > > > >cash > > > > > > > > > > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DE ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DE> > > > >VDEV > > > > ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > > > > > > > > > > > > > > > > > > > > > >_______________________________________________ > > > > > > > > >QuantLib-users mailing list [hidden email] > > > > > > > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > > > > > > > > > > >_________________________________________________________________ > > > > > > > >Be the first to hear what's new at MSN - sign up to our free > > > >newsletters! > > > > > > > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> ><http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >_________________________________________________________________ > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > >_________________________________________________________________ > >MSN Hotmail is evolving - check out the new Windows Live Mail > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > _________________________________________________________________ Windows Live Messenger has arrived. Click here to download it for free! http://imagine-msn.com/messenger/launch80/?locale=en-gb |
In reply to this post by vittorio.distefano
Yes Toyin Currently I'm focused only on a particular subset of bonds' market, but if it occurs a case similar to the one you mentioned of course I'll pay attention to what you told. Chiara -----Original Message----- From: Toyin Akin [mailto:[hidden email]] Sent: Friday, January 12, 2007 7:32 PM To: FORNAROLA CHIARA Cc: [hidden email]; [hidden email] Subject: RE: [Quantlib-users] On the accuracy of quantlib addins Hi again, Yes I totally agree, QuantLib can really only compute ISMA yield values. However problems will arise once you start pricing bonds where the dayCounter convension is heavily dependant on the refDates. Perhaps the portfolio of bonds that you are currently pricing is specific to a particular market. I believe that once you start pricing Government Bonds in various currencies, you will start to see the differences crop up, even for the ISMA calculations because the dayCounter used varies from currency to currency. Thank you for the asset swap info. That I didn't know... Best Regards, Toyin Akin. >From: "FORNAROLA CHIARA" <[hidden email]> >To: "Toyin Akin" <[hidden email]> >CC: ><[hidden email]>,<[hidden email]> >Subject: RE: [Quantlib-users] On the accuracy of quantlib addins >Date: Fri, 12 Jan 2007 18:11:48 +0100 > >Hi, > >I hadn't seen your link and your example yet, but what I'd like to >underline is that the problem spotted by Vittorio is not a matter of market >conventions but it's because in QuantLib you have just one type of yield >calculation implemented, which doesn't fit every bonds in the market. > >Again I don't think yield calculation is relevant when your quoting a bond, >because the market practice as far as I know is to price pond in asset >swap. > > > >Chiara > > > >-----Original Message----- >From: Toyin Akin [mailto:[hidden email]] >Sent: Friday, January 12, 2007 5:06 PM >To: FORNAROLA CHIARA; [hidden email] >Cc: [hidden email] >Subject: RE: [Quantlib-users] On the accuracy of quantlib addins > > > > > >Hi, > > > >I just looked within quantLib source safe tree and it looks like the same > >logic as before is still there. > > > >In a nutshell, apart from the possible short/long start/end coupon periods, > >QuantLib sets every coupon's unadjusted date (inbetween the first and last > >coupon period) equal to the adjusted period date. > > > >I believe that this is not correct. It makes a huge difference when you are > >computing Bond yearFractions... > > > >I believe this link shows the calculations... > > > >http://www.isda.org/c_and_a/pdf/mktc1198.pdf ><http://www.isda.org/c_and_a/pdf/mktc1198.pdf> > > > >Again I could be wrong and that all refDate dates for coupon periods >between > >the far coupon periods should equal the adjusted dates, but I do remember > >when I raised this issue with Luigi he agreed with this and refered the > >issue to nando. > > > >As an example, I guess the quantLib team can let me know if the following >is > >the correct behaviour... use the yearFraction() function to compute a >period > >between > > > >1/Jan/2005 and 30/Jun/2005 with an actact Bond Basis. The function will > >compute a value of 0.5. > > > >Now do the following move the end date from 18/Jun/2005 to 17/Jul/2005 > >keeping the same start date. The function still computes 0.5 for every > >period!! > > > >This is true if you pass in the same refDate as the adjusted date. > > > >This example simulates the end date possibly being adjusted from the > >unAdjusted date of 30/Jun/2005 to a date between 18/Jun/2005 to >17/Jul/2005. > > > >If however you pass in the unAdjusted dates to the refDate parameters (ie - > >the original period is 1/Jan/2005 to 30/Jun/2005), you get more realistic > >values for each set of values you compute. > > > >Thus given this dayCounter (actact Bond Basis), you may have coupon periods > >where there may be up to 5 holiday dates adjustments (ie - easter) and yet > >the day fraction will be computed as 0.5. > > > >I don't know about you, but this looks a bit fishy to me. If it's market > >convention then it's market convention... > > > >Best Regards, > >Toyin Akin. > > > > >From: "FORNAROLA CHIARA" <[hidden email]> > > >To: "Toyin Akin" > > ><[hidden email]>,<[hidden email]> > > >CC: <[hidden email]> > > >Subject: RE: [Quantlib-users] On the accuracy of quantlib addins > > >Date: Fri, 12 Jan 2007 15:21:48 +0100 > > > > > >Hi Toyin, > > > > > >I think I'll ask Luigi or Nando to know the whole history of the class. > > >I don't see the problem you're quoting with the bond schedule. I > > >created about 100 bond's object using "TARGET" as calendar object and > > >checked the cashflows with Bloomberg. Payment dates and accrual start > > >and end dates seemed correct to me. Also their pricing in asset swap > > >can be compared with Bloomberg ASW. So what I suggest is to wait for > > >the new release, choose a bond and compare its cashflows analysis with > > >Bloomberg. > > > > > >Chiara > > > > > >-----Original Message----- > > >From: Toyin Akin [mailto:[hidden email] ><mailto:[hidden email]> ] > > >Sent: Friday, January 12, 2007 12:58 PM > > >To: FORNAROLA CHIARA; [hidden email] > > >Cc: [hidden email] > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > > > > > > >Hi, > > > > > >Actually, it's a known fact that the refDates computed within a coupon > > >object can be incorrect (unless it has been changed recently). I posted > > >this issue some time last year and Luigi confirmed that this needed to > > >be looked at. > > > > > >The refDates must be unAdusted dates for Bonds, however if you pass a > > >holiday object to a schedule class, the resulting dates are adjusted > > >for holidays and these are the new refDates. > > > > > >You will the have a series of long and short periods (differing by a > > >few days if a weekend or holiday is hit). > > > > > >I agree that the payment dates will be adjusted and so they should be, > > >but when actually calculating coupon period times (yearFractions), the > > >refDates must be unAdjusted when the logic is processed by the > > >dayCounter classes. Yes, if you simply display the dates of the > > >Schedule, you produce the correct payment dates. > > > > > >QuantLib (unless it has changed recently), currently uses the adjusted > > >dates > > >for the coupons refDates parameters. > > > > > >Also, most bonds pay equal coupon amounts (ie - for a six month coupon > > >period paying 5% with a 100 Redemption value => 0.5*5%*100 = 2.5) for > > >every coupon. Currently in most cases other than 30360 or Simple > > >daycounters, if you display the schedule of coupons which are > > >calculated as > > > > > >yearFraction*coupon*Nominal for each period > > > > > >you will end up will an array of values centered around 2.5, but not > > >exactly > > >2.5 (according to our example above). > > > > > >The yearFraction is needed in order to compute the correct discount > > >factor for discounting a bond flow (an internal variable is built up > > >aggregating the yearFractions and then the value used for discounting). > > >Thus because the yearFraction value can be incorrect because of the > > >refDates, you are discounting at the wrong value. > > > > > >Best Regards, > > >Toyin Akin. > > > > > > >From: "FORNAROLA CHIARA" <[hidden email]> > > > >To: <[hidden email]>, <[hidden email]> > > > >CC: <[hidden email]> > > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > >Date: Fri, 12 Jan 2007 11:53:08 +0100 > > > > > > > >Hi Vittorio, > > > > > > > > > > > > > > > >QuantLib's Bond calculation doens't fail to calculate correctly > > > >bond's price. > > > > > > > >In my opinion, the point you're spotting is that in QuantLib (I guess > > > >you're using Version 0.3.14)only one type of yield calculation is > > > >implemented (bonds with different coupon calculation type have > > > >different compounding method, therefore unequivalent yields), so this > > > >can give you misleading results when using yield to calculate bond > > > >price. > > > > > > > >Referring to the example your quoting, BTPS 9 11/01/23 with ISIN: > > > >IT0000366655 has semiannual frequency and calculation type used for > > > >the Italian government BTPS issues; which triggers a T+3 settlement > > > >period > > >and > > > >accomodates long last coupon. This calculation type is different from > > > >the one of the benchmark you're using: DBR 6 1/4 01/24 (Isin: > > > >DE0001134922), which has annual frequency and German Government Bonds > > > >calculation type. This last calculation type is used for German > > > >government and corporate issues. It calculates Moosmueller yield, > > > >which discounts according to simple interest. Government bonds, > > > >agencies, jumbos, and floaters > > >generally > > > >trade T+3, while all other bonds generally trade T+2. So using this > > > >bond > > >as > > > >a benchmark (I guess you're using YAS in Bloomberg) you're not > > > >comparing apples to apples. > > > > > > > >My first recommendation is to use a different benchmark (e.g. BTPS 3 > > > >3/4 08/21 Isin: IT0004009673) referred to the BTPS 9 11/01/23. > > > > > > > >My second recommendation is to pay attention when using YAS <go> if > > >you're > > > >comparing bonds with different compounding methods, and choose > > > >equivalent yields. Using PFI <go> in Bloomberg will help you to find > > > >equivalent > > >yield. > > > > > > > >Then I have a remark: why are you pricing corporate bonds using > > > >yield? I don't think it's a current market practice. I mean, I've > > > >never seen a trader using yield to quote bonds. Bonds traders use > > > >asset swap spreads rather than z-spread. You can do the same with > > > >QuantLibAddin using qlAssetSwap related functions. > > > > > > > >Regarding Calendar object you can pass "TARGET" calendar to construct > > > >a bond object, and providing all static data for the bond correctly, > > > >will lead you to the real schedule of the bond. If you have doubts on > > > >this, > > >you > > > >can easily check the cashflow analysis using qlBondFlowAnalysis. > > > > > > > > > > > > > > > > > > > > > > > >Chiara > > > > > > > > > > > > > > > > > > > > > > > >Chiara Fornarola > > > > > > > > > > > > > > > >Equity & Fixed Income Markets Unit > > > > > > > >Banca Caboto Spa > > > > > > > >Piazzetta Giordano Dell'amore 3 > > > > > > > >20121 Milano > > > > > > > >Voice: +39 02 8021 5778 > > > > > > > >Fax: +39 02 8021 5299 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >Hi again, > > > > > > > > > > > > > > > >On a positive note though, if you want to compute ISMA, Simple, > > >Moosmuller > > > > > > > >yield values, do not pass in a Calendar object or more rather, pass > > > >in a > > > > > > > >NullCalendar object. > > > > > > > > > > > > > > > >This is because these yield values do not take into consideration > > >holidays > > > > > > > >and thus produces much better results (the unadjusted or refDates are > > > > > > > >correct). There are other issues, but you will produce much better > > >results. > > > > > > > >Forget True yield. > > > > > > > > > > > > > > > >You can also try our product. We have a Bond Mini module for > > > >corporate > > > > > > > >Bonds, portfolios of corporate Bonds as well as Government Bonds > > > >(JGB, > > > > > > > >TBOND, GILT etc...), Conversion Factors, Implied Repo, Forward Bonds > > > >and > > > > > > > >Bond Options. All for £79. > > > > > > > > > > > > > > > >Best Regards, > > > > > > > >Toyin Akin, > > > > > > > >CapeTools QuantTools. > > > > > > > >www.QuantTools.com > > > > > > > > > > > > > > > > > > > > > > > > >From: "Toyin Akin" <[hidden email]> > > > > > > > > >To: > > > > > > > > > > > >[hidden email],[hidden email]. > > > >net > > > > > > > > >Subject: Re: [Quantlib-users] On the accuracy of quantlib addins > > > > > > > > >Date: Wed, 10 Jan 2007 19:31:29 +0000 > > > > > > > > > > > > > > > > > > > > > > > > > > >Hi Vittorio, > > > > > > > > > > > > > > > > > >Currently, QuantLib's Bond calculation fails to calculate correctly > > > > > > > > >because > > > > > > > > >of the way unadjusted coupon dates are calculated. > > > > > > > > > > > > > > > > > >Basically, given an array of coupon objects that represent a bond > > > > > > > > >schedule > > > > > > > > >and given a DayCounter (ie - act365, 30360, actact), when a > > > >yearfraction() > > > > > > > > >is requested for any coupon period within a Bond object, the > > > > >unadjusted > > > > > > > > >dates underlying the coupon object are initially incorrect. > > > > > > > > > > > > > > > > > >Even though the logic within the DayCounter class is correct, many > > > > >of > > > > > > > > >the > > > > > > > > >dayCounter classes make use of the unadjusted dates within the > > > > > > > > >yearFraction() logic and thus you arrive at inaccurate results. > > > > > > > > > > > > > > > > > >You also have the problem of short/long first/last coupon periods > > > > >that > > > > > > > > >are > > > > > > > > >not treated correctly either. > > > > > > > > > > > > > > > > > >Best Regards, > > > > > > > > >Toyin Akin. > > > > > > > > >CapeTools QuantTools, > > > > > > > > >www.QuantTools.com > > > > > > > > > > > > > > > > > >>From: [hidden email] > > > > > > > > >>To: [hidden email] > > > > > > > > >>Subject: [Quantlib-users] On the accuracy of quantlib addins > > > > > > > > >>Date: Tue, 9 Jan 2007 09:59:24 +0100 > > > > > > > > >> > > > > > > > > >>Hi, > > > > > > > > >> > > > > > > > > >>I'm using quantlib to build a spread strategy for pricing > > > > >>corporates > > > > > > > > >>bonds. At the moment I have a problem with some bond types because > > > > >>the > > > > > > > > >>yields and the prices achieved with quantlib are different from > > > > >>those > > > > > > > > >>of bloomberg. I'm looking for an user with a good knowledge of > > > > > > > > >>Quantlib financial functions [mainly qlFixedCouponBond(); > > > > > > > > >>qlBondYield() e qlBondCleanPrice()], available some days to > > > > >>assessing > > > > > > > > >>togheter the accuracy of the library. > > > > > > > > >> > > > > > > > > >> > > > > > > > > >>Vittorio di Stefano mailto:[hidden email] > > > > > > > > >> > > > > > > > > >>SoftSolutions! > > > > > > > > >>Via S. Francesco d'Assisi, 3b, 24121 Bergamo (BG) Italia > > > > > > > > >>Tel: +39 035-22714-1 > > > > > > > > >>Fax: +39 035-22714-99 > > > > > > > > >>http://www.softsolutions.it <http://www.softsolutions.it/> ><http://www.softsolutions.it/> > > > > > > > > >>************************************************** > > > > > > > > >> > > > > > > > > >>This document is strictly confidential and is intended for use by > > > > >>the > > > > > > > > >>addressee unless otherwise indicated. If you have received this > > > > > > > > > >>in error we would > > > > > > > > >>be very grateful if you could please notify us immediately at > > > > > > > > >>mailto:[hidden email] <mailto:[hidden email]> ><mailto:[hidden email] <mailto:[hidden email]> > and > > >delete > > > >this e-mail from your system. > > > > > > > > >> > > > > > > > > >>SoftSolutions! reserves the right to monitor all email > > > > >>communications > > > > > > > > >>through its internal and external networks. > > > > > > > > >> > > > > > > > > >>SoftSolutions! s.r.l. > > > > > > > > >> > > > > > > > > >>************************************************** > > > > > > > > >>-------------- next part -------------- > > > > > > > > >>An HTML attachment was scrubbed... > > > > > > > > >>URL: > > > > > > > > > > > >>http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/at ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/at> > > > >>tachments/20070109/af2c49d9/attachment.html > > > ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/at ><http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/at> > > > >tachments/20070109/af2c49d9/attachment.html> > > > > > > > > > > > >>-------------------------------------------------------------------- > > > >>----- > > > > > > > > >>Take Surveys. Earn Cash. Influence the Future of IT > > > > > > > > >>Join SourceForge.net's Techsay panel and you'll get the chance to > > >share > > > > > > > > >>your > > > > > > > > >>opinions on IT & business topics through brief surveys - and earn > > > > >>cash > > > > > > > > > > > >>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D> > > > >>EVDEV > > > ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D> > > > >EVDEV> > > > > > > > > >>_______________________________________________ > > > > > > > > >>QuantLib-users mailing list > > > > > > > > >>[hidden email] > > > > > > > > >>https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > > > > > > > > > > > > >_________________________________________________________________ > > > > > > > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > > > > > > > >http://ideas.live.com <http://ideas.live.com/> ><http://ideas.live.com/ <http://ideas.live.com/> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >------------------------------------------------------------------- > > > > >---- > > > > > > > > >-- > > > > > > > > >Take Surveys. Earn Cash. Influence the Future of IT > > > > > > > > >Join SourceForge.net's Techsay panel and you'll get the chance to > > > > >share > > > > > > > > >your > > > > > > > > >opinions on IT & business topics through brief surveys - and earn > > > > >cash > > > > > > > > > > > >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DE ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DE> > > > >VDEV > > > > ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ><http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > > > > > > > > > > > > > > > > > > > > > > > > > > >_______________________________________________ > > > > > > > > >QuantLib-users mailing list [hidden email] > > > > > > > > >https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > ><https://lists.sourceforge.net/lists/listinfo/quantlib-users ><https://lists.sourceforge.net/lists/listinfo/quantlib-users> > > > > > > > > > > > > > > > > >_________________________________________________________________ > > > > > > > >Be the first to hear what's new at MSN - sign up to our free > > > >newsletters! > > > > > > > >http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> ><http://www.msn.co.uk/newsletters <http://www.msn.co.uk/newsletters> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >_________________________________________________________________ > > >MSN Hotmail is evolving - check out the new Windows Live Mail > > >http://ideas.live.com <http://ideas.live.com/> > > > > > > >_________________________________________________________________ > >MSN Hotmail is evolving - check out the new Windows Live Mail > >http://ideas.live.com <http://ideas.live.com/> > > > > > > > _________________________________________________________________ Windows Live(tm) Messenger has arrived. Click here to download it for free! http://imagine-msn.com/messenger/launch80/?locale=en-gb |
Free forum by Nabble | Edit this page |