金融老法师 发表于 2019-12-28 22:04:29

Python获取金融数据之Tushare

做量化投资的第一步就是获取金融数据,之前我已经撰写了关于R语言获取金融数据的文章,今天我们就讨论一下python获取金融数据的方法,主要讲述如何通过tushare包获取金融数据。TuShare是一个著名的免费、开源的python财经数据接口包。其官网主页为:TuShare -财经数据接口包。该接口包如今提供了大量的金融数据,涵盖了股票、基本面、宏观、新闻的等诸多类别数据(具体请自行查看官网),并还在不断更新中。目前股票的数据长度为三年,虽然有点短,但也可以基本满足量化初学者的回测需求。使用教程1.安装加载安装tushare包很简单,我使用的是pycharm,可以用其中的包管理器安装。然后通过import加载:import tushare as ts;2.简单函数使用下面我们用几个简单的函数查看tushare的基本功能,想要了解的更多的功能还是建议仔细阅读官方文档,里面将可提供的数据与调用函数写的的很清楚。
1.股票数据我们主要还是应该掌握如何用tushare获取股票行情数据,使用的是ts.get_hist_data()函数,其输入参数为: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
retry_count:当网络异常后重试次数,默认为3
pause:重试时停顿秒数,默认为0返回值说明:date:日期
open:开盘价
high:最高价
close:收盘价
low:最低价
volume:成交量
price_change:价格变动
p_change:涨跌幅
ma5:5日均价
ma10:10日均价
ma20:20日均价
v_ma5:5日均量
v_ma10:10日均量
v_ma20:20日均量
turnover:换手率[注:指数无此项]
具体例子:ts.get_hist_data('600848')

date       open    high   close   low   volume    p_change   ma5   
2012-01-11   6.880   7.380   7.060   6.880   14129.96   2.62   7.060
2012-01-12   7.050   7.100   6.980   6.900    7895.19    -1.13   7.020
2012-01-13   6.950   7.000   6.700   6.690    6611.87    -4.01   6.913
2012-01-16   6.680   6.750   6.510   6.480    2941.63    -2.84   6.813
2012-01-17   6.660   6.880   6.860   6.460    8642.57   5.38   6.822
2012-01-18   7.000   7.300   6.890   6.880   13075.40   0.44   6.788
2012-01-19   6.690   6.950   6.890   6.680    6117.32   0.00   6.770
2012-01-20   6.870   7.080   7.010   6.870    6813.09   1.74   6.832

date         ma10    ma20      v_ma5   v_ma10   v_ma20   turnover

2012-01-11   7.060   7.060   14129.96   14129.96   14129.96   0.48
2012-01-12   7.020   7.020   11012.58   11012.58   11012.58   0.27
2012-01-13   6.913   6.913    9545.67    9545.67    9545.67   0.23
2012-01-16   6.813   6.813    7894.66    7894.66    7894.66   0.10
2012-01-17   6.822   6.822    8044.24    8044.24    8044.24   0.30
2012-01-18   6.833   6.833    7833.33    8882.77    8882.77   0.45
2012-01-19   6.841   6.841    7477.76    8487.71    8487.71   0.21
2012-01-20   6.863   6.863    7518.00    8278.38    8278.38   0.23
也可以设定历史数据的起始时间:ts.get_hist_data('600848',start='2015-01-05',end='2015-01-09')

date       open    high   close   low    volume   p_change   ma5    ma10 2015-01-0511.16011.39011.26010.89046383.57   1.2611.15611.212
2015-01-0611.13011.66011.61011.03059199.93   3.1111.18211.155
2015-01-0711.58011.99011.92011.48086681.38   2.6711.36611.251
2015-01-0811.70011.92011.67011.64056845.71    -2.1011.51611.349
2015-01-0911.68011.71011.23011.19044851.56    -3.7711.53811.363
date      ma20   v_ma5    v_ma10   v_ma20      turnover
2015-01-0511.19858648.7568429.87   97141.81   1.59
2015-01-0611.38254854.3863401.05   98686.98   2.03
2015-01-0711.54355049.7461628.07103010.58   2.97
2015-01-0811.64757268.9961376.00105823.50   1.95
2015-01-0911.68258792.4360665.93107924.27   1.54
其他:ts.get_hist_data('600848', ktype='W') #获取周k线数据
ts.get_hist_data('600848', ktype='M') #获取月k线数据
ts.get_hist_data('600848', ktype='5') #获取5分钟k线数据
ts.get_hist_data('600848', ktype='15') #获取15分钟k线数据
ts.get_hist_data('600848', ktype='30') #获取30分钟k线数据
ts.get_hist_data('600848', ktype='60') #获取60分钟k线数据
ts.get_hist_data('sh')#获取上证指数k线数据,其它参数与个股一致,下同
ts.get_hist_data('sz')#获取深圳成指k线数据
ts.get_hist_data('hs300')#获取沪深300指数k线数据
ts.get_hist_data('sz50')#获取上证50指数k线数据
ts.get_hist_data('zxb')#获取中小板指数k线数据
ts.get_hist_data('cyb')#获取创业板指数k线数据
2.获取基本面数据通过tushare我们还可以通过ts.get_stock_basics()获取基本面数据(返回结果部分展示):ts.get_stock_basics()

code    name      industryarea   pe   outstanding    totals   totalAssets                                                                           
300563    N神宇通信设备   江苏    26.73      2000.00   8000.004.216000e+04   
601882   海天精工   机床制造   浙江    26.83      5220.00    52200.001.877284e+05   
601880    大连港       港口   辽宁    76.40    773582.001289453.633.263012e+06   
300556   丝路视觉   软件服务   深圳   101.38      2780.00    11113.334.448248e+04   
600528   中铁二局   建筑施工   四川   149.34    145920.00   145920.005.709568e+06   
002495   佳隆股份       食品   广东   202.12   66611.13    93562.561.169174e+05   
600917   重庆燃气   供气供热   重庆    76.87   15600.00   155600.008.444600e+05   
002752   昇兴股份   广告包装   福建    75.14   12306.83    63000.002.387493e+05   
002346   柘中股份   电气设备   上海   643.97      7980.00    44157.532.263010e+05   
000680   山推股份   工程机械   山东   0.00    105694.97   124078.759.050701e+05
3.宏观数据我们以居民消费指数为例,可以通过ts.get_cpi()函数获取(一次会获取322条,部分展示):print ts.get_cpi()

       month   cpi
0    2016.10102.10
1   2016.9101.90
2   2016.8101.34
3   2016.7101.77
4   2016.6101.88
5   2016.5102.04
6   2016.4102.33
7   2016.3102.30
8   2016.2102.28
9   2016.1101.75
10   2015.12101.64
...4.查看最近新闻tushare包可以使用ts.get_latest_news()函数可以查看最近的新闻,会返回80条,篇幅原因我们这里只展现前面15条。我们可以看到,都是新浪财经的新闻数据。print ts.get_latest_news();

   classify                         title         time\
0      美股            “特朗普通胀”预期升温 美国国债下挫11-14 23:10   
1      美股          特朗普:脸书、推特等社交媒体助我入主白宫11-14 23:10   
2      证券                11月14日晚增减持每日速览11-14 22:54   
3      美股          财经观察:日本为何急于推动TPP批准程序11-14 22:54   
4      美股            新总统谜题:特朗普会连续加息吗?11-14 22:52   
5      证券      神州专车财报遭质疑 增发100亿股东退出需50年11-14 22:41   
6      证券         恒大闪电杀回马枪锁仓半年 戒短炒了吗?11-14 22:38   
7      国内财经         楼继伟力推改革做派 或加快国有资本划拨社保11-14 22:36   
8      美股            开盘:美股周一小幅高开 延续上周涨势11-14 22:32   
9      美股            喜达屋创始人:当好总统就要走中庸之道11-14 22:24   
10       证券            北京高华:将乐视网评级下调至中性11-14 22:09   
11       美股             11月14日22点交易员正关注要闻11-14 22:02   
12       美股         摩根大通:新兴市场股市、货币的前景悲观11-14 21:55   
13   国内财经      人民日报刊文谈全面深化改革这三年:啃下硬骨头11-14 21:46   
14       证券       泽平宏观:经济L型延续 地产销量回落投资超预期11-14 21:43   
15       证券       黄燕铭等五大券商大佬告诉你 2017年买点啥?11-14 21:41   

url
0   http://finance.sina.com.cn/stock/usstock/c/201...
1   http://finance.sina.com.cn/stock/usstock/c/201...
2   http://finance.sina.com.cn/stock/y/2016-11-14/...
3   http://finance.sina.com.cn/stock/usstock/c/201...
4   http://finance.sina.com.cn/stock/usstock/c/201...
5   http://finance.sina.com.cn/stock/marketresearc...
6   http://finance.sina.com.cn/stock/marketresearc...
7   http://finance.sina.com.cn/china/gncj/2016-11-...
8   http://finance.sina.com.cn/stock/usstock/c/201...
9   http://finance.sina.com.cn/stock/usstock/c/201...
10http://finance.sina.com.cn/stock/s/2016-11-14/...
11http://finance.sina.com.cn/stock/usstock/c/201...
12http://finance.sina.com.cn/stock/usstock/c/201...
13http://finance.sina.com.cn/china/gncj/2016-11-...
14http://finance.sina.com.cn/stock/marketresearc...
15http://finance.sina.com.cn/stock/marketresearc...
结语由于文章篇幅有限,故而只能做一个简单的概述,其是tushare包还有着丰富的功能,等待着大家去开发,希望大家可以多去看官网文档,养成良好的学习习惯,不断进步。

gyshssl 发表于 2019-12-29 07:59:00

感谢
页: [1]
查看完整版本: Python获取金融数据之Tushare