|
|
8#

楼主 |
发表于 2009-12-16 11:42:04
|
只看该作者
Re: 关于求standard deviation的问题
大家看看我的程序,给提点意见,我总共有50万个observations,如何更有效率一些。
简要说明一下,nacdslink2是我的data,crsp.dsf是服务器上股票数据,我的data日期是不连续的,我只要我的data中日期的前180天的股票ret的standard deviation。
这个程序里面我用的是我的日期前的180天,实际上我想要的是我的日期前在crsp里的180个trading day,也就是180个数据,不过我没想出怎么写好。
大家给看看什么方法更有效率一些?谢谢!
[code:3k3w94yq]
libname d '/home/dengzi';
libname a "/sastemp12/dengzi";
data stock.volatility;
run;
%macro volatility;
%do i = 1 %to 504089;
%put &i;
data a.temp1;
set d.nacdslink2;
if _N_=&i;
run;
proc sql;
create table a.temp2 as
select a.*, b.date, abs(b.prc) as price, b.ret
from a.temp1 a, crsp.dsf b
where a.permno=b.permno and b.date<a.date and b.date>=intnx('day', a.date, -180) and abs(prc)>0
order by permno, date;
quit;
proc means data=a.temp2 noprint;
var ret;
output out=a.temp3 std=volatility;
run;
data a.temp3;
merge a.temp1 a.temp3(keep=volatility);
run;
data d.volatility;
set d.volatility a.temp3;
run;
%end;
%mend;
%volatility;
run;
[/code:3k3w94yq] |
|