文档详情

用SAS读取大智慧分笔交易数据(SAS完整程序)

人***
实名认证
店铺
DOCX
16.33KB
约4页
文档ID:518506370
用SAS读取大智慧分笔交易数据(SAS完整程序)_第1页
1/4

调用程序:***********************设置日期**********************************************************;%let date=b090717;%let date2=z090717;%let date3=090717;****************建立逻辑库;******************************************************;libname radata 'E:\我的数据库\radata'; libname result 'E:\我的数据库\Dayresult'; *****************读取分笔数据****************************************************************;options mstored sasmstore=radata compress=yes mprint error=10;%DzhFBSJ(D:\Program Files\dzh2\data\sh\report.dat,sh,radata.hqmb090717);%DzhFBSJ(D:\Program Files\dzh2\data\sz\report.dat,sz,radata.hqmbsz090717);%comput;主程序:options nosource nonumber nodate nonotes nomprint nomlogic noxwait mstored sasmstore=radata compress=yes mprint error=10;%macro DzhFBSJ(filename,code,dsname)/store;%put %sysfunc(putn(%sysfunc(time()),time.)) 开始读取,请稍候...;%let code=%upcase(&code); %local market;%if &code ne SH and &code ne SZ and &code ne HK %then %do;%let market=%sysfunc(substr(&code,1,2));%let findcode=1;%end;%else %do;%let market=&code;%let findcode=0;%end;/*判断文件是否被占用开始*/%let PrpTempFile = %sysget(temp)\dzhFileBySas.tmp;%if %sysfunc(fileexist(&filename))=0 %then%do; %put 文件 &filename 不存在!;%return;%abort ABEND; %end;%let rc=%sysfunc(filename(FileRef,&filename));%let fid=%sysfunc(fopen(&FileRef));%if &fid=0 %then %do;%put . &filename.已被大智慧2占用,正在备份该文件并从备份文件读取数据(不要关闭复制窗口)...;filename prppipe pipe "copy /y &filename. &PrpTempFile.";data _null_;infile prppipe;input copymsg $;put ' ' copymsg;call symput('filename',"&PrpTempFile");run;filename prppipe;%end;%else %do;%let rc=%sysfunc(fclose(&fid));%end;%let rc=%sysfunc(filename(FileRef)); /*判断文件是否被占用结束*//*开始读取数据...*/filename DzhFile "&filename";data &dsname;attrib dm format=$8. label='代码' rq format=datetime. label='时间' zjcj label='最近成交价' zss label='总手数'je label='金额' xss label='现手数' bs label='总笔数' mm format=$2. label='内外盘' mr1jg label='买一价' mr1sl label='买一量' mr2jg label='买二价' mr2sl label='买二量' mr3jg label='买三价' mr3sl label='买三量' mr4jg label='买四价' mr4sl label='买四量' mr5jg label='买五价' mr5sl label='买五量'mc1jg label='卖一价' mc1sl label='卖一量' mc2jg label='卖二价' mc2sl label='卖二量' mc3jg label='卖三价' mc3sl label='卖三量' mc4jg label='卖四价' mc4sl label='卖四量'mc5jg label='卖五价' mc5sl label='卖五量';retain zssSaved;infile DzhFile recfm=n end=eof;input @13 SecCounts ib4.;do SecID=1 to SecCounts; SecPos=018x + 1 + (SecID-1)*64; input @(SecPos) dm $6. @(SecPos+10) RecordCounts ib4. @(SecPos+14) BlockNo ib2.; dm = compress("&market"||dm,byte(0)||' '); %if &findcode=1 %then %do; if dm = "&code" then do; %end;%else %do; if dm in:("&market") then do; %end; BlockID = 0; RecordID=0; zssSaved=0; do while (BlockID < 25 and BlockNo ne -1); r=0; do while (RecordID

下载提示
相似文档
正为您匹配相似的精品文档