楼主: lfms1988329
4158 5

[有偿编程] sas api获取股票数据 [推广有奖]

  • 0关注
  • 0粉丝

初中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
411 点
帖子
8
精华
0
在线时间
33 小时
注册时间
2015-9-8
最后登录
2022-6-21

50论坛币
    小弟刚刚接触sas半年,希望尝试sas分析股票数据,苦于没有数据。听说可以使用API从新浪等客户端获取股票数据,请问各位前辈是如何操作实现的?能否贴代码看看。如果代码宝贵,能否指点下该方面应该看什么教材?SAS网站上API我找了一些资料,但是不太确定是否是我需要的,还请各位前辈指点,真心感谢!!!

关键词:股票数据 API 前辈指点 如何操作 客户端
Stay hungr
沙发
yang1015661763 发表于 2015-12-21 13:30:20 |只看作者 |坛友微信交流群
同求,我现在是用python的Tushare包 下载股票数据,然后导入SAS ,好麻烦的

使用道具

藤椅
lfms1988329 发表于 2015-12-21 13:47:34 |只看作者 |坛友微信交流群
主要没编程基础,就学过点sas,api什么的也不知道看什么,等高手吧

使用道具

数据国泰安 有现成的啊 SAS整理就OK了 api获取太高端啦

使用道具

报纸
lfms1988329 发表于 2016-2-19 23:33:21 |只看作者 |坛友微信交流群
目标:从yahoo财经获得所有中国股票数据。
      
      程序简单介绍:利用filename url,指定网络的csv文件,之后利用infile导入数据。
      
      存在问题,第一:感觉有网络连接的问题,程序运行时候未改动却有时候可以成功,有时候失败,我测试了20只股票,上海、深圳各

10只,如果2800只,觉得会出问题。

                       第二,从网络获取csv文件可以直接用infile不用下载文件,直接导入sas,但是如果目标文件是excel等编码过的文件,怎么

处理,或者我就是希望下载网络pdf文件,怎么下载?

                       第三,未对log和报错进行控制,大规模批量时候需要控制,不过因为很熟悉log控制了,未写代码。

                       第四,如何对批量数据进行抽检。唯一能想到的就是随机抽10%人工核对一下,略蠢。


%macro yahoo(table=work.cc7,des=work);
/*产生股票代码宏变量,产生全部股票数量宏变量*/
proc sql noprint;
select count(code) into:totalnum from &table;
select name into:ss1-:ss%left(&totalnum) from &table;
quit;

/*读取type2变量,若成功执行*/
%let open=%sysfunc(open(&table));
%if %eval(&open>0) %then %do;
           %let attrn=%sysfunc(attrn(&open,nobs));
   %put attrn=&attrn;
   %do mm=1 %to &attrn;
  %let fetch=%sysfunc(fetchobs(&open,&mm));
  %put fetch=&fetch;
  %let varnum=%sysfunc(varnum(&open,type2));
  %put varnum=&varnum;
  %let getvarc=%sysfunc(getvarc(&open,&varnum));
  %put getvarc=&getvarc;
/*截取type2判断市场是sz还是ss*/
           %let trunc=%sysfunc(substr(&getvarc,7,2));
  %let trunc2=%sysfunc(substr(&getvarc,1,6));
  %let location="http://table.finance.yahoo.com/table.csv?s=&trunc2..ss";
  %let location2="http://table.finance.yahoo.com/table.csv?s=&trunc2..sz";
  %put trunc=&trunc trunc2=&trunc2 &location &location2;
        %if &trunc=SS %then %do;
                 filename urlname url &location;
 data &des..s&trunc2;
      infile urlname dlm=',' FIRSTOBS=2;
  input date yymmdd10. open high low close volume adjust_close;
                  run;
                 %end;

%else %if &trunc=SZ %then %do;
filename urlname url &location2;
                   data &des..z&trunc2;
       infile urlname dlm=',' FIRSTOBS=2;
   input date yymmdd10. open high low close volume adjust_close;
                  run; 
%end;
%end;
%end;
/*读取type2变量,若失败执行*/
%else %do;
%put %str("Can't find table");
%end;
%let close=%sysfunc(close(&open));
%mend yahoo;

options mprint symbolgen=1 mlogic=1;
options mprint=0 symbolgen=0 mlogic=0;

options mprint mfile;
filename mprint 'd:\freddata\desttt';

%yahoo(table=work.cc7,des=work);

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-6 07:27