全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1297 1
2009-03-24

两个表:
1.“个股与市场的日收益率”表,字段包括(股票代码,交易日期,日收益率,市场日收益率)
2.“个股的公告日期”表,字段包括(股票代码,公告日期)
我想从“个股的公告日期”表读出该表的第一个记录(以a表示),然后在“个股与市场的日收益率”表中搜索一下 count(表1.股票代码=a.股票代码 and 表1.交易日期<a.公告日期-30 and 表1.交易日期>=a.公告日期-280)。就是看表1里该股票在公告前的前280天至前30天共有多少天交易记录。
如果count>200,则对这些记录进行回归处理.模型是“日收益率=a+b*市场日收益率”,样本是股票代码=a.股票代码,交易日期<a.公告日期-30 and 交易日期>=a.公告日期-280。
然后把回归生成的a、b以及该次回归的一些统计量放在一个新表(表3中),该表的字段包括(股票代码,公告日期,a值,b值,相应的统计量)
最后将“个股的公告日期”表的指针下移一个,再重复以上的过程,生成的a、b也插入表3中。直至指针移动到表尾。

下面是我写的初步的程序:

1.“个股与市场的日收益率”表table1,字段包括(股票代码stkcd,交易日期date,日收益率r_stk,市场日收益率r_market)
2.“个股的公告日期”表table2,字段包括(股票代码stkcd,公告日期date_gg)

%macro a(x,y);   
data a;
set table1;
where stkcd=x and y-280<=date<y-30;
keep stkcd r_stk r_market;
run;

proc reg data=a outset=d  

model r_stk=r_market;
run;

data d;
set d;
if (_edf_+_p_)<200 then delete;

data e(keep=sn obs  ???)
set d;
sn=_n_;
obs=(_edf_+_p_);
label sn="个股序号"
label obs=" 观测值个数"
run;
%mend a(x,y);


data a
set table2;
keep stkcd date_gg;
%a(stkcd date_gg);           /*这能实现循环吗?*/
run;

二维码

扫码加我 拉你入群

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

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

全部回复
2009-3-25 17:23:00

不能实现循环

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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