Dear All,
I have installed Quantlibxl 9.7 and have opened work book option.xls and cant get the example sheet to calculate. Despite hitting ctrl-alt-f9 to force a recalculate cell B10 has value #NUM and cells b13 and c13 have value #VALUE! Can anyone help? Regards Theo -----Original Message----- From: [hidden email] To: [hidden email] Sent: Wed, 25 Mar 2009 11:34 Subject: QuantLib-dev Digest, Vol 34, Issue 9 Send QuantLib-dev mailing list submissions to [hidden email] To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/quantlib-dev or, via email, send a message with subject or body 'help' to [hidden email] You can reach the person managing the list at [hidden email] When replying, please edit your Subject line so it is more specific than "Re: Contents of QuantLib-dev digest..." Today's Topics: 1. [ quantlib-Bugs-2691902 ] Bootstrapping for bonds: Inconsistency in the clean price (SourceForge.net) 2. [ quantlib-Bugs-2691902 ] Bootstrapping for bonds: Inconsistency in the clean price (SourceForge.net) 3. [ quantlib-Bugs-2691902 ] Bootstrapping for bonds: Inconsistency in the clean price (SourceForge.net) 4. Re: How to use test suite (Luigi Ballabio) 5. Re: [QuantLib-svn] SF.net SVN: quantlib:[16065] trunk/QuantLib/ql/termstructures/yield/ forwardcurve.hpp (Luigi Ballabio) 6. Re: [QuantLib-svn] SF.net SVN: quantlib:[16065] trunk/QuantLib/ql/termstructures/yield/ forwardcurve.hpp (Ferdinando Ametrano) 7. Re: [QuantLib-svn] SF.net SVN: quantlib:[16065] trunk/QuantLib/ql/termstructures/yield/ forwardcurve.hpp (Luigi Ballabio) ---------------------------------------------------------------------- Message: 1 Date: Wed, 18 Mar 2009 14:28:22 +0000 From: "SourceForge.net" <[hidden email]> Subject: [Quantlib-dev] [ quantlib-Bugs-2691902 ] Bootstrapping for bonds: Inconsistency in the clean price To: [hidden email] Message-ID: <[hidden email]> Content-Type: text/plain; charset="UTF-8" Bugs item #2691902, was opened at 2009-03-18 15:28 Message generated for change (Tracker Item Submitted) made by klriedel You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=2691902&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Karl Riedel (klriedel) Assigned to: Nobody/Anonymous (nobody) Summary: Bootstrapping for bonds: Inconsistency in the clean price Initial Comment: Dear ladies and gentlemen, when considering the bootstrapping of a coupon bond according to the example "FittedBondCurve.cpp" I found an inconsistency in the results of the bootstrapper according to boost::shared_ptr<YieldTermStructure> ts0 ( new PiecewiseYieldCurve<Discount,LogLinear>(curveSettlementDays, calendar, instrumentsB, bondDayCount)); This inconsistency was as follows: For simplicity I considered a coupon bond with only one remaining payment date t_1, at which the coupon c and the redemption 1 will be paid. Let t_0 be the last coupon date and today t is within the interval [t_0,t_1]. For this situation the discount factor df(t,t_1) was calculated according to Clean Price = df(t,t_1) * [ 1 + c*(t_1-t) ]. (1) This formula refers to a Clean Price which is theoretically correct, i.e. the accrued amount is discounted. On the other hand, what has actually to be paid (marked standard) for a bond is the Clean price + the accrued amount according to the simple formula c*(t-t_0) which does not take into account discounting the accrued amount. The net present value of future payments must equal the spot price: Clean Price + c * (t-t_0) = df(t,t_1) * [1+c]. (2) In the middle of a payment period the resulting discount factors df(t,t_1) of (1) and (2) differ most. In my example this lead to a difference in the zero rate of around 10 BIPs. Best regards, Karl Riedel ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=2691902&group_id=12740 ------------------------------ Message: 2 Date: Wed, 18 Mar 2009 16:14:15 +0000 From: "SourceForge.net" <[hidden email]> Subject: [Quantlib-dev] [ quantlib-Bugs-2691902 ] Bootstrapping for bonds: Inconsistency in the clean price To: [hidden email] Message-ID: <[hidden email]> Content-Type: text/plain; charset="UTF-8" Bugs item #2691902, was opened at 2009-03-18 15:28 Message generated for change (Comment added) made by lballabio You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=2691902&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Karl Riedel (klriedel) Assigned to: Nobody/Anonymous (nobody) Summary: Bootstrapping for bonds: Inconsistency in the clean price Initial Comment: Dear ladies and gentlemen, when considering the bootstrapping of a coupon bond according to the example "FittedBondCurve.cpp" I found an inconsistency in the results of the bootstrapper according to boost::shared_ptr<YieldTermStructure> ts0 ( new PiecewiseYieldCurve<Discount,LogLinear>(curveSettlementDays, calendar, instrumentsB, bondDayCount)); This inconsistency was as follows: For simplicity I considered a coupon bond with only one remaining payment date t_1, at which the coupon c and the redemption 1 will be paid. Let t_0 be the last coupon date and today t is within the interval [t_0,t_1]. For this situation the discount factor df(t,t_1) was calculated according to Clean Price = df(t,t_1) * [ 1 + c*(t_1-t) ]. (1) This formula refers to a Clean Price which is theoretically correct, i.e. the accrued amount is discounted. On the other hand, what has actually to be paid (marked standard) for a bond is the Clean price + the accrued amount according to the simple formula c*(t-t_0) which does not take into account discounting the accrued amount. The net present value of future payments must equal the spot price: Clean Price + c * (t-t_0) = df(t,t_1) * [1+c]. (2) In the middle of a payment period the resulting discount factors df(t,t_1) of (1) and (2) differ most. In my example this lead to a difference in the zero rate of around 10 BIPs. Best regards, Karl Riedel ---------------------------------------------------------------------- >Comment By: Luigi Ballabio (lballabio) Date: 2009-03-18 17:14 Message: Karl, may you point out the places in the code where the calculations (1) and (2) are performed? Also, do you have some code to reproduce the error? Luigi ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=2691902&group_id=12740 ------------------------------ Message: 3 Date: Thu, 19 Mar 2009 10:28:43 +0000 From: "SourceForge.net" <[hidden email]> Subject: [Quantlib-dev] [ quantlib-Bugs-2691902 ] Bootstrapping for bonds: Inconsistency in the clean price To: [hidden email] Message-ID: <[hidden email]> Content-Type: text/plain; charset="UTF-8" Bugs item #2691902, was opened at 2009-03-18 15:28 Message generated for change (Comment added) made by klriedel You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=2691902&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Karl Riedel (klriedel) Assigned to: Nobody/Anonymous (nobody) Summary: Bootstrapping for bonds: Inconsistency in the clean price Initial Comment: Dear ladies and gentlemen, when considering the bootstrapping of a coupon bond according to the example "FittedBondCurve.cpp" I found an inconsistency in the results of the bootstrapper according to boost::shared_ptr<YieldTermStructure> ts0 ( new PiecewiseYieldCurve<Discount,LogLinear>(curveSettlementDays, calendar, instrumentsB, bondDayCount)); This inconsistency was as follows: For simplicity I considered a coupon bond with only one remaining payment date t_1, at which the coupon c and the redemption 1 will be paid. Let t_0 be the last coupon date and today t is within the interval [t_0,t_1]. For this situation the discount factor df(t,t_1) was calculated according to Clean Price = df(t,t_1) * [ 1 + c*(t_1-t) ]. (1) This formula refers to a Clean Price which is theoretically correct, i.e. the accrued amount is discounted. On the other hand, what has actually to be paid (marked standard) for a bond is the Clean price + the accrued amount according to the simple formula c*(t-t_0) which does not take into account discounting the accrued amount. The net present value of future payments must equal the spot price: Clean Price + c * (t-t_0) = df(t,t_1) * [1+c]. (2) In the middle of a payment period the resulting discount factors df(t,t_1) of (1) and (2) differ most. In my example this lead to a difference in the zero rate of around 10 BIPs. Best regards, Karl Riedel ---------------------------------------------------------------------- >Comment By: Karl Riedel (klriedel) Date: 2009-03-19 11:28 Message: Hello Luigi, unfortunately I did not have the time to search the relevant position(s) in the code. I just compared the results of Quantlib bootstrapping to formula (1) and (2) considering an easy example. The bootstrapper calculates results according to formula (1) while formula (2) describes the correct net present value. Please find the example code attached. The produced output is as follows: Today's date: January 2nd, 2009 Bootstrapping 1 bond with 0.5 years tenor and 4% coupon ... According to Clean Price = df(t,t_1) * [ 1 + c*(t_1-t) ]. (1) df = 1 / (1+0.5*c) = 1 / 1.02 = 0.980392156863 ts0->discount(maturity) = 0.980392156863 r = -log(df)/0.5 = 0.0396052545924 ts0->zeroRate(... = 0.0396052545924 According to correct net present value Clean Price + c * (t-t_0) = df(t,t_1) * [1+c]. (2) df = (1+0.5*c)/(1+c) = 1.02/1.04 = 0.980769230769 r = -log(df)/0.5 = 0.0388361717142 Dr?cken Sie eine beliebige Taste . . . Karl File Added: CleanpriceInconsistencyExample.txt ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2009-03-18 17:14 Message: Karl, may you point out the places in the code where the calculations (1) and (2) are performed? Also, do you have some code to reproduce the error? Luigi ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=2691902&group_id=12740 ------------------------------ Message: 4 Date: Fri, 20 Mar 2009 11:05:13 +0100 From: Luigi Ballabio <[hidden email]> Subject: Re: [Quantlib-dev] How to use test suite To: Ramesh Pedhamalla <[hidden email]> Cc: [hidden email] Message-ID: <1237543513.4669.21.camel@ITSUP001> Content-Type: text/plain On Mon, 2009-03-16 at 14:47 +0530, Ramesh Pedhamalla wrote: > Iam useing Quantilib in my application,i want to test some API in > Quantlib.Please let me know how to use test suite. Sorry, I'm not following. May you add some details and/or some context? Luigi -- These are my principles, and if you don't like them... Well, I have others. -- Groucho Marx ------------------------------ Message: 5 Date: Wed, 25 Mar 2009 11:38:53 +0100 From: Luigi Ballabio <[hidden email]> Subject: Re: [Quantlib-dev] [QuantLib-svn] SF.net SVN: quantlib:[16065] trunk/QuantLib/ql/termstructures/yield/ forwardcurve.hpp To: [hidden email] Message-ID: <1237977533.18502.0.camel@ITSUP001> Content-Type: text/plain On Wed, 2009-03-25 at 10:31 +0000, [hidden email] wrote: > Revision: 16065 > http://quantlib.svn.sourceforge.net/quantlib/?rev=16065&view=rev > Author: nando > Date: 2009-03-25 10:31:08 +0000 (Wed, 25 Mar 2009) > > Log Message: > ----------- > added flat extrapolation Care to discuss? Luigi -- The shortest way to do many things is to do only one thing at once. -- Samuel Smiles ------------------------------ Message: 6 Date: Wed, 25 Mar 2009 12:23:21 +0100 From: Ferdinando Ametrano <[hidden email]> Subject: Re: [Quantlib-dev] [QuantLib-svn] SF.net SVN: quantlib:[16065] trunk/QuantLib/ql/termstructures/yield/ forwardcurve.hpp To: [hidden email] Cc: [hidden email] Message-ID: <[hidden email]> Content-Type: text/plain; charset=ISO-8859-1 On Wed, Mar 25, 2009 at 11:38 AM, Luigi Ballabio <[hidden email]> wrote: > On Wed, 2009-03-25 at 10:31 +0000, [hidden email] wrote: >> Revision: 16065 >> >> Log Message: >> ----------- >> added flat extrapolation >> >> Modified Paths: >> -------------- >> trunk/QuantLib/ql/termstructures/yield/forwardcurve.hpp > > Care to discuss? glad to oblige. The InterpolatedForwardCurve used the interpolant to extrapolate, which easily leads to implausible rates, unless one used piecewise-constant interpolation. Even "basic" linear interpolation could lead to negative rates or implausible high rates depending on its slope in the final segment Flat forward rate extrapolation keeps forward rate continuous, at the cost of an angular point for non piecewise-constant interpolations. This is a non-issue for linear interpolation since in this case the curve already has an angular point at every knot. When it comes to higher order interpolation it is still a bearable cost compared to implausible extrapolation values. In any case this cost is negligible in the overall smoothness evaluation of the curve, as the forward rate curve is integrated in order to obtain zero rate (and then discount factor) Of course extrapolation is always a dangerous exercise, but if one needs it then flat extrapolation of instantaneous forward rates is usually the preferred approach, with no real feasible alternatives I know of. This is also the approach adopted in the InterpolatedHazardRateCurve. Any contrarian out there? ciao -- Nando ------------------------------ Message: 7 Date: Wed, 25 Mar 2009 12:33:05 +0100 From: Luigi Ballabio <[hidden email]> Subject: Re: [Quantlib-dev] [QuantLib-svn] SF.net SVN: quantlib:[16065] trunk/QuantLib/ql/termstructures/yield/ forwardcurve.hpp To: Ferdinando Ametrano <[hidden email]> Cc: [hidden email] Message-ID: <1237980785.18502.4.camel@ITSUP001> Content-Type: text/plain On Wed, 2009-03-25 at 12:23 +0100, Ferdinando Ametrano wrote: > glad to oblige. Thanks. I agreed with the change, but I though it would have been a good thing to have its rationale explained---which you did nicely. Luigi -- I'd never join any club that would have the likes of me as a member. -- Groucho Marx ------------------------------ ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com ------------------------------ _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev End of QuantLib-dev Digest, Vol 34, Issue 9 ******************************************* Download AOL Toolbar and get access to all of your favourite websites and Google powered Search in an instant. Download AOL Toolbar for FREE. ------------------------------------------------------------------------------ _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
Free forum by Nabble | Edit this page |