1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 可转换债券matlab [债券]可转换债券定价的Matlab程序

可转换债券matlab [债券]可转换债券定价的Matlab程序

时间:2020-05-16 12:01:32

相关推荐

可转换债券matlab [债券]可转换债券定价的Matlab程序

定价方法参考了传统的Black-Scholes模型定价方法,在此基础上考虑我国市场可转债的特殊性,如我国可转换债券一般都规定了向下调整条款以及赎回和回售条款。因此需要对传统模型进行修改,而且也发现传统B-S模型的理论价格溢价率往往都远高于调整后的模型理论价格溢价率。修改的模型预测价格效果远好于传统模型。

本定价以唐钢股份的可转债为数据来源,波动率的计算采用GARCH方法完成。

nominal=100;

coupon=0.024;

rf=0.0203;

credit=0.0246;

delta=0.6525;

x=13;

ratio=nominal/x;

putprice=104;

callprice=102;

tm=datenum(,12,13);

today=datenum(,6,25);

cb=zeros(1,n);

ti= zeros(1,n);

con= zeros(1,n);

date= zeros(1,n);

pv= zeros(1,n);

call =zeros(1,n);

put= zeros(1,n);

revise= zeros(1,n);

for g=1:1:n;

stock=S(g);

ti(1,g)=(tm-today-g+1)/365;

w=nominal*0.008/((1+rf+credit).^(1-g/365))+nominal*0.011/((1+rf+credit).^(2-g/365))+ nominal*0.014/((1+rf+credit).^(3-g/365))+ nominal*0.017/((1+rf+credit).^(4-g/365))

pv(1,g)=w+nominal*(1+0.020)/((rf+credit+1).^(5-g/365))

d1=(log(stock/x)+(rf+delta^2/2)*ti(1,g))/delta/sqrt(ti(1,g))

d2=d1-delta* sqrt(ti(1,g))

con(1,g)=stock*normcdf(d1)-x*exp(-rf*ti(1,g)).*normcdf(d2)

dr1= (log(stock/0.2*x)+(rf+delta^2/2)*ti(1,g))/delta/sqrt(ti(1,g))

dr2=dr1- delta* sqrt(ti(1,g))

revise(1,g)=x*0.2*exp(-rf*ti(1,g)).*normcdf(-dr2)-stock*normcdf(-dr1)

dc1=(log(stock/1.3*x)+(rf+delta^2/2)*ti(1,g))/delta/sqrt(ti(1,g))

dc2=dc1- delta* sqrt(ti(1,g))

call(1,g)=stock*normcdf(dc1)-(x*1.3)* exp(-rf*ti(1,g)).*normcdf(dc2)

du1= (log(stock/(putprice/ratio))+(rf+delta^2/2)*ti(1,g))/delta/sqrt(ti(1,g))

du2=du1- delta* sqrt(ti(1,g))

put(1,g)= stock*normcdf(du1)- (putprice/ratio)* exp(-rf*ti(1,g)).*normcdf(du2)

cb(1,g)=pv(1,g)+(con(1,g)+revise(1,g)-call(1,g)+put(1,g))*nominal/x

a(1,g)=max(con(1,g),con(1,g)+revise(1,g)-call(1,g))

b(1,g)=max(con(1,g),put(1,g))

d(1,g)=max(a(1,g),b(1,g))

c(1,g)= pv(1,g)+ratio*d(1,g)

周末忙活了两天终于有结果了,赞一个先~~~~~~~~~

delta,gamma,vega,theta,rho的计算以及敏感性分析还在进行中,完善~~~~~~~(南方财富网)

(责任编辑:张小清)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。