callable bonds

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

callable bonds

Allen Kuo
Hi: I built a CallableFixedRateBond and would eventually like to make a contribution to QuantLib. Was wondering if we can we take callability to be a *feature* of a FixedRateBond, rather than developing a new class CallableFixedRateBond (construction of a FixedRateBond without the engine would resort to the original discounted cashflow NPV calculation).  If the notion of a Quantlib::FixedRateBond can be expanded to include embedded optionality, class names also become shorter (they are getting long…..), e.g. TreeFixedRateBondEngine versus TreeCallableFixedRateBondEngine. I remember seeing this on the discussion thread a while back. If I know the preferred architecture in advance, I can make some adjustments to class names now. Thanks.  

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: callable bonds

John Maiden
Allen-

     Maybe I'm missing something here, but wouldn't a
callable fixed rate bond be similar to a convertible bond?
All you have to do is make it a European option and then
set the conversion ratio so small that it will never be
converted at the final time.
     As for your bond spread issue, if you use a convertible
bond then you can also alter the Black-Scholes process that
goes into the bond to include zero curves.

John


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: callable bonds

Allen Kuo
In reply to this post by Allen Kuo
Hi John:  From what little I know, the optionality/callability in the convertible bond class is based on an underlying equity stochastic process. If you introduced a stochastic interest rate process into the model and the correlation between the two processes, then I would think it would be possible to have the (callable) convertible bond reduce to a "plain" callable bond ( i.e. where optionality is a function purely of interest rate volatility, not equity vol) when some parameter is set high enough so that it would never be converted to equity. If I can get the callable bond classes done, then I'd like to look into it bringing some machinery over, but the only engine I am working on now is tree-based and I don't know the standard engine for converts that model both processes.  Best, GZH
 

Message: 4
Date: Mon, 23 Jul 2007 12:19:48 +0000 (UTC)
From: John Maiden < [hidden email]>
Subject: Re: [Quantlib-dev] callable bonds
To: [hidden email]
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=us-ascii

Allen-

     Maybe I'm missing something here, but wouldn't a
callable fixed rate bond be similar to a convertible bond?
All you have to do is make it a European option and then
set the conversion ratio so small that it will never be
converted at the final time.
     As for your bond spread issue, if you use a convertible
bond then you can also alter the Black-Scholes process that
goes into the bond to include zero curves.

John


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: callable bonds

John Maiden
Convertible bonds use the binomialconvertibleengine class in
pricingengines/hybrid/binomialconvertibleengine.hpp. The class passes the
convertible bond arguments, adjusts the underlying stock for dividends, and most
importantly, sets up the underlying stock tree. DiscretizedConvertible processes
coupons, calls/puts, and convertibility. The convertible bond is actually
stepped back in TsiveriotisFernandesLattice.

If you make the exercise European and set the conversion ratio low enough, then
DiscretizedConvertible will only adjust for calls/puts and coupons. The convert
is stepped back at a blended rate (a combination of the risk-free rate and the
spread). If the conversion ratio is low enough, then the result should be a
corporate bond that is stepped back at risk-free + spread, and occasionally
adjusted for coupons and calls/puts. The underlying convertibility will not
influence the result at all.

If this sounds like a good direction, then you would need to alter
TsiveriotisFernandesLattice since it works with a constant risk-free and spread
rate. It's easy to adapt it for a yield and spread curve, and it should be open
to other interest rate models.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: callable bonds

Luigi Ballabio
In reply to this post by Allen Kuo

Hi Allen,
        apologies for the delay. I hope I'm not discouraging you or others from
participating to the project...


On Sat, 2007-07-14 at 02:54 -0400, Allen Kuo wrote:
> Hi: I built a CallableFixedRateBond and would eventually like to make
> a contribution to QuantLib. Was wondering if we can we take
> callability to be a *feature* of a FixedRateBond, rather than
> developing a new class CallableFixedRateBond (construction of a
> FixedRateBond without the engine would resort to the original
> discounted cashflow NPV calculation).

As a gut feeling, I'd keep it a separate class.


>   If the notion of a Quantlib::FixedRateBond can be expanded to
> include embedded optionality, class names also become shorter (they
> are getting long…..), e.g. TreeFixedRateBondEngine versus
> TreeCallableFixedRateBondEngine.

True, but I would also keep the vanilla bonds simple---new users have
enough difficulties already... also, I'm thinking of the possibility of
having callable zero-coupon or floating-rate bonds too. Keeping it
separate might help abstracting out the code for callability, so that
part of it might be reused between such bonds.

Later,
        Luigi


--

The most exciting phrase to hear in science, the one that heralds new
discoveries, is not "Eureka!" but "That's funny..."
-- Isaac Asimov



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: callable bonds

Luigi Ballabio
In reply to this post by John Maiden
On Mon, 2007-07-23 at 12:19 +0000, John Maiden wrote:
> Allen-
>
>      Maybe I'm missing something here, but wouldn't a
> callable fixed rate bond be similar to a convertible bond?
> All you have to do is make it a European option and then
> set the conversion ratio so small that it will never be
> converted at the final time.

Yes, in principle; but the current implementation of convertible bonds
builds an equity tree and uses deterministic interest rates. This
approximation works if variations in the equity value have a much bigger
effect on price than variations in the interest rates. If you take the
convertibility away, the assumption breaks down.

Later,
        Luigi


--

Greenspun's Tenth Rule of Programming:
Any sufficiently complicated C or Fortran program contains an
ad-hoc, informally-specified bug-ridden slow implementation of
half of Common Lisp.



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev