楼主: wkn1986
2846 11

请问计算收益率的程序,哪里出错了? [推广有奖]

  • 0关注
  • 4粉丝

已卖:127份资源

教授

63%

还不是VIP/贵宾

-

威望
0
论坛币
1656 个
通用积分
12.9139
学术水平
8 点
热心指数
14 点
信用等级
5 点
经验
10268 点
帖子
549
精华
0
在线时间
2400 小时
注册时间
2008-9-15
最后登录
2025-11-18

楼主
wkn1986 发表于 2010-5-30 22:00:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
input ticker $ date mmddyy10. price;
format date mmddyy10.;
cards;
ABC   1/1/2002  10
ABC   1/2/2002  11
ABC   1/5/2002  12
ABC   1/6/2002  13
ABC   1/7/2002  14
DEF   1/1/2002  9
DEF   1/2/2002  11
DEF   1/5/2002  13
DEF   1/6/2002  15
DEF   1/7/2002  18
;
run;
data a1;
set a;
by ticker date;
if first.ticker=1 then seq=1;
else seq+1;
run;
%let l=1;
data a2;
do i=1 to n;
set a1 point=i nobs=n;
if (seq le &l.) then do;
return=.;
output;
end;
else  do;
return=price/lag&l.(price)-1;
output;
end;
end;
stop;
run;
想要以ticker和date排序,得到同样的ticker下price/lag&l.(price)-1的值,但是结果不对。数据是论坛里的。多谢了!
二维码

扫码加我 拉你入群

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

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

关键词:哪里出错了 收益率 ticker RETURN output 程序 收益率

沙发
wkn1986 发表于 2010-5-30 22:00:32
自己先顶了啊

藤椅
happy_jackie 发表于 2010-5-30 22:12:29
很专业,不是很懂
双面人

板凳
wkn1986 发表于 2010-5-30 22:14:49
帮帮忙吧,多谢啦,不知说清楚没有,可以运行一下试试。谢谢啦

报纸
gssdzc 在职认证  发表于 2010-5-30 22:21:52
接着顶。。。。。。。。。。

地板
amsophia 发表于 2010-5-30 22:34:09
不懂………………
相信。

7
wkn1986 发表于 2010-5-30 22:44:14
请问楼上哪里不懂啊?谢谢

8
zhentao 发表于 2010-5-30 23:26:59
你的目的是什么?另外在你第三个data步里,你的n没有赋值怎么能循环呢。

9
crackman 发表于 2010-5-30 23:49:14
错在LAG
因为LAG是没有分组
但是你希望得到是分组的
所以出现问题了

10
crackman 发表于 2010-5-30 23:54:38
data a;
input ticker $ date mmddyy10. price;
format date mmddyy10.;
cards;
ABC   1/1/2002  10
ABC   1/2/2002  11
ABC   1/5/2002  12
ABC   1/6/2002  13
ABC   1/7/2002  14
DEF   1/1/2002  9
DEF   1/2/2002  11
DEF   1/5/2002  13
DEF   1/6/2002  15
DEF   1/7/2002  18
;
run;
data crackman;
set a;
by ticker date;
lag=lag(price);
if first.ticker=1 then lag=.;
return=price/lag-1;
format return f8.2;
drop lag;
run;

/*
%let l=1;
data a2;
do i=1 to n;
set a1 point=i nobs=n;
if (seq le &l.) then do;
return=.;
output;
end;
else  do;
return=price/lag&l.(price)-1;
output;
end;
end;
stop;
run;
*/

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

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