楼主: tamamamo
8511 1

急!!关于一个股票的多期平均收益率计算 月平均与日平均 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
1 小时
注册时间
2011-3-21
最后登录
2011-4-6

楼主
tamamamo 发表于 2011-3-21 20:50:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
以下是年平均 。。相求日平均 月平均收益率如何编程。求高手
data a1;
set r_year;
where 1995 <= year(date) <= 2005;
proc print;
run;
/*对数据集转置*/
proc transpose data=a1 out=a2;
var r_pct;
proc print;
run;
/*计算年平均收益*/
data a5 ;
set bb;
if last_y=1 and 1997<= year(date) <= 2005;
run;
data a6;
retain begin end;
set a5 end=lastobs;
if _n_=1 then begin=clpr; /* 将数据集第一个观测值的价格赋给变量begin */
if lastobs then do;
end=clpr; /* 将数据集最后一个观测值的价格赋给变量end */
output;
end;
data a6(keep=gm);
set a6;
t=2005-1997+1;
gm=(end/begin)**(1/t)-1;
proc print;
run;
/*该方法主要优点是精确*/
二维码

扫码加我 拉你入群

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

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

关键词:日平均 收益率 Where year Data 收益率 股票 日平均

沙发
aomaigaode 发表于 2011-4-5 23:55:47
日收益计算

data r_day (keep=date r_pct r_log label="日收益");


set stoindif.a1a0001;


r_pct=dif(clpr_r)/lag(clpr_r);


r_log=log(clpr_r)-log(lag(clpr_r));


run;


周收益计算

程序一:


data a;


set stoindif.a1a0001;


wd=weekday(date);


dif=dif(wd);


dif2=dif(date);


if (dif<0 and dif^=.)or dif2>=7 then


index=1;else index=0;



data a(keep=date clpr_r index);


set a;


date=lag(date);


clpr_r=lag(clpr_r);


if index=1;



data r_week(keep=date r_pct r_log);


set a;


r_pct=dif(clpr_r)/lag(clpr_r);


r_log=log(clpr_r)-log(lag(clpr_r));


if r_log=. then delete;


run;



程序二:


data b;


set stoindif.a1a0001;


wk=int((date-3)/7+2);


/* wk为周的标号,设定196011日为第一周。由于196011日为周五,所以第一周共有三天。注意该周(196011日到3日)对应日期按SAS的标准分别为0, 12(于是(date-3)/7都等于-1)。由此可以理解为什么这样设定表达式*/


proc sort;


by date;


run;



data b;


set b;


last_wk=last.wk;


by wk;


run;



data b(keep=date r_pct1 r_log1);


set b;


if last_wk=1;


r_pct1=dif(clpr)/lag(clpr);


r_log1=log(clpr)-log(lag(clpr));


run;



data c;/*检测程序一和程序二的一致性*/


merge r_week b;


by date;


if r_pct=r_pct1 then aa=1;


else aa=0;/*最后一个不一样*/


run;


已有 1 人评分热心指数 收起 理由
crackman + 1 鼓励积极发帖讨论

总评分: 热心指数 + 1   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 09:29