nectar 发表于 2011-6-25 14:17 
尽管你没有明确,感觉你这个是使用的高频数据,即包含time分时的价格数据。以下程序假设你是使用分时的价格数据。如果你的数据仅仅是日间数据,程序稍作修改就可以使用。
proc sort data=yourdata;
by id date time;
/*提取每个股票最后一笔价格,视其为每日收盘价格*/
data yourdata1;
set yourdata;
by id date time;
if last.date;
year=year(date);
month=month(date);
lag_price=lag(price);
if first.id then lag_price=.;
return=(price/lag_price)-1;
proc sort data=yourdata1;
by id year month date;
proc means data=yourdata1 noprint mean;
var return;
by id year month;
output out=results(drop=_type_ _freq_) mean(return)=avg_monthly_return n(return)=num_freq;
/*选择每个样本观测值在每个月大于等于3*/
data results;
set results;
if num_freq>=3;
run;
您好。也许是我之前的表述有问题。我要求我的return=(P_{i,j,t}/P_{i,j,t-1})-1。i为bond i, j 为day j, t为month t.
您能否帮我再看一下。