全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1843 12
2013-01-08
根据《金融计算与建模:理论、算法与SAS程序》数里面对于First to Default的一篮子信用违约互换定价的例子
例子里面是十个债券
我给缩减到了3个  同时变换了些数字  整体程序应该没问题
但是始终跑不出来结果
求帮忙啊  
毕业论文急用。。

程序如下:

proc iml;
cov={1.0000    0.4015    0.4193
      0.4015    1.0000    0.3639
      0.4193    0.3639    1.0000};
h={0.07,0.25,0.12};
T={[10000]0};
V={[10000]0};
r=0.03;
value=0;
rv=rannor(repeat(1000,10000,3));
Y=rv*(root(cov));
i=1;
j=1;
do while(i<=10000);
    do while(j<=3);
      x=cdf('Normal',Y[i,j]);
      Y[i,j])=-(log(1-x))/h[j];
      j=j+1;
      end;
T[i]=min(Y[i,]);
if T[i]<6 then v[i]=50000*exp(-r*T[i]);
    value=value+v[i];
    j=1;
    i=i+1;
end;
value=value/10000;
print value;
run;
quit;

二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-8 21:08:15
呜呜~~
二维码

扫码加我 拉你入群

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

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

2013-1-8 21:11:04
proc iml;
cov={1.0000    0.4015    0.4193,   /*协方差矩阵,用逗号换行*/
      0.4015    1.0000    0.3639,
      0.4193    0.3639    1.0000};
h={0.07,0.25,0.12};
T={[10000]0};
V={[10000]0};
r=0.03;
value=0;
rv=rannor(repeat(1000,10000,3));
Y=rv*(root(cov));
i=1;
j=1;
do while(i<=10000);
    do while(j<=3);
      x=cdf('Normal',Y[i,j]);
      Y[i,j]=-(log(1-x))/h[j];  /*多了一个括号*/
      j=j+1;
      end;
T=min(Y[i,]);
if T<6 then v=50000*exp(-r*T);
    value=value+v;
    j=1;
    i=i+1;
end;
value=value/10000;
print value;
quit;
二维码

扫码加我 拉你入群

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

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

2013-1-8 21:19:23
ziyenano 发表于 2013-1-8 21:11
proc iml;
cov={1.0000    0.4015    0.4193,   /*协方差矩阵,用逗号换行*/
      0.4015    1.0000     ...
天呐!!!
太感谢了!!!
您吧地址给我  我给您寄两斤铁棍山药表示感谢!!!
真心的啊!!
二维码

扫码加我 拉你入群

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

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

2013-1-8 21:21:22
urmine5683 发表于 2013-1-8 21:19
天呐!!!
太感谢了!!!
您吧地址给我  我给您寄两斤铁棍山药表示感谢!!!
呵呵,不用了哇~心领了!
二维码

扫码加我 拉你入群

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

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

2013-1-8 21:26:29
ziyenano 发表于 2013-1-8 21:21
呵呵,不用了哇~心领了!
这怎么行!知恩图报!!

私信我吧  或者旺旺找我:铁棍儿山药

我家人自己种的 保证正宗的 哈哈哈
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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