d1e?y?1?d2e?y?2?d3e?y?3?d4e?y?4?d5e?y?5?100 (1)
可转换债券定价可采用的方法有蒙特卡洛模拟,有限差分方法,但对于含有赎回和回购条款的可转换债券,二叉树方法更方便应用。 ? 波动率的估计
通常使用股价历史资料求得的收益率标准差(历史波动率)作为风险资产的波动率。历史波动率的基本假设是相信过去的波动性会延续到未来,且不会产生大幅变动,因此用过去资料算出的波动率可视为未来的股价波动率。常用的估算历史波动率的方法有GARCH模型、移动平均法、指数平滑法等。前面已经介绍了移动平均法,这里介绍更为简单的一个方法。定义:
n+1――观测次数;
Si――第i个时间区间结束时变量的价格,i = 0, 1,??n;
?――时间区间的长度,以年为单位。
令
ui?ln?SiSi?1? i?1,2,?,n (2)
ui的标准差s通常估计为:
1n2 (3) s?u?u???in?1i?1或
1n21?n?s?ui?ui? (4) ???n?1i?1n(n?1)?i?1?2其中u为ui的均值。
如果未来股票价格服从对数正态分布,ui的标准差为??。因此,变量s
?为: 是??的估计值。所以?本身的估计值????s? (5)
?/2n。在计算中选择一个合适的n可以证明以上估计式的标准差大约为?值并不容易。一般说来,数据越多,估计的精确度也会越高。但?是随时间变化。因此,过老的历史数据对于预测将来波动率可能不太相干。一个折衷的办法是采
用最近90~180天内每天的收盘价数据。另外一种约定俗成的方法是将n设定为波动率所用于的天数。如果波动率是用于计算两年期的期权,在计算中我们可以采用最近两年的日收益数据。当然,也可以采用比较复杂的方法,如GARCH模型来估计波动率。
五、实验目的:
熟悉可转换债券的基本概念以及期权性质;熟练掌握可转换债券产品的定价及分析过程
六、实验内容:
《上海证券报》2009年9月17日B5版刊登《四川大西洋焊接材料股份有限公司可转换公司债券上市公告书》,内容包括如下重要信息:
股票简称:大西洋;股票代码:600558;公告编号:临2009-29号。 发行公司:四川大西洋焊接材料股份有限公司,ATLANTIC CHINA WELDING CONSUMABLES,INC。
从网上下载公告书,估计相应的参数,调用Matlab的子程序cbprice计算西洋转债的价格,并与可转债的真实值对比,找出产生两者差异的原因,提出改进方法,减小预测误差。
七、实验所用软件平台:Matlab软件 八、实验步骤:
? 从网上和国泰安数据库下载相关数据 ? 计算债券到期收益率
? 从历史数据估计股票收益波动率 ? 编写程序
? 调试、运算并对比计算值与真实值 ? 找出原因,改进程序、减小预测误差
九、实验数据及结果分析(可另附页):
公告书中西洋转债的利息是递增形式,需要转化为年金形式。因此,首先要求出债券的到期收益率。根据式(1)得:
1e?y?1?1.2e?y?2?1.4e?y?3?1.6e?y?4?101.8e?y?5?100 (6)
用试错法解得y = -0.01385 ,即到期收益率为1.385%。年金形式的息票率为:
ce?0.01385?1?ce?0.01385?2?ce?0.01385?3?ce?0.01385?4?(100?c)e?0.01385?5?100 (7)
解得:c=1.3946,即息票率为1.3946%。
为了从历史数据估计股票收益的波动率,我们可以从国泰安数据库下载大西洋股票(600558)2008年9月21日至2009年9月20日的日收盘价格,共计242个交易日数据,根据式(2)-(5)求得。
其他输入参数根据公告书中内容设定,不能设定的尽量简化。
程序如下:
clear all; clc;
RiskFreeRate = 0.0225; %Sigma = 0.5; ConvRatio = 6.8729; NumSteps = 200;
IssueDate = '3-Sep-2009'; %Settle = '3-Dec-2009'; Maturity = '3-Sep-2014'; CouponRate = 0.013946; Period = 2; Basis = 2; EndMonthRule = 0; DividendType = 0; DividendInfo = [];
CallInfo = [datenum('3-Sep-2014') , 105]; CallType = 0; TreeType = 1; StaticSpread = 0.005;
% Nested loop across Prices to compute Convertible prices
fid = fopen('600558.txt','r'); price=fscanf(fid,'%g'); status=fclose(fid);
fid = fopen('h600558.txt','r'); hprice=fscanf(fid,'%g'); status=fclose(fid);
fid = fopen('110005.txt','r'); crprice=fscanf(fid,'%g');
status = fclose(fid);
s=0;ss=0;u(1)=0; for j = 2:1:242;
u(j) = log(hprice(j)/hprice(j-1)); s = s + u(j); ss = ss + u(j).^2; end
sd = sqrt(ss/(242-1)-s.^2/242/(242-1)); sigma = sd.*sqrt(242);
fid = fopen('date.txt','r'); for i=1:1:69
dat = fscanf(fid,'s',1); Settle = datenum(dat);
[CbMatrix, UndMatrix, DebtMatrix, EqtyMatrix] = ... cbprice(RiskFreeRate, StaticSpread, sigma, price(i), ... ConvRatio, NumSteps, IssueDate, Settle, ...
Maturity, CouponRate, Period, Basis, EndMonthRule, ... DividendType, DividendInfo, CallType, CallInfo, TreeType); convprice(i) = CbMatrix(1,1); end
status=fclose(fid); plot(price,'r-.');
xlabel('21-Sep-2009 to 6-Jan-2010') ylabel('Stock Price'); h=figure;
plot(1:1:69,crprice,'k:',1:1:69,convprice,'b-')
legend({'Real Convertable Prcie'; 'Formular Convertable Prcie'}); title ('Difference between formular convertable price and real price using Trinomial tree - 200 steps') xlabel('21-Sep-2009 to 6-Jan-2010') ylabel('Convertible Price');
text(35, 135, ['Coupon 0.013946 annual,', sprintf('\\n'), ... '105 Call-on-clean at maturity,' sprintf('\\n'), ... 'maturing par in 5 years'],'fontweight','Bold')
2009年9月21日至2010年1月6日大西洋股票(600558)的日收盘价如下图。数据来源于国泰安数据库,共有69个交易日数据。
201918Stock Price171615140102030405021-Sep-2009 to 6-Jan-20106070
图1 大西洋(600558)收盘价走势图
公式计算出来的西洋转债价格与真实的转债价格如下图所示:
Difference between formular convertable price and real price using Trinomial tree - 200 steps180 Real Convertable PrcieFormular Convertable Prcie170160Convertible Price150140130Coupon 0.013946 annual,105 Call-on-clean at maturity,maturing par in 5 years120 0102030405021-Sep-2009 to 6-Jan-20106070