全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
调用程序:*设置日期*;%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 Filesdzh2datashreport.dat,sh,radata.hqmb090717);%DzhFBSJ(D:Program Filesdzh2dataszreport.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 (RecordIDRecordCounts and r236 and not eof); p=041000x + 1 + (236 * 52)*BlockNo + r*52; input p rq ib4. (p+4) zjcj float4. (p+8) zss float4. (p+12) je float4. p+16 bs pib2. p+18 flag ib3. (p+21) mmp ib1. (p+42) mr1jg ib1. (p+22) mr1sl pib2. (p+43) mr2jg ib1. (p+24) mr2sl pib2. (p+44) mr3jg ib1. (p+26) mr3sl pib2. (p+45) mr4jg ib1. (p+28) mr4sl pib2. (p+46) mr5jg ib1. (p+30) mr5sl pib2. (p+47) mc1jg ib1. (p+32) mc1sl pib2. (p+48) mc2jg ib1. (p+34) mc2sl pib2. (p+49) mc3jg ib1. (p+36) mc3sl pib2. (p+50) mc4jg ib1. (p+38) mc4sl pib2. (p+51) mc5jg ib1. (p+40) mc5sl pib2. ; rq = rq + (DHMS(MDY(1,1,1970),0,0,0)-DHMS(MDY(1,1,1960),0,0,0) ); if dm in:(SH50,SH51,SZ184,SZ15,SZ16,SH58,SZ03) then do; roundunit=0.001;jgdiv=1000; end; else do; roundunit=0.01;jgdiv=100; end; zjcj=round(zjcj,roundunit); zss=round(zss,roundunit);je=round(je,roundunit); mr1jg=round(zjcj+mr1jg/jgdiv,roundunit); mr2jg=round(zjcj+mr2jg/jgdiv,roundunit); mr3jg=round(zjcj+mr3jg/jgdiv,roundunit); mr4jg=round(zjcj+mr4jg/jgdiv,roundunit); mr5jg=round(zjcj+mr5jg/jgdiv,roundunit); mc1jg=round(zjcj+mc1jg/jgdiv,roundunit); mc2jg=round(zjcj+mc2jg/jgdiv,roundunit); mc3jg=round(zjcj+mc3jg/jgdiv,roundunit); mc4jg=round(zjcj+mc4jg/jgdiv,roundunit); mc5jg=round(zjcj+mc5jg/jgdiv,roundunit); f=put(flag,binary24.0); if substr(f,24,1)=1 then mr1sl=mr1sl*32; if substr(f,23,1)=1 then mc1sl=mc1sl*32; if substr(f,20,1)=1 then mr2sl=mr2sl*32; if substr(f,19,1)=1 then mc2sl=mc2sl*32; if substr(f,16,1)=1 then mr3sl=mr3sl*32; if substr(f,15,1)=1 then mc3sl=mc3sl*32; if substr(f,12,1)=1 then mr4sl=mr4sl*32; if substr(f,11,1)=1 then mc4sl=mc4sl*32; if substr(f,8,1)=1 then mr5sl=mr5sl*32; if substr(f,7,1)=1 then mc5sl=mc5sl*32; if mmp=-128 or mmp=-96 then mm=外; else mm=内; xss =zss - zssSaved; zssSaved = zss; output; RecordID=RecordID+1; r=r+1; end; BlockID=BlockID+1; input (SecPos+14+BlockID*2) BlockNo ib2.; end; end;end;keep dm rq zjcj zss je xss mm mr1jg mr1sl mr2jg mr2sl mr3jg mr3sl mr4jg mr4sl mr5jg mr5sl mc1jg mc1sl mc2jg mc2sl mc3jg mc3sl mc4jg mc4sl mc5jg mc5sl;*keep dm rq f mr1sl mr2sl mr3sl mr4sl mr5sl mc1sl mc2sl mc3sl mc4sl mc5sl;stop;run;filename dzhfile;%put %sysfunc(putn(%sysfunc(time(),time.) 读取结束,结果保存在&dsname!;%mend;/* 大智慧新一代行情软件分笔数据读取程序V1.0DzhFBSJ参数说明:第1个:分笔数据文件完整名称,如d:dzhdatashreport.dat或d:dzhdatash20070126.PRP等第2个:可以是SH,SZ或类拟于SH000001,SZ000001的证券代码. 如果是SH或SZ读出沪市或深市所有代码的分笔数据,否则只读出该代码的分笔数据第3个:分笔数据要保存到哪个数据集,如work.shhqmb等.调用例子:%DzhFBSJ(d:dzhdatashreport.dat,sh600000,shhqmb);%DzhFBSJ(d:dzhdatash20070
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年城口县辅警招聘考试题库及参考答案详解1套
- 2023年辽阳辅警协警招聘考试备考题库附答案详解(能力提升)
- 2023年金华辅警招聘考试真题附答案详解(b卷)
- 2024年博尔塔拉蒙古自治州辅警招聘考试真题含答案详解(精练)
- 2024年宜昌辅警协警招聘考试备考题库及答案详解(历年真题)
- 2024年吴忠辅警招聘考试真题及1套参考答案详解
- 2023年菏泽辅警协警招聘考试真题含答案详解(综合题)
- 2023年许昌辅警协警招聘考试真题及一套参考答案详解
- 2024年信阳辅警协警招聘考试真题附答案详解(典型题)
- 2023年陇南辅警招聘考试真题含答案详解
- 浙江安全生产条例培训课件
- 铁路冬季劳动安全培训课件
- 教改课题申报书
- 博物馆人员安全培训课件
- 2024年西安培华学院公开招聘辅导员笔试题含答案
- 检验科日常医疗质量分析
- 2025年秋期国家开放大学《形势与政策》专题测验1-5+大作业答案
- 均质机全套课件
- 2025年学位英语题库真题及答案
- 女性素质提升培训课件
- 北京版六年级英语重点词汇归纳
评论
0/150
提交评论