Syntax
[CbMatrix, UndMatrix, DebtMatrix, EqtyMatrix] =
cbprice(RiskFreeRate,
StaticSpread, Sigma, Price, ConvRatio,
NumSteps, IssueDate,
Settle, Maturity, CouponRate)
[CbMatrix, UndMatrix, DebtMatrix, EqtyMatrix] =
cbprice(RiskFreeRate,
StaticSpread, Sigma, Price, ConvRatio,
NumSteps, IssueDate,
Settle, Maturity, CouponRate,
Name,Value)
Description
[CbMatrix, UndMatrix, DebtMatrix, EqtyMatrix] =
cbprice(RiskFreeRate,
StaticSpread, Sigma, Price, ConvRatio,
NumSteps, IssueDate,
Settle, Maturity, CouponRate) price a convertible bond
with a onefactor lattice method.
[CbMatrix, UndMatrix, DebtMatrix, EqtyMatrix] =
cbprice(RiskFreeRate,
StaticSpread, Sigma, Price, ConvRatio,
NumSteps, IssueDate,
Settle, Maturity, CouponRate,
Name,Value) price
a convertible bond with a onefactor lattice method with additional
options specified by one or more Name,Value pair
arguments.
RiskFreeRate 
Annual yield of the riskfree bond with the same maturity as
the convertible, compounded continuously. Scalar value of riskfree
rates is in decimal. (Recommended value is the yield of a riskfree
bond with the same maturity as the convertible.)

StaticSpread 
Scalar value of the constant spread to riskfree rate. Adding StaticSpread to
the RiskFreeRate produces the issuer's yield, which
reflects the credit risk. 
Sigma 
Scalar value of the annual volatility environment in decimal.

Price 
Scalar value of the price of the asset at the settlement or
valuation date. 
ConvRatio 
Scalar value of the number of assets convertible to one bond. cbprice expects
the ConvRatio to be in terms of a $100 face or
par value. 
NumSteps 
Scalar value of the number of steps within the binomial tree.

IssueDate 
Scalar value of the issue date of the convertible bond.

Settle 
Scalar value of the settlement date of the convertible bond.

Maturity 
Scalar value of the maturity date of the convertible bond.

CouponRate 
Scalar value of the coupon rate in decimal form or a Cby2 vector
of dates and associated coupon rates.

NameValue Pair Arguments
Specify optional commaseparated pairs of Name,Value arguments.
Name is the argument
name and Value is the corresponding
value. Name must appear
inside single quotes (' ').
You can specify several name and value pair
arguments in any order as Name1,Value1,...,NameN,ValueN.
'Basis' 
Daycount basis of the bond. A vector of integers. For more information, see basis. Default: 0 (actual/actual) 
'CallType' 
Scalar value for the call type. Values are 0 for
a call on cash price, or 1 for a call on clean
price. Default: 0 (cash price) 
'CallInfo' 
Twocolumn matrix containing the call information. The first
column is the call dates and the second column is the call prices
for every $100 face of the bond. The call, in the amount of call prices,
is activated after the corresponding call date.
Default: No call feature 
'ConvInfo' 
Twocolumn matrix containing convertible information. The first
column is the convertible dates and the second column is whether the
issue is convertible or not. Default: Bond is always convertible 
'DividendInfo' 
Twocolumn matrix of dividend information. The first column
is the exdividend date and the second column is the corresponding
amount. Enter any amount known at any time; only the amounts that
are within the lifespan of the option are used. If the DividendType is 2, DividendInfo is
a 1by2 matrix where the first
entry is the Settle date and the second entry is
the continuous dividend yield.
Default: No dividend 
'DividendType' 
Scalar value for dividend type. Values are: Default: 0 (Dollar dividend) 
'EndMonthRule' 
NINSTby1 vector for endofmonth rule.
Values are 1 (on, in effect) and 0 (off,
not in effect). Default: 1 (on, in effect) 
'Period' 
Scalar value for number of coupon payments. Values are: Default: 2 (Semiannual) 
'PutInfo' 
Twocolumn matrix containing put information. The first column
is the put dates and the second column is the put prices for every
$100 face of the bond. The put, in the amount of put prices, is activated after the
corresponding put date. Default: No put feature 
'PutType' 
Scalar value for put type. Value are 0 for
a put on cash price or 1 for a put on clean price.
Default: 0 (put on cash price) 
'TreeType' 
Scalar value for tree type. Values are 0 for
binomial lattice or 1 for trinomial lattice.
Default: 0 (binomial lattice) 
Output Arguments
CbMatrix 
Matrix of CB prices in binomial format. Price of convertible
is CbMatrix(1,1).

UndMatrix 
Matrix of stock prices in binomial format.

DebtMatrix 
Matrix of CB debt component in binomial format.

EqtyMatrix 
Matrix of CB equity component in binomial format.

Examples
expand all
This example shows how to price a convertible bond that matures in 2035 and is callable after 2025.
Define the convertible bond characteristics.
Settle = datenum('20Sep2013');
IssueDate = datenum('15Dec2005');
Maturity = datenum('15Dec2035');
CouponRate = .03;
ConvRatio = 3.4; % Per 100 face value
CallDate = datenum('15Dec2025');
CallPrice = 100;
RiskFreeRate = 0.03;
StockPrice = 24;
Volatility = 0.2;
CreditSpread = 0.005;
DivType = 2; % Continous
DivYield = 0.04;
Calculate the price for the convertible bond.
NumberSteps = 100;
ConvPrice = cbprice(RiskFreeRate,CreditSpread,Volatility,StockPrice,ConvRatio,...
NumberSteps,IssueDate,Settle,Maturity,CouponRate,'DividendType',DivType,...
'DividendInfo',[Settle DivYield],'CallInfo',[CallDate CallPrice]);
This example shows how to 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 yield to maturity versus 5year 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 = '2Jan2002';
Settle = '2Jan2002';
Maturity = '2Jan2007';
CouponRate = 0.04;
Period = 2;
Basis = 1;
EndMonthRule = 1;
DividendType = 0;
DividendInfo = [];
CallInfo = [datenum('2Jan2004') , 110];
CallType = 1;
TreeType = 1;
Spreads = 0:0.005:0.015;
Prices = 40:10:140;
stock = repmat(Prices',1,length(Spreads));
convprice = zeros(length(Prices),length(Spreads));
for spreadidx = 1:length(Spreads)
for priceidx = 1:length(Prices)
[CbMatrix, UndMatrix, DebtMatrix, EqtyMatrix] = ...
cbprice(RiskFreeRate, Spreads(spreadidx), Sigma, Prices(priceidx), ...
ConvRatio, NumSteps, IssueDate, Settle, ...
Maturity, CouponRate, Period, Basis, EndMonthRule, ...
DividendType, DividendInfo, CallType, CallInfo, TreeType);
convprice(priceidx,spreadidx) = CbMatrix(1,1);
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 Callonclean after 2 years,' sprintf('\n'), ...
'maturing par in 5 years'],'fontweight','Bold')
More About
expand all
A convertible bond (CB) is a debt instrument that you can convert
into a predetermined amount of the issuing company's equity at certain
times before the bond's maturity. In addition to standard bond features
(for example, maturity date, face value, coupon), a convertible bond
often has callable and puttable features.
References
Andersen, L. and D. Buffum, "Calibration and implementation
of convertible bonds models," Working paper, Banc of America
Securities, 2003.
Ayache, E., P.A. Forsyth, and K.R. Vetzal, "Valuation
of Convertible Bonds with Credit Risk," Journal of
Derivatives, 11 (Fall 2003), 929.
Tsiveriotis, K. and C. Fernandes, "Valuing Convertible
Bonds with Credit Risk," Journal of Fixed Income 8,
95102, 1998
Zabolotnyuk, Yuriy, Jones, Robert A. and Veld, Chris H., "An
Empirical Comparison of Convertible Bond Valuation Models,"
(October 15, 2009). Available at SSRN: http://ssrn.com/abstract=994805.