On the accuracy of quantlib addins

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

On the accuracy of quantlib addins

vittorio.distefano
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 

Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Toyin Akin

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



Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Toyin Akin

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



Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

FORNAROLA CHIARA
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 

Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Toyin Akin

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



Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Guowen Han
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/58ea6133/attachment.html 
Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

FORNAROLA CHIARA
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



Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Toyin Akin

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



Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Toyin Akin
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



Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Toyin Akin
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



Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Guowen Han
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
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



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://sourceforge.net/mailarchive/forum.php?forum=quantlib-users/attachments/20070112/58e0d5aa/attachment.html 
Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

FORNAROLA CHIARA
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.




Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

FORNAROLA CHIARA
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 

Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

Toyin Akin
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
>
> > > >>e-mail
>
> > >
>
> > > >>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



Reply | Threaded
Open this post in threaded view
|

Re: On the accuracy of quantlib addins

FORNAROLA CHIARA
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
>
> > > >>e-mail
>
> > >
>
> > > >>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