本文作者:周聪聪
文字编辑:周聪聪
技术总编:张学人
好消息!!!爬虫俱乐部将于2019年7月5日至7月8日在武汉举行首期Python编程技术定制培训。本次培训采用理论与案例相结合的方式,旨在帮助零基础学员轻松入门Python,由浅入深学习和掌握Python爬虫技术,并明确未来更进一步的学习方向。
爬虫俱乐部曾发布的cntrade命令主要被用来下载中国股票市场中的历史市场报价,为需要这些金融数据的用户省了不少事。而今天我们来为大家介绍Python的Tushare包,帮助大家了解如何在Python中轻松获取股票交易数据。
从官网可以了解到,Tushare是一个免费、开源的python财经数据接口包,主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程。简单来说,Tushare为我们提供了一个数据接口,使我们可直接输入相关命令即可获取网络上的金融数据,便捷又可靠!接下来,我们主要为大家介绍使用Tushare包下载股票交易数据的相关命令,并结合获得的数据调用pyecharts库绘制K线图。
首先,老规矩,在cmd窗口输入"pip install tushare"来安装tushare包。
下面我们以长江电力(600900)为例介绍如何获取股票交易数据:
Step1:导入模块
import tushare as ts
Step2:调用接口"get_hist_data ()"获取股票交易数据
data1=ts.get_hist_data('600900')
由于Python的pandas库在数据清洗和分析方面功能较为强大便捷,为方便用户使用,使用相关接口返回的数据格式多为DataFrame类型,如上图所示。需要注意的是,"get_hist_data()"这一接口只能获取近3年的日线数据,如果需要全部历史数据,可以调用接口"get_h_data()"获取。
如果需要获取特定时间的股票交易数据,可设置参数"start"和"end":
data2=ts.get_hist_data('600900',start='2018-01-06',end='2018-01-18')print(data2)
这样,就得到了2018-01-06至2018-01-18期间的股票交易数据。可以看到,返回的数据包括:date(日期)、open(开盘价)、high(最高价)、close(收盘价)、low(最低价)、volume(成交量)、price_change(价格变动)、p_change(涨跌幅)、ma5(5日均价)、ma10(10日均价)、ma20(20日均价)、v_ma5(日均量)、v_ma10(10日均量)、v_ma20(20日均量)。
我们还可以添加ktype参数设置数据类型,相关程序如下:
ts.get_hist_data('600900', ktype='W') #获取周k线数据ts.get_hist_data('600900', ktype='M') #获取月k线数据ts.get_hist_data('600900', ktype='5') #获取5分钟k线数据ts.get_hist_data('600900', ktype='15') #获取15分钟k线数据ts.get_hist_data('600900', ktype='30') #获取30分钟k线数据ts.get_hist_data('600900', 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线数据
相关返回数据就不一一列出了。除此之外,Tushare还可用来下载投资参考数据、股票分类数据、基本面数据、宏观经济数据等,需要的读者可自行获取相关数据。
拿到了长江电力(600900)的股票交易数据,接下来,我们调用pyecharts库对其绘制日K线图吧!如果有读者对pyecharts库不太熟悉,可阅读推文《Python数据可视化神器:pyecharts》做详细了解~
股市及期货市场中的K线图的画法包含四个数据,即open(开盘价)、high(最高价)、close(收盘价)、low(最低价)。首先,将所获取的这四个DataFrame类型数据转换为pyecharts可接受的list格式,程序如下:
x=[]for i in range(len(data1)): y=[data1["open"][i],data1["close"][i],data1["low"][i],data1["high"][i]] x.append(y)x.reverse()date=data1.index.values #获取日期 date.sort()
数据已经处理完成。之后,就可调用pyecharts库中的Kline绘制K线图:
import pyechartsfrom pyecharts import Kline kline = Kline("K线图示例")kline.add("日K",date,x,is_datazoom_show=True, datazoom_type="slider", xaxis_rotate=30)
由于数据量较大,我们添加参数is_datazoom_show设置图形缩放;datazoom_type设置滑动;xaxis_rotate设置横坐标转动角度为30。
kline.render(r'C:\python\picture.html')
滑动上图中蓝色的滑块即可看到后续数据。
以上就是关于Tushare包获取股票交易数据及绘制K线图的全部介绍,相关K线图已上传至链接“https://stata-club-1257787903.cos.ap-chengdu.myqcloud.com/picture.html”,大家可下载查看其动态效果。
对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!
往期推文推荐
Python编程技术暑期训练营报名啦!
条件判断的两种简便方法
经济学专业录取分数线排行榜
Stata爬取新浪教育高考院校库
Pandas之数据查询与修改
爬虫俱乐部推出新命令:cnar--年报数据快到碗里来
用python提取pdf表格数据
单行观测值过长?filefilter帮你自动分行
你究竟有多少NB好校友?
筛选文件利器——filesearch命令
绘制《倚天屠龙记》地名词云图
Python标准库-logging模块(1)
爬虫俱乐部新云端数据源启用
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:1)必须原创,禁止抄袭;2)必须准确,详细,有例子,有截图;注意事项:1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。2)邮件请注明投稿,邮件名称为“投稿+推文名称”。3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。