callable bond cashflow()

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

callable bond cashflow()

gigifaye29
Hi I have created the callable bond example and it works fine for pricing and duration calculation.

However, when I try to retrieve cashflows from the callable objective by

callableBond.cashflows().at(i).get()->amount()

it returns me a bullet bond cashflow which inherits from the fixed bond class.

Isn't it more appropriate it returns the "expected" or "adjusted" cash flows specific to this callable bond class?

It is somehow misleading it returns a bullet bond cash flows...

Thanks for any comments on this!

XC

Reply | Threaded
Open this post in threaded view
|

Re: callable bond cashflow()

Luigi Ballabio

On Jan 21, 2011, at 8:43 PM, gigifaye29 wrote:

> Hi I have created the callable bond example and it works fine for  
> pricing and
> duration calculation.
>
> However, when I try to retrieve cashflows from the callable  
> objective by
>
> callableBond.cashflows().at(i).get()->amount()
>
> it returns me a bullet bond cashflow which inherits from the fixed  
> bond
> class.
>
> Isn't it more appropriate it returns the "expected" or "adjusted"  
> cash flows
> specific to this callable bond class?

It depends.  In a way, it would, since with the current implementation  
it doesn't hold that the value of the bond is the sum of the values of  
the cashflows (discounted, of course.)  On the other hand, if ou want  
to know the amount you'll receive at a given coupon date, that's the  
amount of the bullet bond cashflow (or none, if the bond is called.)  
I guess we would need methods for both adjusted and unadjusted  
amount.  In the current tree-based implementation, the adjusted amount  
is kind of hard to get, though. Maybe you might have a look at it and  
try coming up with a patch?

Luigi


------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: callable bond cashflow()

Allen Kuo-2
what would the adjusted amount be ?

On a tree, is that the expectation of the cashflow at time i, which in
turn is: sum  [ cashflow_j * prob(cashflow_j) ] ?

Also, at any time i other than at maturity k (and since the engine is a
tree), I assume you'd have to pull out the principal payment
contribution at time i, which is always being discounted from time k to i ?

Allen


On 1/22/2011 11:09 PM, Luigi Ballabio wrote:

> On Jan 21, 2011, at 8:43 PM, gigifaye29 wrote:
>> Hi I have created the callable bond example and it works fine for
>> pricing and
>> duration calculation.
>>
>> However, when I try to retrieve cashflows from the callable
>> objective by
>>
>> callableBond.cashflows().at(i).get()->amount()
>>
>> it returns me a bullet bond cashflow which inherits from the fixed
>> bond
>> class.
>>
>> Isn't it more appropriate it returns the "expected" or "adjusted"
>> cash flows
>> specific to this callable bond class?
> It depends.  In a way, it would, since with the current implementation
> it doesn't hold that the value of the bond is the sum of the values of
> the cashflows (discounted, of course.)  On the other hand, if ou want
> to know the amount you'll receive at a given coupon date, that's the
> amount of the bullet bond cashflow (or none, if the bond is called.)
> I guess we would need methods for both adjusted and unadjusted
> amount.  In the current tree-based implementation, the adjusted amount
> is kind of hard to get, though. Maybe you might have a look at it and
> try coming up with a patch?
>
> Luigi
>
>
> ------------------------------------------------------------------------------
> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
> Finally, a world-class log management solution at an even better price-free!
> Download using promo code Free_Logger_4_Dev2Dev. Offer expires
> February 28th, so secure your free ArcSight Logger TODAY!
> http://p.sf.net/sfu/arcsight-sfd2d
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>


------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: callable bond cashflow()

gigifaye29
Hi Allen,
I think the expected cashflows are calculated as you described :  sum  [ cashflow_j * prob(cashflow_j) ]

Luigi mentioned "the adjusted amount is kind of hard to get, though".  Do you think whether someone can add the patch for expected/adjusted cash flows? ( I sort of understand the logic but my C++ is very limited)

If this function becomes available that would be really helpful for many financial applications we deal with...

Thanks,
Xin


-----Original Message-----
From: Allen Kuo [mailto:[hidden email]]
Sent: Saturday, January 22, 2011 10:48 AM
To: [hidden email]
Subject: Re: [Quantlib-users] callable bond cashflow()

what would the adjusted amount be ?

On a tree, is that the expectation of the cashflow at time i, which in turn is: sum  [ cashflow_j * prob(cashflow_j) ] ?

Also, at any time i other than at maturity k (and since the engine is a tree), I assume you'd have to pull out the principal payment contribution at time i, which is always being discounted from time k to i ?

Allen


On 1/22/2011 11:09 PM, Luigi Ballabio wrote:

> On Jan 21, 2011, at 8:43 PM, gigifaye29 wrote:
>> Hi I have created the callable bond example and it works fine for
>> pricing and duration calculation.
>>
>> However, when I try to retrieve cashflows from the callable objective
>> by
>>
>> callableBond.cashflows().at(i).get()->amount()
>>
>> it returns me a bullet bond cashflow which inherits from the fixed
>> bond class.
>>
>> Isn't it more appropriate it returns the "expected" or "adjusted"
>> cash flows
>> specific to this callable bond class?
> It depends.  In a way, it would, since with the current implementation
> it doesn't hold that the value of the bond is the sum of the values of
> the cashflows (discounted, of course.)  On the other hand, if ou want
> to know the amount you'll receive at a given coupon date, that's the
> amount of the bullet bond cashflow (or none, if the bond is called.) I
> guess we would need methods for both adjusted and unadjusted amount.  
> In the current tree-based implementation, the adjusted amount is kind
> of hard to get, though. Maybe you might have a look at it and try
> coming up with a patch?
>
> Luigi
>
>
> ----------------------------------------------------------------------
> -------- Special Offer-- Download ArcSight Logger for FREE (a $49 USD
> value)!
> Finally, a world-class log management solution at an even better price-free!
> Download using promo code Free_Logger_4_Dev2Dev. Offer expires
> February 28th, so secure your free ArcSight Logger TODAY!
> http://p.sf.net/sfu/arcsight-sfd2d
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>


------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

NOTICE: Confidential message which may be privileged. Unauthorized use/disclosure prohibited. If received in error, please go to www.td.com/legal for instructions.
AVIS : Message confidentiel dont le contenu peut être privilégié. Utilisation/divulgation interdites sans permission. Si reçu par erreur, prière d'aller au www.td.com/francais/avis_juridique pour des instructions.

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: callable bond cashflow()

Allen Kuo-2
In reply to this post by Luigi Ballabio
Luigi, is it obvious there exists a mathematical breakdown which
ensures the "adjusted" cashflows, somehow pulled from the tree (see
below), and
discounted using the rates of a corresponding non-callable bond,
always equal the callable bond NPV ?

My intuition is telling me if I could pull cashflows from the tree (by
separating
the coupon and principal portions on each node of the tree and for those
nodes
where the bond is called, allocating between these portions
fairly/proportionately),
I'd still need a fudge factor (like a constant added to each cashflow)
to correctly
price the callable bond.

Also, for callable bonds, when the call date is a coupon date, and the
bond is
called, is the coupon paid ? Right now, the code assumes it is.

Thanks, Allen


On 1/22/2011 11:09 PM, Luigi Ballabio wrote:

> On Jan 21, 2011, at 8:43 PM, gigifaye29 wrote:
>> Hi I have created the callable bond example and it works fine for
>> pricing and
>> duration calculation.
>>
>> However, when I try to retrieve cashflows from the callable
>> objective by
>>
>> callableBond.cashflows().at(i).get()->amount()
>>
>> it returns me a bullet bond cashflow which inherits from the fixed
>> bond
>> class.
>>
>> Isn't it more appropriate it returns the "expected" or "adjusted"
>> cash flows
>> specific to this callable bond class?
> It depends.  In a way, it would, since with the current implementation
> it doesn't hold that the value of the bond is the sum of the values of
> the cashflows (discounted, of course.)  On the other hand, if ou want
> to know the amount you'll receive at a given coupon date, that's the
> amount of the bullet bond cashflow (or none, if the bond is called.)
> I guess we would need methods for both adjusted and unadjusted
> amount.  In the current tree-based implementation, the adjusted amount
> is kind of hard to get, though. Maybe you might have a look at it and
> try coming up with a patch?
>
> Luigi
>
>
> ------------------------------------------------------------------------------
> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
> Finally, a world-class log management solution at an even better price-free!
> Download using promo code Free_Logger_4_Dev2Dev. Offer expires
> February 28th, so secure your free ArcSight Logger TODAY!
> http://p.sf.net/sfu/arcsight-sfd2d
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>


------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users