首页 >> 大全

金融量化分析-python量化分析系列之

2023-11-25 大全 28 作者:考证青年

财经数据接口包的使用(一)

是一款开源免费的金融数据接口包,可以用于获取股票的历史数据、年度季度报表数据、实时分笔数据、历史分笔数据,本文对的用法,已经存在的一些问题做一些介绍。

一:安装

为避免由于依赖包缺失导致安装失败,请先安装,百度网盘地址:

链接: 密码:6wq8

安装直接一直下一步即可

安装完成之后,会自动配置环境变量,直接就可以用了,cmd打开命令行窗口,使用命令

pip

即可安装

二:的使用 1、获取历史数据之

参数说明:

• code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)

• start:开始日期,格式YYYY-MM-DD

• end:结束日期,格式YYYY-MM-DD

• ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D

• :当网络异常后重试次数,默认为3

• pause:重试时停顿秒数,默认为0

返回值说明:

• date:日期

• open:开盘价

• high:最高价

• close:收盘价

• low:最低价

• :成交量

• :价格变动

• :涨跌幅

• ma5:5日均价

• ma10:10日均价

• ma20:20日均价

• v_ma5:5日均量

• :10日均量

• :20日均量

• :换手率[注:指数无此项]

调用方法:

例一:

import tushare as ts 
data=ts.get_hist_data(‘300032’) 
print(data)

量化金融python_用python做量化分析_

结果展示:

        open   high  close    low     volume  price_change  p_change  \
date                                                                        
2018-12-04  16.80  17.15  17.09  16.70   52382.91          0.25      1.49   
2018-12-03  17.00  17.22  16.84  16.62   53706.54          0.58      3.57   
2018-11-30  16.30  16.39  16.26  15.72   39473.33          0.04      0.25   
2018-11-29  17.05  17.09  16.22  16.20   43111.44         -0.68     -4.02   
2018-11-28  16.70  16.94  16.90  16.20   45034.68          0.23      1.38   
2018-11-27  16.77  16.88  16.67  16.52   34464.46          0.15      0.91   
2018-11-26  16.75  16.95  16.52  16.11   34463.00         -0.18     -1.08   
2018-11-23  18.01  18.02  16.70  16.60   77016.79         -1.20     -6.70   
2018-11-22  18.25  18.27  17.90  17.86   47241.00         -0.15     -0.83   
2018-11-21  18.00  18.17  18.05  17.77   68355.30         -0.33     -1.79   

               ma5    ma10    ma20      v_ma5     v_ma10     v_ma20  
date                                                                 
2018-12-04  16.662  16.915  17.569   46741.78   49524.95   74213.35  
2018-12-03  16.578  17.044  17.603   43158.09   55527.30   76015.06  
2018-11-30  16.514  17.249  17.666   39309.38   59021.37   78567.25  
2018-11-29  16.602  17.503  17.748   46818.07   66538.81   82437.55  
2018-11-28  16.938  17.792  17.800   47643.99   78491.83   84790.15  
2018-11-27  17.168  17.943  17.812   52308.11   87770.77   86009.69  
2018-11-26  17.510  18.066  17.819   67896.51   93372.31   87098.74  
2018-11-23  17.984  18.203  17.831   78733.36   97700.81   87289.41  
2018-11-22  18.404  18.273  17.846   86259.55   94334.13   85500.81  
2018-11-21  18.646  18.239  17.799  109339.68   96096.54   85845.67  
2018-11-20  18.718  18.223  17.773  123233.42   98901.76   84578.53  
2018-11-19  18.622  18.162  17.736  118848.10   96502.82   82182.74 

请读者注意,文档中的注释并不准确,使用该接口并不能获取股票自上市以来的所有日线数据,例如这里举的例子,金龙机电这只股票(2009年12月25日上市)。

请再看例子:

例二:

import tushare as ts 
data=ts.get_hist_data('603712',start='2018-11-28',end='2018-12-01') 
print(data)

返回结果是:

             open   high  close    low    volume  price_change  p_change  \
date                                                                       
2018-11-30  16.30  16.39  16.26  15.72  39473.33          0.04      0.25   
2018-11-29  17.05  17.09  16.22  16.20  43111.44         -0.68     -4.02   
2018-11-28  16.70  16.94  16.90  16.20  45034.68          0.23      1.38   ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  
date                                                              
2018-11-30  16.514  17.249  17.666  39309.38  59021.37  78567.25  
2018-11-29  16.602  17.503  17.748  46818.07  66538.81  82437.55  
2018-11-28  16.938  17.792  17.800  47643.99  78491.83  84790.15  

2、获取历史数据之

作者提供另外一个函数用于获取股票历史数据,该函数的调用网页文档没有给出例子,在这里依然用上面的例子来作测试:

例三:

import tushare as ts 
data=ts.get_h_data(‘300032’) 
print(data)

返回结果:

[Getting data:]   open   high    close  low   volume     amount
date                                                         
2018-11-30       16.30  16.39  16.26  15.72  3947333.0  63721274.0
2018-11-29        17.05  17.09  16.22  16.20  4311144.0  72000288.0
2018-11-28        16.70  16.94  16.90  16.20  4503468.0  75076700.0

在不指定开始时间和结束时间时,该函数默认返回最近一年的日线数据,返回的数据与不同的是,该函数只返回开盘价(open)、最高价(high)、收盘价(close)、最低价(low)、成交量()、成交金额()六列

同样的,测试一下该接口能不能获取更早一些的数据:

import tushare as ts 
data=ts.get_h_data('603712',start='2018-11-28',end='2018-12-01') 
print(data)

返回结果:

[Getting data:]             open   high  close    low     volume      amount
date                                                         
2018-11-30  16.30  16.39  16.26  15.72  3947333.0  63721274.0
2018-11-29  17.05  17.09  16.22  16.20  4311144.0  72000288.0
2018-11-28  16.70  16.94  16.90  16.20  4503468.0  75076700.0

可以看到,相比于,该函数能够返回较早一些的数据,但没有换手率,均线数据这些指标,当然,我们可以获取到数据之后,自己写个脚本计算均线这些信息,但是如果要自己计算换手率,就必须知道股票的市值是多少,这两个函数都没有返回关于股票市值的信息,因此如果要自己计算换手率,就得从其他地方获取股票每个交易日的市值信息。

3、获取历史数据之:

作者提供了第三个获取K线数据的函数,,参数与相同。

例四:

import tushare as ts 
data=ts.get_k_data('603712') 
print(data)

返回结果:

           date    open   close    high     low    volume    code
0    2018-02-26   5.455   6.543   6.543   5.455     666.0  603712
1    2018-02-27   7.203   7.203   7.203   7.203     372.0  603712
2    2018-02-28   7.922   7.922   7.922   7.922     425.0  603712
3    2018-03-01   8.711   8.711   8.711   8.711     882.0  603712
4    2018-03-02   9.580   9.580   9.580   9.580    3754.0  603712

_用python做量化分析_量化金融python

与前两个函数相比,这个函数获取数据的速度很明显要快很多,而且可以返回每一只股票从上市开始到当前交易日的所有日线数据,这个有点是前两个函数都不具备的,读者可以自己验证一下,可以返回比更早一些的数据,但是对于有些股票依然不能获取很早的数据,更重要的是,如果批量3000多只股票的数据,前两个都不如稳定,我一开始搜集数据的时候,为了获取更全面的数据,用的是,但是批量获取,反反复复跑脚本,没有一次是能够将数据完整获取完的,每一次都是中途就挂了,读者可以自己测试一下,间隔时间长一些应该没问题,不过我后来已经知道其他的解决办法,既能够获取全面的数据,同时也不必担心速度的问题,怎么获取一样会在微信公众号【数据之佳】介绍,这里先介绍

4、获取实时行情数据 ()

返回值说明:

• code:代码

• name:名称

• :涨跌幅

• trade:现价

• open:开盘价

• high:最高价

• low:最低价

• :昨日收盘价

• :成交量

• :换手率

• :成交量

• per:市盈率

• pb:市净率

• :总市值

• nmc:流通市值

该函数没有参数,直接调用即可

测试:

例五:

import tushare as ts 
data=ts.get_today_all() 
print(data)

返回值:

[Getting data:]############################################################        code   name      changepercent  trade   open   high    low  settlement  \
0     603999   读者传媒          9.945   5.97   5.41   5.97   5.35        5.43   
1     603998   方盛制药         -2.293   5.54   5.52   5.60   5.47        5.67   
2     603997   继峰股份         -2.036   8.18   8.29   8.29   8.15        8.35     
...      volume  turnoverratio       amount       per        pb  \
0      17473309.0        7.58390  100935110.0    45.573     2.025   
1       5109486.0        1.20168   28242031.0    39.571     2.280   
2       1192200.0        0.18924    9790259.0    17.783     2.878   
...       mktcap           nmc  
0     3.438720e+05  1.375488e+05  
1     2.374237e+05  2.355590e+05  
2     5.232329e+05  5.153400e+05  
...
[3634 rows x 15 columns]

限于篇幅,这里只贴出前三行数据,()获取了所有股票的当前行情数据,但是获取一次数据的耗时比较长,读者可以自己在实时行情和盘后自己测试一下,看看会不会挂,整体延时有多久等等

5、历史分笔数据之:

参数说明:

code:股票代码,即6位数字代码

date:日期,格式YYYY-MM-DD

: int, 默认3,如遇网络等问题重复执行的次数

pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题

该函数返回指定日期的历史分笔数据,但由于历史分笔数据很耗空间,所以一般服务器都不会存储很长时间的历史分笔数据,该接口也一样,并不能获取从上市以来的所有日期的分笔数据。

例六:

as ts

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了