全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5492 5
2014-01-03
这个宏本来是本学期SAS课程的一个小作业,本人感觉用处很广,可以抓取数据以后做各种分析。支持全球任意股市。所以就把老师给的参考答案发上来造福大家。只作为学习分享用,版权属于Shusong Jin老师。
new_get_hist_quote.zip
大小:(1.33 KB)

只需: 3 个论坛币  马上下载

本附件包括:

  • new_get_hist_quote.sas


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-1-4 09:16:07
请问这个支持动态抓取吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-1-8 09:36:04
测试可用
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-18 21:21:41
*我们的SAS老师也给出了一个类似题目的答案,但是运行的时候有个地方有错误,希望大家能帮忙纠正,谢谢!代码如下;

%macroget_hist_quote(instrument=msft,start='01jan2000'd,end=,out=) ;

     

    %localinstrument start end;

    %locals a b c d e f g q y z x url;

   

    %if(%superq(instrument)eq ) %then

        %letinstrument=msft;

    %letinstrument=%lowcase(&instrument);

    %if(%superq(end) eq ) %then

        %letend=%str(%')%sysfunc(today(),date9.)%str(%'d);

    %if(%superq(start) eq ) %then

        %letstart='01jan2000'd;

   

    %if(%superq(out) eq ) %then

        %letout=inst_%sysfunc(compress(&instrument,%str(-./^)));

    %lets=&instrument;

    %leta=%sysfunc(month(&start));

    %let a=%eval_r(&a-1);

    %letb=%sysfunc(day(&start));

    %if &b < 10 %then %let b=0&b;

    %letc=%sysfunc(year(&start));

    %letd=%sysfunc(month(&end));

    %let d=%eval_r(&d-1);

    %lete=%sysfunc(day(&end));

    %if&e < 10 %then %let e=0&e;

    %letf=%sysfunc(year(&end));

    %letg=d;

    %letq=q;

    %lety=0;

    %letz=&s;

    %letx=.csv;

    %letand=%str(&);

    %let url=http://ichart.finance.yahoo.com/table.csv;

    %leturl=&url.?s=&s;

    %leturl=&url.&and.d=&d.&and.e=&e.&and.f=&f;

%leturl=&url.&and.g=&g;

    %leturl=&url.&and.a=&a.&and.b=&b.&and.c=&c;

    %leturl=&url.&and.ignore=.csv;

    %put&url;

   

    data_null_;

      numb= ceil (ranuni(0)*10000000);

      r= 'A' || put(numb, Z7.);

      callsymput ('ran', r);

    run;

   

    filenamemyquote url "&url";

    data&ran;

        infilemyquote dlm=',' dsd firstobs=2;

        

        informatDate yymmdd10. ;

        formatDate yymmdd10. ;

        retaininstrument "&instrument";

        inputdate

              Open

              High

              Low

              Close

              Volume

              Adj_Close;

   

    procsql;

        createtable &out as

            selectdistinct *

              from&ran

              wherevolume ^= 0

              orderby date;

    quit;

    odsselect none;

    procdatasets;

        delete&ran;

    run;

    odsselect all;

%mend get_hist_quote;

%get_hist_quote(instrument=600196.SS,start='01jan1991'd,end=,out=);
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-9 15:44:34
看一下看一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-24 03:13:24
哇哦,这么多年了,竟然还有人下载。感谢大家!我已经从物理本科生变成统计phd了....多亏SAS
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群