| Fixed-Income Toolbox™ | ![]() |
[CBMatrix, UndMatrix, DebtMatrix, EqtyMatrix] = cbprice(RiskFreeRate, StaticSpread, Sigma, Price, ConvRatio, NumSteps, IssueDate, Settle, Maturity, CouponRate, Period, Basis, EndMonthRule, DividendType, DividendInfo, CallType, CallInfo, TreeType)
| RiskFreeRate | Annual yield of risk-free bond with the same maturity as the convertible, compounded continuously. (Recommended value is the yield of a risk-free bond with the same maturity as the convertible.) |
| StaticSpread | Value of constant spread to the risk free rate. Adding this to the RiskFreeRate produces the issuer's yield, which reflects its credit risk. |
| Sigma | Annual volatility in decimal. |
| Price | Price of asset at settlement or valuation date. |
| ConvRatio | Scalar. Number of assets convertible to a single bond. |
| NumSteps | Number of steps in binomial tree. |
| IssueDate | Issue date of bond. |
| Settle | Settlement date of bond. |
| Maturity | Maturity date of bond. |
| CouponRate | Coupon rate payable per unit of face value. |
Period | (Optional) Coupons per year of the bond. A vector of integers. Allowed values are 0, 1, 2, 3, 4, 6, and 12. Default = 2. |
| Basis | (Optional) Scalar value for day-count basis of the instrument.
|
EndMonthRule | (Optional) End-of-month rule. This rule applies only when Maturity is an end-of-month date for a month having 30 or fewer days. 0 = ignore rule, meaning that a bond's coupon payment date is always the same numerical day of the month. 1 = set rule on (default), meaning that a bond's coupon payment date is always the last actual day of the month. |
| DividendType | (Optional) 0 = dollar dividend (default). 1 = dividend yield. |
| DividendInfo | (Optional) Two-column matrix of dividend information. First column contains the ex-dividend date corresponding to the amount in the second column. Default = no dividend. |
| CallType | 0 = call on cash price (default). 1 = call on clean price. |
| CallInfo | (Optional) Two-column matrix of call information. First column contains the call dates. Second column contains call prices for every $100 face of bond. A call in the amount of call prices is activated after the corresponding call date. Default = no call feature. |
| TreeType | (Optional) 0 = binomial tree (default). 1 = trinomial tree. |
All inputs are scalars except for DividendInfo and CallInfo.
[CBMatrix, UndMatrix, DebtMatrix, EqtyMatrix] = cbprice(RiskFreeRate, StaticSpread, Sigma, Price, ConvRatio, NumSteps, IssueDate, Settle, Maturity, CouponRate, Period, Basis, EndMonthRule, DividendType, DividendInfo, CallType, CallInfo, TreeType) computes the price of a convertible bond using a Cox-Ross-Rubinstein binomial tree or, optionally, a trinomial tree.
CBMatrix is a matrix of convertible bond prices.
UndMatrix is a matrix of stock prices in binomial format.
DebtMatrix is a matrix of the debt portion of the convertible bond.
EqtyMatrix is a matrix of the equity portion of the convertible bond.
Perform a spread effect analysis of a 4%-coupon convertible bond callable at 110 at the end of the second year, maturing at par in 5 years, with yield to maturity of 5% and spread (of YTM versus 5-year treasury) of 0, 50, 100, and 150 basis points. The underlying stock pays no dividend.
RiskFreeRate = 0.05;
Sigma = 0.3;
ConvRatio = 1;
NumSteps = 200;
IssueDate = datenum('2-Jan-2002');
Settle = datenum('2-Jan-2002');
Maturity = datenum('2-Jan-2007');
CouponRate = 0.04;
Period = 2;
Basis = 1;
EndMonthRule = 1;
DividendType = 0;
DividendInfo = [];
CallInfo = [datenum('2-Jan-2004'), 110];
CallType = 1;
TreeType = 1;
% Nested loop accross prices and static spread dimensions
% to compute convertible prices.
for j = 0:0.005:0.015;
StaticSpread = j;
for i = 0:10:100
Price = 40+i;
[CbMatrix, UndMatrix, DebtMatrix, EqtyMatrix] = ...
cbprice(RiskFreeRate, StaticSpread, Sigma, Price, ...
ConvRatio, NumSteps, IssueDate, Settle, ...
Maturity, CouponRate, Period, Basis, EndMonthRule, ...
DividendType, DividendInfo, CallType, CallInfo, ...
TreeType);
convprice(i/10+1,j*200+1) = CbMatrix(1,1);
stock(i/10+1,j*200+1) = Price;
end
end
plot(stock, convprice);
legend({'+0 bp'; '+50 bp'; '+100 bp'; '+150 bp'});
title ('Effect of Spread using Trinomial tree - 200 steps')
xlabel('Stock Price');
ylabel('Convertible Price');
text(50, 150, ['Coupon 4% semiannual.', sprintf('\n'), ...
'110 Call-on-clean after two years.' sprintf('\n'), ...
'Maturing at par in five years.'],'fontweight','Bold')

![]() | bkput | cdai | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |