2、要从evpara中循环读取eventzqdm,eventdate做事件研究,
对于evpara.zqdm=tradedata.zqdm and evpara.eventdate=tradedata.date的则进行一次运算CARs:
我自己编了个宏程序,如下,但不行,不知问题在哪里?
%macro build;/*isolate subset of data for a given company, calc Beta on releveant range;
calc CAR on event window; append event period data to Results dataset*/
data t3 t4;
set tradedata;
if zqdm=&eventzqdm and date>&eventdate then output t4;
else if zqdm=&eventzqdm then output t3;
run;
proc sort data=t3;
by descending date;
run;
data betafirm;
set t3;
if 21=<_n_<=60;
run;
data i3 i4;
set index;
if date>&eventdate then output i4;
else output i3;
run;
proc sort data=i3;
by descending date;
run;
data beta_mkt;
set i3;
if 21<=_n_<=60;
run;
data betaboth;
merge betafirm beta_mkt;
run;
proc sort data=betaboth;
by date;
run;
proc reg noprint data=betaboth outest=Coefout;
model ret=indexret;
quit;
data _null_;
set coefout;
call symput('nextalpha',intercept);
call symput('nextbeta',indexret);
run;
data t1 t2;
set tradedata;
if zqdm=&eventzqdm and date>&eventdate then output t2;
else if zqdm=&eventzqdm then output t1;
run;
proc sort data=t1;
by descending date;
run;
data t1;
set t1;
if _n_<=10;
run;
data t2;
set t2;
if _n_<=20;
run;
data eventfirm;
set t1 t2;
run;
proc sort data=eventfirm;
by date;
run;
data i1 i2;
set index;
if date>&eventdate then output i2;
else output i1;
run;
proc sort data=i1;
by descending date;
run;
data i1;
set i1;
if _n_<=10;
run;
data i2;
set i2;
if _n_<=20;
run;
data event_mkt;
set i1 i2;
run;
proc sort data=event_mkt;
by date;
run;
data Car_calc;
merge eventfirm event_mkt;
by date;
if _N_=1 then Car=ret-(&nextalpha + &nextbeta*indexret);
else car =ret-(&nextalpha + &nextbeta*indexret)+holdcar;
holdcar=car;
retain holdcar;
alpha=&nextalpha;
beta=&nextbeta;
run;
data tt;
do n=1 to &nobs;
set evpara point=n;
call symput ('eventzqdm',zqdm);
call symput('eventdate',ltdate);
%build;
end;
stop;
run;作者: shiyiming 时间: 2008-4-4 01:31 标题: Re: 高手怎么都不见了??--如何生成宏程序 Come on man! You should alway ask for idea here instead of asking others to do your work for fee. It takes a day to read your program, too long <!-- s:-) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":-)" title="Smile" /><!-- s:-) -->.作者: shiyiming 时间: 2008-4-8 13:42 标题: Re: 有请各位宏高手赐教 初步弄了个宏程序(见上面),不知问题在哪里?