现在网上有越来越多开源的股票数据的获取方法,言简意赅,小编在这里提供2种方法去获取股票数据,第一种呢还是针对于所有的用户,通过使用第三方平台提供的方法来获取到所需要的股票数据。
方法一:使用免费的网站进行
详情如下:
第一步:进入:优矿 - 大数据时代的量化投资 - 通联量化实验室
使用此平台需要先用手机号注册一个账号。
在研究数据中可以看到平台提供的接口,代码为:DataAPI.MktEqudGet(secID=u"",ticker=u"688001",tradeDate=u"20190723",beginDate=u"",endDate=u"",isOpen="",field=u"",pandas="1")
参数:secID是通联编制的证券编码;ticker通用交易代码,如'000001';tradeDate交易日期(前面三个按需填写,至少填写一个就行,一般就填写交易代码即可获得响应的股票信息);beginDate开始时间;endDate结束时间;isOpen股票今日是否开盘标记:0-未开盘,1-交易日,可空;field所需字段 可以是列表,可空;pandas1表示返回 pandas data frame,0表示返回csv,可空
第二步:在此页面点击“开始研究”,进入到编辑页面(需要注册登录),新建一个Notebook
然后打开Notebook之后输入代码,我这里是获得了股票编号为000001的股票从2021年1月1号到9月30号的数据
df=DataAPI.MktEqudAdjGet(secID=u"",ticker=u"000001",tradeDate=u"",beginDate=u"20210101",endDate=u"20210930",isOpen="",field=u"",pandas="1")
df.to_csv("date.csv",encoding="gbk")
输入之后点击运行或者Ctrl+Enter即可运行代码,结果如下图所示
如果需要下载为csv格式只需要将代码改为:
df=DataAPI.MktEqudAdjGet(secID=u"",ticker=u"000001",tradeDate=u"",beginDate=u"20210101",endDate=u"20210930",isOpen="",field=u"",pandas="1")
df.to_csv('date.csv',encoding='gbk')
然后进入数据页面,选中文件进行下载即可。
方法二:使用代码对股票实时数据进行获取
2.1:使用新浪实时股票数据接口
http://hq.sinajs.cn/list=code
其中code为股票编码为“sh”+股票代码,以大秦铁路(601006)为例:code="sh601006"
则查询网址为:http://hq.sinajs.cn/list=sh601006
其他的股票代码可以参考:上证所有股票代码及名称大全_上证股票代码一览表 / 连板网
这个url会返回一条字符串:
var hq_str_sh601006="大秦铁路,6.210,6.200,6.210,6.260,6.190,6.210,6.220,30938818,192908180.000,797700,6.210,450485,6.200,385400,6.190,154300,6.180,112800,6.170,258600,6.220,207200,6.230,314000,6.240,610842,6.250,1240880,6.260,2021-12-06,15:00:00,00,";
这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。
0:”大秦铁路”,股票名字;
1:”27.55″,今日开盘价;
2:”27.25″,昨日收盘价;
3:”26.91″,当前价格;
4:”27.55″,今日最高价;
5:”26.20″,今日最低价;
6:”26.91″,竞买价,即“买一”报价;
7:”26.92″,竞卖价,即“卖一”报价;
8:”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
9:”589824680″,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;
10:”4695″,“买一”申请4695股,即47手;
11:”26.91″,“买一”报价;
12:”57590″,“买二”
13:”26.90″,“买二”
14:”14700″,“买三”
15:”26.89″,“买三”
16:”14300″,“买四”
17:”26.88″,“买四”
18:”15100″,“买五”
19:”26.87″,“买五”
20:”3100″,“卖一”申报3100股,即31手;
21:”26.92″,“卖一”报价
(22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”
30:”2008-01-11″,日期;
31:”15:05:32″,时间;
举一个简单的js例子:
<script type="text/javascript" src="http://hq.sinajs.cn/list=sh601006" charset="gb2312"></script>
<script type="text/javascript">var elements=hq_str_sh601006.split(",");document.write("current price:"+elements[3]);
</script>
这段代码输出大秦铁路(股票代码:601006)的当前股价:current price:14.20
如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;
例如:保利发展和大秦铁路:https://hq.sinajs.cn/list=sh601006,sh600048
2.2 Baidu&Google的财经数据
网址为:百度新闻——海量中文资讯平台
最后获取的数据仍然会转到新浪的接口(2.1所示),所以不做展示。