sas金融计算清华朱世武数据集char04Word格式.docx

上传人:b****5 文档编号:20494759 上传时间:2023-01-23 格式:DOCX 页数:21 大小:18.08KB
下载 相关 举报
sas金融计算清华朱世武数据集char04Word格式.docx_第1页
第1页 / 共21页
sas金融计算清华朱世武数据集char04Word格式.docx_第2页
第2页 / 共21页
sas金融计算清华朱世武数据集char04Word格式.docx_第3页
第3页 / 共21页
sas金融计算清华朱世武数据集char04Word格式.docx_第4页
第4页 / 共21页
sas金融计算清华朱世武数据集char04Word格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

sas金融计算清华朱世武数据集char04Word格式.docx

《sas金融计算清华朱世武数据集char04Word格式.docx》由会员分享,可在线阅读,更多相关《sas金融计算清华朱世武数据集char04Word格式.docx(21页珍藏版)》请在冰豆网上搜索。

sas金融计算清华朱世武数据集char04Word格式.docx

iflast.f0001;

a_state=gb008+gb009;

a_all=gb004-gb017-gb018;

/*全部a股股本,求全市场股票比率修改此处*/

datac_1(keep=suma_statesuma_allsuma_pubratio_stateratio_pub);

setcend=aaa;

suma_all+a_all;

suma_state+a_state;

suma_pub+gb016;

ratio_state=100*suma_state/suma_all;

ratio_pub=100*Suma_pub/suma_all;

Ifaaa=1;

putsuma_state/Suma_pub/suma_all/Ratio_state/ratio_pub=;

Run;

A股计算结果:

2000年12月31日:

Suma_State=215044425739

Suma_Pub=103400844064

Suma_All=346763200649

Ratio_State=62.01477704

Ratio_Pub=29.818863095

20001年8月31日:

Suma_State=287393936240

Suma_Pub=121828508426

Suma_All=438426705492

Ratio_State=65.551193082

Ratio_Pub=27.787656842

Ratio=65.551193082

4.1.3指数300成份股股本比例计算

创建数据集STALL_GENIUS:

datastall_genius;

iff0003='

A'

;

datacompufin.stall_genius;

setstall_genius;

='

18jan2001'

/*2001年1月18日前全部A股*/

setcompufin.stall_genius;

求数据集C_1,股本数据集,包括2001年1月18日前全部A股股票并标识INX300_GENIUS中的股票。

datacode300;

setcompufin.inx300_genius;

lengthf0002$6.;

ifsubstr(hstocd,1,1)='

1'

thenf0002=substr(hstocd,3,6);

2'

thenf0002=substr(hstocd,5,4);

formatf0002$6.;

procsortdata=code300;

byf0002;

procsortdata=compufin.stall_genius;

datac_1;

mergecompufin.stall_geniuscode300;

全部1127支A股股票的股本计算结果:

datac_2;

setc_1;

datac_2(keep=suma_statesuma_allsuma_pubratio_stateratio_pub);

setc_2end=aaa;

ratio_pub=100*suma_pub/suma_all;

ifaaa=1;

putsuma_state=/suma_pub=/suma_all=/ratio_state=/ratio_pub=;

计算结果:

suma_state=215416057679

suma_pub=104347783661

suma_all=347518799628

ratio_state=61.986878957

ratio_pub=30.026514759

300支成份股的股本计算结果:

datac_3;

ifhstocd=.thendelete;

a_state300=gb008+gb009;

a_all300=gb004-gb017-gb018;

datac_3(keep=suma_state300suma_all300suma_pub300ratio_state300ratio_pub300);

setc_3end=aaa;

suma_all300+a_all300;

suma_state300+a_state300;

suma_pub300+gb016;

ratio_state300=100*suma_state300/suma_all300;

ratio_pub300=100*suma_pub300/suma_all300;

putsuma_state300=;

putSuma_pub300=;

putsuma_all300=;

putRatio_state300=;

putratio_pub300=;

300成份股中股本占全部A股票(1127支)股本的相关比例计算:

datac_4;

mergec_2c_3;

ratio_all=100*Suma_all300/Suma_all;

ratio_state=100*Suma_state300/Suma_state;

ratio_pub=100*Suma_pub300/Suma_pub;

putratio_all=;

putratio_state=;

putratio_pub=;

4.2.1成指300市值比例计算

/*返回日期时间值的日期部分*/

求数据集C_1,股本数据集,包括2000年12月31日前全部A股股票并标识INX300_GENIUS中的股票。

ifsubstr(hstocd,1,3)='

116'

ifsubstr(hstocd,1,5)='

21000'

ifsubstr(f0002,1,1)='

0'

thenf0002a='

00'

||f0002;

/*||起连接作用*/

elsef0002a=f0002;

f0002=f0002a;

mergeacode300;

求2000年12月31日的个股票收盘价,个股以当天收盘价为准,如果停盘则用最近有交易日收盘价。

从行情数据集COMPUFIN.QUOT中求得有效A股数为1060支。

dataquot;

setcompufin.quot(keep=dateclprhstocd);

ifyear(date)=2000;

procsortdata=quot;

byhstocddate;

setquot;

byhstocd;

iflast.hstocd;

/*结果显示,行情数据中1060支A股有数据*/

计算2000年12月31日1060支A股的市值:

procsortdata=quot;

dataquot_c;

mergequotc_1;

a_pub=gb016;

cap_state=clpr*a_state;

cap_pub=clpr*a_pub;

cap_all=clpr*a_all;

dataquot_c(keep=sumcap_allsumcap_statesumcap_pubratio_stateratio_pub);

setquot_cend=aaa;

sumcap_all+cap_all;

sumcap_state+cap_state;

sumcap_pub+cap_pub;

ratio_state=100*sumcap_state/sumcap_all;

ratio_pub=100*sumcap_pub/sumcap_all;

putsumcap_all=;

putsumcap_state=;

putsumcap_pub=;

/*300支A股的市值数据*/

id=1;

datacap300;

mergequotc_2(drop=date);

ifid=.thendelete;

setcap300end=aaa;

state300=gb008+gb009;

pub300=gb016;

all300=gb004-gb017-gb018;

cap_state300=clpr*state300;

cap_pub300=clpr*pub300;

cap_all300=clpr*all300;

sumcap_state300+cap_state300;

sumcap_pub300+cap_pub300;

sumcap_all300+cap_all300;

ratio_state300=100*sumcap_state300/sumcap_all300;

ratio_pub300=100*sumcap_pub300/sumcap_all300;

putsumcap_state300=;

putsumcap_pub300=;

putsumcap_all300=;

putratio_state300=;

300支A股的市值占相应总市值比例计算:

mergequot_ccap300;

r300all_all=100*sumCap_all300/SumCap_all;

r300state_all=100*sumCap_State300/SumCap_all;

r300state_state=100*sumCap_State300/SumCap_state;

r300pub_all=100*sumCap_pub300/SumCap_pub;

putr300all_all=;

putr300state_all=;

putr300state_state=;

putr300pub_all=;

4.2.2行业市值比例计算

ifyear(date)=1999;

/*结果显示,行情数据中923支A股有数据*/

创建数据集STALL_GENIUS,股本数据集,包括1999年12月31日前全部A股股票。

(计算结果一共有1045支股票)

31dec1999'

/*1999年12月31日,其它时点可修改此处*/

dropf0002a;

/*结果显示,有1045支股票的股本数据*/

计算A股市值,即计算1999年12月31日923支A股的市值,结果数据集为QUOT_C:

procsortdata=stall_genius;

mergequotstall_genius;

A股总市值,即,923支A股的市值(注:

这并不是我们要的结果)

datasums(keep=sumcap_allsumcap_statesumcap_pub);

A股行业分类数据集INDCLS:

Dataindcls;

Setcompufin.indcls;

Lengthf0002$6.;

Ifsubstr(scode,1,1)='

orsubstr(scode,1,1)='

6'

;

ifsubstr(scode,1,1)='

thenf0002='

||scode;

elsef0002=scode;

/*结果显示,有1110支A股股票,但有一些没有进行分类*/

将市值数据集QUOT_C和行业分类数据集INDCLS全并,形成数据集MARKCAP:

procsortdata=quot_c;

procsortdata=indcls;

datamarkcap;

mergequot_cindcls;

/*1110个数据*/

删除数据集MARKCAP中的缺失值:

setmarkcap;

ifcap_all=.thendelete;

/*923个数据*/

按沪深两市将数据集MARKCAP分为MARKCAP_SH和MARKCAP_SZ:

datamarkcap_sh;

datamarkcap_sz;

直接输出EXCEL结果表:

%macrob(y);

procsortdata=markcap;

by&

y;

dataweights_&

y(keep=&

y);

iflast_&

y=1;

%macroa(x);

procsortdata=&

x;

procmeansdata=&

varcap_all;

outputout=bsum=sum;

procmeansdata=b;

varsum;

outputout=csum=all;

datab;

mergebc;

sumall+all;

dataa(keep=&

yweights_&

x);

setb;

weights_&

x=100*sum/sumall;

mergeweights_&

ya;

ifweights_&

x=.thenweights_&

x=0;

%menda;

%a(markcap);

%a(markcap_sh);

%a(markcap_sz);

procexportdata=weights_&

y

outfile="

d:

\基于sas系统的金融计算光盘\compufin\%str(&

y)weightsresults.xls"

dbms=excel5replace;

\基于sas系统的金融计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1