交易类数据提供股票的交易行情数据,通过简单的接口调用可获取相应的DataFrame格式数据,主要包括以下类别:
1)历史行情数据;2)复权历史数据;3)实时行情数据;4)历史分笔数据;5)实时报价数据;6)当日历史分笔;7)大盘指数列表;8)大单交易数据;9)K线数据
全篇使用tushareAPI:
import tushare as ts
1,行情数据:
获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析
调用:
ts.get_hist_data('000507') #一次性获取代码为000507的股票全部日K线数据
ts.get_hist_data('000507',ktype = 'w') #获取周K数据 (实测w的大小写都没关系)
ts.get_hist_data('000507',ktype = 'M') #获取月K数据
ts.get_hist_data('000507',ktype = '5') #获取5分钟K线数据,是最近的5分钟
ts.get_hist_data('000507',ktype = '15') #获取15分钟K线数据
ts.get_hist_data('000507',ktype = '30') #获取30 分钟数据
ts.get_hist_data('000507',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线数据
ts.get_hist_data('000507',start = '2017-01-01',end = '2017-06-27') #获取历史数据的间隔
2,复权数据:
获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过三年以上,获取全部历史数据,请分年段分步获取,取到数据后,请及时在本地存储。获取个股首个上市日期
调用:
###获取上市时间:
df = ts.get_stock_basics()
date = df.ix['000507']['timeToMarket']
date
本接口还提供大盘指数的全部历史数据,调用时,请务必设定index参数为True,由于大盘指数不存在复权的问题,故可以忽略autype参数。
ts.get_h_data('000507') #前复权
ts.get_h_data('000507',autype = 'hfq') #后复权
ts,get_h_data('000507',autypr = None) #不复权
ts.get_h_data('000507',start = '2017-01-01',end = '2017-06-27')
ts.get_h_data('399106',index = True) #深圳综合指数
3,实时行情;
次性获取当前交易所有股票的行情数据(如果是节假日,即为上一交易日,结果显示速度取决于网速)
调用:
ts.get_today_all()
4,历史分笔:
获取个股以往交易历史的分笔数据明细,通过分析分笔数据,可以大致判断资金的进出情况。在使用过程中,对于获取股票某一阶段的历史分笔数据,需要通过参入交易日参数并append到一个DataFrame或者直接append到本地同一个文件里。历史分笔接口只能获取当前交易日之前的数据,当日分笔历史数据请调用get_today_ticks()接口或者在当日18点后通过本接口获取。
调用:
df = ts.get_tick_data('000507',date = '2017-06-27')
df.head(10)
5,实时分笔:
获取实时分笔数据,可以实时取得股票当前报价和成交信息,其中一种场景是,写一个python定时程序来调用本接口(可两三秒执行一次,性能与行情软件基本一致),然后通过DataFrame的矩阵计算实现交易监控,可实时监测交易量和价格的变化。
df = ts.get_realtime_quotes('000507')
df[['code','name','price','bid','ask','volume','amount','time']]
#获取多个股票,最好不要超过30(官网是这么建议的)
ts.get_realtime_quotes(['000507',000980'])
ts.get_realtime_quotes(df['code'].tail(10)) #一次获取10个分笔
#获取指数
#上证指数
ts.get_realtime_quotes('sh')
#上证指数 深圳成指 沪深300指数 上证50 中小板 创业板
ts.get_realtime_quotes(['sh','sz','hs300','sz50','zxb','cyb'])
#或者混搭
ts.get_realtime_quotes(['sh','600848'])
6,当日历史分笔:
获取当前交易日(交易进行中使用)已经产生的分笔明细数据。
调用:
df = ts.get_today_ticks('000507')
df.head(10)
7,大盘指数行情:
获取大盘指数实时行情列表,以表格的形式展示大盘指数实时行情
调用:
df = ts.get_index()
8,大单交易数据:
获取大单交易数据,默认为大于等于400手,数据来源于新浪财经
调用:
df = ts.get_sina_dd('000507', date='2017-06-27') #默认400手
df = ts.get_sina_dd('000507', date='2017-06-27', vol=500) #指定大于等于500手的数据
9,K线:
含义是获取k线数据,所以起了这么一个简单的名称。虽然一贯的不标准,不规范,但主要看气质,主要看数据。
新接口融合了get_hist_data和get_h_data两个接口的功能,即能方便获取日周月的低频数据,也可以获取5、15、30和60分钟相对高频的数据。同时,上市以来的前后复权数据也能在一行代码中轻松获得,当然,您也可以选择不复权。ts.get_k_data('000001', index=True)#index=True时,接口会自动匹配指数代码
#获取近一年半的前复权日线行情:ts.get_k_data('000507')