Still playing around with the convertible bond class...
This is a problem I've noticed for a while and wasn't sure where it was coming from, but I think I've isolated it. When I would model certain callable convertible bonds at high spreads, I would get a higher value for the callable convert than for an identical non-callable convertible bond. I also tried taking out the put, and found that its value was higher than an equivalent convertible bond with no calls or puts. I had the program print out data at each step, and have isolated the problem to the TsiveriotisFernandesLattice class, where the TsiveriotisFernandesLattice::stepback function is producing a SpreadAdjustedRate that is higher for the non-callable convert versus the callable convert, and thus discounting the callable convert value more. For those not familiar with the TsiveriotisFernandesLattice class, the way that the program calculates the SpreadAdjustedRate is that it blends the risk-free rate and the credit spread. If the stock price is low, then the convert should grow like a corporate bond, and should be discounted at the risk-free rate + credit spread. If the stock price is high and conversion is very likely, then the convert should grow like the stock and be discounted at the risk-free rate. At each step in the program, the program considers whether conversion is likely, and assigns a conversion probability. This probability is then blended in TsiveriotisFernandesLattice::stepback, and used to weigh the SpreadAdjustedRate. The problem with this approach is that during the callable period, a convert with calls will have lower values at every time step than a similar convert without calls (obviously). Because of how the program assigns conversion probability, the callable convert will have more values with high conversion probabilities. Since these values are blended, when comparing callable versus non-callable converts at a specific stock price and time, the callable convert will have a higher conversion probability and thus a lower SpreadAdjustedRate (which means it will be discounted less). So finally, this is my problem. At present my idea is to simply turn off the blending, but the SpreadAdjustedRate won't be smooth. Any ideas on how to create a SpreadAdjustedRate that will make sure that a non-callable convert is more expensive than its callable equivalent? ------------------------------------------------------------------------- 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-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |