『python 金融应用』Tushare 财经数据包 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
LittleUqeer
V2EX    Python

『python 金融应用』Tushare 财经数据包

  •  
  •   LittleUqeer 2016-12-27 10:38:42 +08:00 2744 次点击
    这是一个创建于 3221 天前的主题,其中的信息可能已经有所发展或是发生改变。

    说在前面

    在这里依然分享自己作为一个程序员学习金融的过程和一些好玩的应用工具,希望对大家有帮助。

    今天讨论一下 python 获取金融数据的方法,主要讲述如何通过 tushare 包获取金融数据。

    TuShare 是一个著名的免费、开源的 python 财经数据接口包。其官网主页为:TuShare - 财经数据接口包。http://tushare.waditu.com/ 该接口包如今提供了大量的金融数据,涵盖了股票、基本面、宏观、新闻的等诸多类别数据(具体请自行查看官网),并还在不断更新中。目前股票的数据长度为三年,虽然有点短,但也可以基本满足量化初学者的回测需求。

    使用教程

    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-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 线数据 
    p>2.获取基本面数据 (在使用过程中,发现没有通联数据的干净,有不少脏数据。感兴趣的可以比对一下 https://uqer.io/data/browse/0/?page=1

    通过 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 包还有着丰富的功能,等待着大家去开发,希望大家可以多去看官网文档,养成良好的学习习惯,共同进步。

    本片文章转自知乎,作者:温如

    3 条回复    2016-12-30 09:14:52 +08:00
    nakedou
        1
    nakedou  
       2016-12-27 20:49:20 +08:00
    使用过,返回太慢,经常超时
    lemonkaer
        2
    lemonkaer  
       2016-12-28 10:13:12 +08:00
    @nakedou 开源的项目,作者不易,主要是没服务器。
    nakedou
        3
    nakedou  
       2016-12-30 09:14:52 +08:00
    @lemonkaer 哦,不过玩玩的话足够了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3930 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 00:56 PVG 08:56 LAX 17:56 JFK 20:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86