cbprice - Price convertible bond

Syntax

[CBMatrix, UndMatrix, DebtMatrix, EqtyMatrix] = 
cbprice(RiskFreeRate, StaticSpread, Sigma, Price, ConvRatio, 
NumSteps, IssueDate, Settle, Maturity, CouponRate, Period, Basis, 
EndMonthRule, DividendType, DividendInfo, CallType, CallInfo, 
TreeType)

Arguments

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.

  • 0 = actual/actual (default)

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (PSA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (European)

  • 7 = actual/365 (Japanese)

  • 8 = actual/actual (ISMA)

  • 9 = actual/360 (ISMA)

  • 10 = actual/365 (ISMA)

  • 11 = 30/360E (ISMA)

  • 12 = actual/365 (ISDA)

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.

Description

[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.

Examples

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')  

  


 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS