Bond redemption, face value and amortising bonds

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

Bond redemption, face value and amortising bonds

Simon Ibbotson - Straumur

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
Reply | Threaded
Open this post in threaded view
|

Re: Bond redemption, face value and amortising bonds

Simon Ibbotson - Straumur
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
Reply | Threaded
Open this post in threaded view
|

Re: Bond redemption, face value and amortising bonds

Ferdinando M. Ametrano-3
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
Reply | Threaded
Open this post in threaded view
|

Re: Bond redemption, face value and amortising bonds

Simon Ibbotson - Straumur
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
Reply | Threaded
Open this post in threaded view
|

Re: Bond redemption, face value and amortising bonds

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