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 |
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 |
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 ------------------------------------------------------------------------- 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 |
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 |
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 |
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 |
Free forum by Nabble | Edit this page |