Toyin (and all others interested), I want to implement amortising bonds within QuantLib. I
think this should be part of the base Bond class, as all the functions in the
base class use the face amount and the redemption in calculations of yield.
Before I do, can I clarify the usage of certain terms? To clarify: The face amount is the listed bond notional – used with
the rate to calculate the cashflow for a given period. The redemption(s) are usually
termed the notional repayment schedule and the (redemption value)/100 * (initial
face amount) is the associated payment. The bond quoting convention for the dirty price is (Settlement
Payment) = (Current Bond Notional) * (Dirty Price) / 100. The clean price is (Clean Price) = (Dirty Price) –
Accrued, where the Accrued is based upon a notional of 100. Anyone disagree? Note that the redemption value on any given date usually
(but not always) equals the change in the bond notional. This would mean making the redemption and face value into
vectors (in the constructor, similar to the rate) and the faceAmount() function
into faceAmount(const Date&). Any objections, comments? Cheers, Simon Head of Quantitative Analytics Capital Markets Straumur ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
Hmmm, interesting point. I'd guess that an asset swap on an amortising
bond swaps only the interest payments, not the notional repayments. Bloomberg doesn't help either - it simply ignores the sinking fund in ASW. Can anyone confirm this? I will - of course - make sure it passes the current QuantLib tests. Simon -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Ferdinando Ametrano Sent: 25 February 2008 18:19 To: Simon Ibbotson Subject: Re: [Quantlib-dev] Bond redemption, face value and amortising bonds Hi Simon your proposal makes sense to me, my only warning being to pay attention to (not mess up) asset swap. I'm not sure what is the asset swap mechanics for amortizing bonds You might find that in some place cashflows are assumed to be sorted, in other place they aren't. E.g. the redemption is assumed to be the last cashflow. Would be nice to settle this issue ciao -- Nando On Mon, Feb 25, 2008 at 6:43 PM, Simon Ibbotson <[hidden email]> wrote: > > > > > Toyin (and all others interested), > > > > I want to implement amortising bonds within QuantLib. I think this should be > part of the base Bond class, as all the functions in the base class use the > face amount and the redemption in calculations of yield. Before I do, can I > clarify the usage of certain terms? > > > > To clarify: > > The face amount is the listed bond notional - used with the rate to > calculate the cashflow for a given period. The redemption(s) are usually > termed the notional repayment schedule and the (redemption value)/100 * > (initial face amount) is the associated payment. > > The bond quoting convention for the dirty price is (Settlement Payment) = > (Current Bond Notional) * (Dirty Price) / 100. > > The clean price is (Clean Price) = (Dirty Price) - Accrued, where the > Accrued is based upon a notional of 100. > > Anyone disagree? > > > > Note that the redemption value on any given date usually (but not > equals the change in the bond notional. > > > > This would mean making the redemption and face value into vectors (in the > constructor, similar to the rate) and the faceAmount() function into > faceAmount(const Date&). Any objections, comments? > > > > Cheers, > > Simon > > > > > > Simon Ibbotson > > Head of Quantitative Analytics > > Capital Markets > > Straumur > > > - > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > QuantLib-dev mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
On Mon, Feb 25, 2008 at 7:44 PM, Simon Ibbotson
<[hidden email]> wrote: > I'd guess that an asset swap on an amortising > bond swaps only the interest payments, not the notional repayments. I agree for par asset swap, in the sense that exchanging the notional repayments would result in zero net flow, since the repayments should be identical on the floating leg. This is in accord with what happen with the final traditional redemption, when only the difference to par is exchanged. The guideline here is that the bond price as evaluated discounting all its cashflows on the yield curve should be identical to the asset swap price when the floating leg spread is set to zero. When it comes to market asset swap, things changes slightly and might require further attention. On a related issue: I haven't taught about it carefully but it might be worth to have different accessors for interest payments and redemptions, besides the old all-inclusive cashflows accessor ciao -- Nando ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
For the asset swap, this would mean having an amortizing floating leg:
which would usually mean that the floating leg has a compatible schedule (with matching notional paydown dates). That could be very tricky to implement: I think the best resolution would be to verify that the floating leg schedule has a coupon payment date within 2 days of the notional payment date (and thus can be said to have a constant notional for the coupon). For the AssetSwap, we would need a Bond accessor function for the redemption dates and an accessor function for the notional changes. Simon -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Ferdinando Ametrano Sent: 26 February 2008 09:27 To: Simon Ibbotson Cc: [hidden email] Subject: Re: [Quantlib-dev] Bond redemption, face value and amortising bonds On Mon, Feb 25, 2008 at 7:44 PM, Simon Ibbotson <[hidden email]> wrote: > I'd guess that an asset swap on an amortising > bond swaps only the interest payments, not the notional repayments. I agree for par asset swap, in the sense that exchanging the notional repayments would result in zero net flow, since the repayments should be identical on the floating leg. This is in accord with what happen with the final traditional redemption, when only the difference to par is exchanged. The guideline here is that the bond price as evaluated discounting all its cashflows on the yield curve should be identical to the asset swap price when the floating leg spread is set to zero. When it comes to market asset swap, things changes slightly and might require further attention. On a related issue: I haven't taught about it carefully but it might be worth to have different accessors for interest payments and redemptions, besides the old all-inclusive cashflows accessor ciao -- Nando ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
In reply to this post by Simon Ibbotson - Straumur
Hi Simon,
Bloomberg does help if you don't consider ASW function, but SWPM function. Using SWPM you can construct your bond leg and your floating leg, inputing the amotization schedule for each leg as given in the bond prospectus. I think this can help for a check. Chiara >-----Original Message----- >From: [hidden email] [mailto:quantlib-dev- >[hidden email]] On Behalf Of Simon Ibbotson >Sent: 25 February 2008 19:45 >To: Ferdinando Ametrano >Cc: [hidden email] >Subject: Re: [Quantlib-dev] Bond redemption, face value and amortising >bonds > >Hmmm, interesting point. I'd guess that an asset swap on an amortising >bond swaps only the interest payments, not the notional repayments. >Bloomberg doesn't help either - it simply ignores the sinking fund in >ASW. Can anyone confirm this? > >I will - of course - make sure it passes the current QuantLib tests. > >Simon > >-----Original Message----- >From: [hidden email] >[mailto:[hidden email]] On Behalf Of Ferdinando Ametrano >Sent: 25 February 2008 18:19 >To: Simon Ibbotson >Subject: Re: [Quantlib-dev] Bond redemption, face value and amortising >bonds > >Hi Simon > >your proposal makes sense to me, my only warning being to pay >attention to (not mess up) asset swap. I'm not sure what is the asset >swap mechanics for amortizing bonds > >You might find that in some place cashflows are assumed to be sorted, >in other place they aren't. E.g. the redemption is assumed to be the >last cashflow. >Would be nice to settle this issue > >ciao -- Nando > >On Mon, Feb 25, 2008 at 6:43 PM, Simon Ibbotson ><[hidden email]> wrote: >> >> >> >> >> Toyin (and all others interested), >> >> >> >> I want to implement amortising bonds within QuantLib. I think this >should be >> part of the base Bond class, as all the functions in the base class >use the >> face amount and the redemption in calculations of yield. Before I do, >can I >> clarify the usage of certain terms? >> >> >> >> To clarify: >> >> The face amount is the listed bond notional - used with the rate to >> calculate the cashflow for a given period. The redemption(s) are >usually >> termed the notional repayment schedule and the (redemption value)/100 >* >> (initial face amount) is the associated payment. >> >> The bond quoting convention for the dirty price is (Settlement >Payment) = >> (Current Bond Notional) * (Dirty Price) / 100. >> >> The clean price is (Clean Price) = (Dirty Price) - Accrued, where the >> Accrued is based upon a notional of 100. >> >> Anyone disagree? >> >> >> >> Note that the redemption value on any given date usually (but not >always) >> equals the change in the bond notional. >> >> >> >> This would mean making the redemption and face value into vectors (in >the >> constructor, similar to the rate) and the faceAmount() function into >> faceAmount(const Date&). Any objections, comments? >> >> >> >> Cheers, >> >> Simon >> >> >> >> >> >> Simon Ibbotson >> >> Head of Quantitative Analytics >> >> Capital Markets >> >> Straumur >> >> >> >----------------------------------------------------------------------- >- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2008. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> QuantLib-dev mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >> > >----------------------------------------------------------------------- >This SF.net email is sponsored by: Microsoft >Defy all challenges. Microsoft(R) Visual Studio 2008. >http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >_______________________________________________ >QuantLib-dev mailing list >[hidden email] >https://lists.sourceforge.net/lists/listinfo/quantlib-dev ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
Free forum by Nabble | Edit this page |