全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 金融工程(数量金融)与金融衍生品
1657 2
2014-09-13

运行matlab程序

function Price=GY(cp,X,T,r,coupon,sigma,mcallshedule,Nstep,Nrepl)

dt=T/Nstep;

%mcallshedule:到期赎回价。

s=cp*ones(Nrepl,Nstep);

for j=1:Nrepl;

  for i=1:Nstep-1;

       s(j,i+1)=s(j,i)*exp((r-0.5*sigma^2)*dt+sigma*sqrt(dt)*randn);%monte carlo 模拟股价。

  end;

end;

X=X*ones(Nrepl,1);

num0=0;

num1=0;

p=zeros(Nrepl,1);

for j=1:Nrepl;%触发回售条款实质是调整转股价。

  for k=0:T-1

    for        i=(1+k*Nstep/T+round(0.9/(k+1))*0.5*Nstep/T);

((k+1)*Nstep/T-30*floor((k+1)/T));%转股期限。

      if s(j,i:i+29)<(X(j,1)*0.8);

          X(j,1)=X(j,1)*mean(s(j,i:i+29));

          break

      end;

   end;

   for a=(T-min(k+1,T-1))*Nstep/T:Nstep/T-30;

       if s(j,a:a+19)>=1.3*X(j,1);%统计转股价修正后触发赎回条款的路径。

p(j,1)=((100/X(j,1))*s(j,a+28)+coupon(1,1:floor(T*a/Nstep))*ones(floor(T*a/Nstep),1))*exp(-r*dt*a);

%理智的投资者会在公司执行赎回条件之前转股。

   num0=num0+1;

   break;

       end

   end;

  end;

end;

for j=1:Nrepl;%统计转股价没有修正情况下触发赎回条款的路径。

    for i=0.5*Nstep/T:Nstep-30;%转股期限。

        if(s(j,i:i+19)>=1.3*10.7)&(p(j,1)==0);

p(j,1)=((100/10.7)*s(j,i+28)+coupon(1,1:floor(T*i/Nstep))*ones(floor(T*i/Nstep),1))*exp(-r*dt*i);%理智的投资者会在公司执行赎回条款之前转股。

      num1=num1+1;

    break

        end

    end

end;


出现

??? Error: File: D:\matlab\work\GY.m Line: 36 Column: 81

Incomplete or misformed expression or statement.

是怎么回事啊?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-9-14 09:49:37
yh9086 发表于 2014-9-13 22:51
运行matlab程序function Price=GY(cp,X,T,r,coupon,sigma,mcallshedule,Nstep,Nrepl)dt=T/Nstep;%mcallshed ...
第三十六行表达式不全
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-9-14 19:41:49
if(s(j,i:i+19)>=1.3*10.7)&(p(j,1)==0);

in matlab AND statement uses && not &
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群