楼主: air320322
6042 3

[原创博文] 多重条件筛选 [推广有奖]

  • 4关注
  • 0粉丝

讲师

81%

还不是VIP/贵宾

-

威望
0
论坛币
11520 个
通用积分
9.5113
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3826 点
帖子
241
精华
0
在线时间
989 小时
注册时间
2005-5-28
最后登录
2025-10-12

楼主
air320322 发表于 2012-3-4 19:09:19 |AI写论文
20论坛币

stock_code

stock_name

dt_jzr

cagr

rtn

000001

深发展A

19911231

10

20

000001

深发展A

19921231

15

-10

000001

深发展A

19931231

20

20

000001

深发展A

19941231

25

-10

000001

深发展A

19951231

30

-20

000001

深发展A

19961231

35

20

000001

深发展A

19971231

40

20

000001

深发展A

19981231

45

20

000001

深发展A

19991231

50

-10

000001

深发展A

20001231

55

20

000001

深发展A

20011231

60

10

000001

深发展A

20021231

65

20

000001

深发展A

20031231

70

20

000001

深发展A

20041231

75

20



筛选复合下列条件的股票

条件1、当年的CAGR>30
条件2、前4年(含当年)的RTN中有2年的不得为负

根据上述条件,筛选出的数据集应该为

000001

深发展A

19971231

40

20

000001

深发展A

19981231

45

20

000001

深发展A

19991231

50

-10

000001

深发展A

20001231

55

20

000001

深发展A

20011231

60

10

000001

深发展A

20021231

65

20

000001

深发展A

20031231

70

20

000001

深发展A

20041231

75

20

最佳答案

小麦芽的简单 查看完整内容

data a; input dt_jzr cagr rtn; cards; 19911231 10 20 19921231 15 -10 19931231 20 20 19941231 25 -10 19951231 30 -20 19961231 35 20 19971231 40 20 19981231 45 20 19991231 50 -10 20001231 55 20 20011231 60 10 20021231 65 20 20031231 70 20 20041231 75 20 ; run; data a; set a; stocl_code="000001"; stock_name="深发展A"; output; stocl_code="000002"; stock_name="BBBBBB"; output; ...
关键词:条件筛选 Stock Named codes CAGR

沙发
小麦芽的简单 发表于 2012-3-4 19:09:20
data a;
input dt_jzr cagr rtn;
cards;
19911231 10 20
19921231 15 -10
19931231 20 20
19941231 25 -10
19951231 30 -20
19961231 35 20
19971231 40 20
19981231 45 20
19991231 50 -10
20001231 55 20
20011231 60 10
20021231 65 20
20031231 70 20
20041231 75 20
;
run;
data a;
set a;
stocl_code="000001";
stock_name="深发展A";
output;
stocl_code="000002";
stock_name="BBBBBB";
output;
run;

proc sort data=a;by stocl_code dt_jzr;run;

data b;
set a;
by stocl_code dt_jzr;
if first.stocl_code then seq=1;
else seq+1;
if rtn>0 then grp=1;else grp=0;
n1=lag(grp);
n2=lag2(grp);
n3=lag3(grp);
total= grp+n1+n2+n3;
if seq<=3 then total=.;
if cagr>30 and total>=2 then output;
run;
供参考

藤椅
yongjiang2 发表于 2012-5-24 17:46:40
data a;
input dt_jzr cagr rtn;
cards;
19911231 10 20
19921231 15 -10
19931231 20 20
19941231 25 -10
19951231 30 -20
19961231 35 20
19971231 40 20
19981231 45 20
19991231 50 -10
20001231 55 20
20011231 60 10
20021231 65 20
20031231 70 20
20041231 75 20
;
run;
data a;
set a;
stocl_code="000001";
stock_name="深发展A";
output;
stocl_code="000002";
stock_name="BBBBBB";
output;
run;

proc sort data=a;by stocl_code dt_jzr;run;


本文来自: 人大经济论坛 SAS专版 版,详细出处参考: https://bbs.pinggu.org/forum.php? ... 1&from^^uid=32303

板凳
yongjiang2 发表于 2012-5-24 17:47:24
data a;
input dt_jzr cagr rtn;
cards;
19911231 10 20
19921231 15 -10
19931231 20 20
19941231 25 -10
19951231 30 -20
19961231 35 20
19971231 40 20
19981231 45 20
19991231 50 -10
20001231 55 20
20011231 60 10
20021231 65 20
20031231 70 20
20041231 75 20
;
run;
data a1;
set a;
stocl_code="000001";
stock_name="shenzhengfazhanA";
output;
/* stocl_code="000002";*/
/* stock_name="BBBBBB";*/
/* output;*/
run;

proc sort data=a1 out=a2;
by stocl_code dt_jzr;
run;

data b1;
set a2;
if first.stocl_code then n=1;
else n+1;
if n ne 0 then do;
if cagr>30 and (sum(rtn>=0,lag(rtn)>=0,lag2(rtn)>=0,lag3(rtn)>=0)>=2) then output;
end;
if last.stocl_code then n=0;
run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 04:07