搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  TRD_Mnth.txt
资料下载链接地址: https://bbs.pinggu.org/a-1759139.html
附件大小:
验证动量效应,通过对2012年2月80支股票收益率进行排序,收益率从小到大分成10组,收益率最小的8只股票的组合为loser,最大的8只股票为winner,计算每月winner和loser组合收益率。现在means数据集中已得2012年3月winner和loser组合收益率,希望输出3月winner和loser收益率(即means数据集中最后一行及第一行数据),以及winner-loser组合收益率差值(即最后一行减第一行)。不知道该如何通过first.var和last.var,以及last.var-first.var输出想要的结果。


源数据txt文件见附件,代码如下:


libname home "C:\Users\SONY\Desktop\sas\vk30igy3\data\";

DATA TRD_Mnth (Label="月个股回报率文件");
Infile 'C:\Users\SONY\Desktop\sas\vk30igy3\data\TRD_Mnth.txt' encoding="utf-8" delimiter = '09'x Missover Dsd lrecl=32767 firstobs=2;
Format Stkcd $6.;
Format Trdmnt $10.;
Format Mretwd 10.6;
Informat Stkcd $6.;
Informat Trdmnt $10.;
Informat Mretwd 10.6;
Label Stkcd="证券代码";
Label Trdmnt="交易月份";
Label Mretwd="考虑现金红利再投资的月个股回报率";
Input Stkcd $ Trdmnt $ Mretwd ;
Run;

data home.trd_mnth;
set trd_mnth;
run;

data t1;
set home.trd_mnth;
year=substr(Trdmnt,1,4)*1;/*乘1是为了将字符型转换成数值型*/
month=substr(Trdmnt,6,2)*1;
ymonth=year*100+month;
run;

proc sort data=t1(where=(ymonth=201202)) out=t2; by descending Mretwd; run;

/*分成10组*/
proc rank data=t2 out=t3 groups=10;
ranks portfolio;
var Mretwd;
run;

data t3;
set t3;
portfolio=portfolio+1;
run;

/*将分组数据合并到原始数据中*/
proc sql;
create table t4 as
select a.stkcd,a.year,a.month,a.ymonth,a.Mretwd,b.portfolio
from t1 as a left join t3 as b
on a.stkcd=b.stkcd
order by b.portfolio,a.ymonth;
quit;

proc sort data=t4(where=(ymonth=201203)); by portfolio ymonth;run;

/*计算每月资产组合的收益*/
proc means data=t4 noprint;
by portfolio ymonth;
var Mretwd;
output out=means mean=;
run;
谢谢大家



    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

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

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

GMT+8, 2026-1-31 10:35