做量化投资的第一步就是获取金融数据,之前我已经撰写了关于R语言获取金融数据的文章,今天我们就讨论一下python获取金融数据的方法,主要讲述如何通过tushare包获取金融数据。 TuShare是一个著名的免费、开源的python财经数据接口包。其官网主页为:TuShare -财经数据接口包。该接口包如今提供了大量的金融数据,涵盖了股票、基本面、宏观、新闻的等诸多类别数据(具体请自行查看官网),并还在不断更新中。目前股票的数据长度为三年,虽然有点短,但也可以基本满足量化初学者的回测需求。 使用教程1.安装加载 安装tushare包很简单,我使用的是pycharm,可以用其中的包管理器安装。然后通过import加载: 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-05 11.160 11.390 11.260 10.890 46383.57 1.26 11.156 11.212
- 2015-01-06 11.130 11.660 11.610 11.030 59199.93 3.11 11.182 11.155
- 2015-01-07 11.580 11.990 11.920 11.480 86681.38 2.67 11.366 11.251
- 2015-01-08 11.700 11.920 11.670 11.640 56845.71 -2.10 11.516 11.349
- 2015-01-09 11.680 11.710 11.230 11.190 44851.56 -3.77 11.538 11.363
- date ma20 v_ma5 v_ma10 v_ma20 turnover
- 2015-01-05 11.198 58648.75 68429.87 97141.81 1.59
- 2015-01-06 11.382 54854.38 63401.05 98686.98 2.03
- 2015-01-07 11.543 55049.74 61628.07 103010.58 2.97
- 2015-01-08 11.647 57268.99 61376.00 105823.50 1.95
- 2015-01-09 11.682 58792.43 60665.93 107924.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 industry area pe outstanding totals totalAssets
- 300563 N神宇 通信设备 江苏 26.73 2000.00 8000.00 4.216000e+04
- 601882 海天精工 机床制造 浙江 26.83 5220.00 52200.00 1.877284e+05
- 601880 大连港 港口 辽宁 76.40 773582.00 1289453.63 3.263012e+06
- 300556 丝路视觉 软件服务 深圳 101.38 2780.00 11113.33 4.448248e+04
- 600528 中铁二局 建筑施工 四川 149.34 145920.00 145920.00 5.709568e+06
- 002495 佳隆股份 食品 广东 202.12 66611.13 93562.56 1.169174e+05
- 600917 重庆燃气 供气供热 重庆 76.87 15600.00 155600.00 8.444600e+05
- 002752 昇兴股份 广告包装 福建 75.14 12306.83 63000.00 2.387493e+05
- 002346 柘中股份 电气设备 上海 643.97 7980.00 44157.53 2.263010e+05
- 000680 山推股份 工程机械 山东 0.00 105694.97 124078.75 9.050701e+05
复制代码
3.宏观数据 我们以居民消费指数为例,可以通过ts.get_cpi()函数获取(一次会获取322条,部分展示): - print ts.get_cpi()
- month cpi
- 0 2016.10 102.10
- 1 2016.9 101.90
- 2 2016.8 101.34
- 3 2016.7 101.77
- 4 2016.6 101.88
- 5 2016.5 102.04
- 6 2016.4 102.33
- 7 2016.3 102.30
- 8 2016.2 102.28
- 9 2016.1 101.75
- 10 2015.12 101.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...
- 10 http://finance.sina.com.cn/stock/s/2016-11-14/...
- 11 http://finance.sina.com.cn/stock/usstock/c/201...
- 12 http://finance.sina.com.cn/stock/usstock/c/201...
- 13 http://finance.sina.com.cn/china/gncj/2016-11-...
- 14 http://finance.sina.com.cn/stock/marketresearc...
- 15 http://finance.sina.com.cn/stock/marketresearc...
复制代码
结语由于文章篇幅有限,故而只能做一个简单的概述,其是tushare包还有着丰富的功能,等待着大家去开发,希望大家可以多去看官网文档,养成良好的学习习惯,不断进步。
|