交易数据
交易类数据提供股票的交易行情数据,通过简单的接口调用可获取相应的DataFrame格式数据,主要包括以下类别:
- 历史行情数据
- 复权历史数据
- 实时行情数据
- 历史分笔数据
- 实时报价数据
- 当日历史分笔
- 大盘指数列表
- 大单交易数据
历史行情
在新版0.5.6中,已经新增了一个接口:get_k_data,建议使用全新接口。含义是获取k线数据,所以起了这么一个简单的名称。虽然一贯的不标准,不规范,但主要看气质,主要看数据。
新接口融合了get_hist_data和get_h_data两个接口的功能,即能方便获取日周月的低频数据,也可以获取5、15、30和60分钟相对高频的数据。同时,上市以来的前后复权数据也能在一行代码中轻松获得,当然,您也可以选择不复权。
参数说明:
- code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)
- start:开始日期,格式YYYY-MM-DD
- end:结束日期,格式YYYY-MM-DD
- autype: 复权类型,qfq-前复权 hfq-后复权 None-不复权,默认为qfq
- ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
- index: 是否为指数,默认为False设定为True时认为code为指数代码
- 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:换手率[注:指数无此项]
调用方法:
要点1、index=True时,接口会自动匹配指数代码例如,要获取上证综指行情,调用方法为:ts.get_k_data('000001', index=True)
目前支持567个指数行情
2、index=True时,没有复权数据,即autype无效
3、本接口的复权数据由数据源直接提供,区别于get_h_data是通过复权因子实时计算
4、几种常见的调用方法1)获取浦发银行近一年半的前复权日线行情:ts.get_k_data('600000')
2)获取浦发银行近6年后复权周线行情:ts.get_k_data('600000', ktype='W', autype='hfq')
3)获取浦发银行近期5分钟行情:ts.get_k_data('600000', ktype='5')
4)获取沪深300指数10月份日线行情:ts.get_k_data('399300', index=True,start='2016-10-01', end='2016-10-31')
5)获取鹏华银行分级B的60分钟行情:ts.get_k_data('150228', ktype='60')
设定历史数据的时间:
ts.get_hist_data('600848',start='2015-01-05',end='2015-01-09')
open high close low volume p_change ma5 ma10
date
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
ma20 v_ma5 v_ma10 v_ma20 turnover
date
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线数据
复权数据
获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过三年以上,获取全部历史数据,请分年段分步获取,取到数据后,请及时在本地存储。获取个股首个上市日期,请参考以下方法:
df = ts.get_stock_basics()
date = df.ix['600848']['timeToMarket'] #上市日期YYYYMMDD
本接口还提供大盘指数的全部历史数据,调用时,请务必设定index参数为True,由于大盘指数不存在复权的问题,故可以忽略autype参数。
ts.get_h_data('002337') #前复权
ts.get_h_data('002337', autype='hfq') #后复权
ts.get_h_data('002337', autype=None) #不复权
ts.get_h_data('002337', start='2015-01-01', end='2015-03-16') #两个日期之间的前复权数据
ts.get_h_data('399106', index=True) #深圳综合指数
参数说明:
- code:string,股票代码 e.g. 600848
- start:string,开始日期 format:YYYY-MM-DD 为空时取当前日期
- end:string,结束日期 format:YYYY-MM-DD 为空时取去年今日
- autype:string,复权类型,qfq-前复权 hfq-后复权 None-不复权,默认为qfq
- index:Boolean,是否是大盘指数,默认为False
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
返回值说明:
- date : 交易日期 (index)
- open : 开盘价
- high : 最高价
- close : 收盘价
- low : 最低价
- volume : 成交量
- amount : 成交金额
结果:
open high close low volume amount
date
2015-03-16 13.27 13.45 13.39 13.00 81212976 1073862784
2015-03-13 13.04 13.38 13.37 13.00 40548836 532739744
2015-03-12 13.29 13.95 13.28 12.96 71505720 962979904
2015-03-11 13.35 13.48 13.15 13.00 59110248 780300736
2015-03-10 13.16 13.67 13.59 12.72 105753088 1393819776
2015-03-09 13.77 14.73 14.13 13.70 139091552 1994454656
2015-03-06 12.17 13.39 13.39 12.17 89486704 1167752960
2015-03-05 12.79 12.80 12.17 12.08 26040832 966927360
2015-03-04 13.96 13.96 13.30 12.58 26636174 1060270720
2015-03-03 12.17 13.10 13.10 12.05 19290366 733336768
ts.get_hist_data('cyb')#获取创业板指数k线数据
复权数据
获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过三年以上,获取全部历史数据,请分年段分步获取,取到数据后,请及时在本地存储。获取个股首个上市日期,请参考以下方法:
df = ts.get_stock_basics()
date = df.ix['600848']['timeToMarket'] #上市日期YYYYMMDD
本接口还提供大盘指数的全部历史数据,调用时,请务必设定index参数为True,由于大盘指数不存在复权的问题,故可以忽略autype参数。
ts.get_h_data('002337') #前复权
ts.get_h_data('002337', autype='hfq') #后复权
ts.get_h_data('002337', autype=None) #不复权
ts.get_h_data('002337', start='2015-01-01', end='2015-03-16') #两个日期之间的前复权数据
ts.get_h_data('399106', index=True) #深圳综合指数
参数说明:
- code:string,股票代码 e.g. 600848
- start:string,开始日期 format:YYYY-MM-DD 为空时取当前日期
- end:string,结束日期 format:YYYY-MM-DD 为空时取去年今日
- autype:string,复权类型,qfq-前复权 hfq-后复权 None-不复权,默认为qfq
- index:Boolean,是否是大盘指数,默认为False
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
返回值说明:
- date : 交易日期 (index)
- open : 开盘价
- high : 最高价
- close : 收盘价
- low : 最低价
- volume : 成交量
- amount : 成交金额
结果:
open high close low volume amount
date
2015-03-16 13.27 13.45 13.39 13.00 81212976 1073862784
2015-03-13 13.04 13.38 13.37 13.00 40548836 532739744
2015-03-12 13.29 13.95 13.28 12.96 71505720 962979904
2015-03-11 13.35 13.48 13.15 13.00 59110248 780300736
2015-03-10 13.16 13.67 13.59 12.72 105753088 1393819776
2015-03-09 13.77 14.73 14.13 13.70 139091552 1994454656
2015-03-06 12.17 13.39 13.39 12.17 89486704 1167752960
2015-03-05 12.79 12.80 12.17 12.08 26040832 966927360
2015-03-04 13.96 13.96 13.30 12.58 26636174 1060270720
2015-03-03 12.17 13.10 13.10 12.05 19290366 733336768
实时行情
一次性获取当前交易所有股票的行情数据(如果是节假日,即为上一交易日,结果显示速度取决于网速)
import tushare as ts
ts.get_today_all()
返回值说明:
- code:代码
- name:名称
- changepercent:涨跌幅
- trade:现价
- open:开盘价
- high:最高价
- low:最低价
- settlement:昨日收盘价
- volume:成交量
- turnoverratio:换手率
- amount:成交量
- per:市盈率
- pb:市净率
- mktcap:总市值
- nmc:流通市值
结果显示:
code name changepercent trade open high low settlement
0 002738 中矿资源 10.023 19.32 19.32 19.32 19.32 17.56
1 300410 正业科技 10.022 25.03 25.03 25.03 25.03 22.75
2 002736 国信证券 10.013 16.37 16.37 16.37 16.37 14.88
3 300412 迦南科技 10.010 31.54 31.54 31.54 31.54 28.67
4 300411 金盾股份 10.007 29.68 29.68 29.68 29.68 26.98
5 603636 南威软件 10.006 38.15 38.15 38.15 38.15 34.68
6 002664 信质电机 10.004 30.68 29.00 30.68 28.30 27.89
7 300367 东方网力 10.004 86.76 78.00 86.76 77.87 78.87
8 601299 中国北车 10.000 11.44 11.44 11.44 11.29 10.40
9 601880 大连港 10.000 5.72 5.34 5.72 5.22 5.20
volume turnoverratio
0 375100 1.25033
1 85800 0.57200
2 1058925 0.08824
3 69400 0.51791
4 252220 1.26110
5 1374630 5.49852
6 6448748 9.32700
7 2025030 6.88669
8 433453523 4.28056
9 323469835 9.61735
历史分笔
获取个股以往交易历史的分笔数据明细,通过分析分笔数据,可以大致判断资金的进出情况。在使用过程中,对于获取股票某一阶段的历史分笔数据,需要通过参入交易日参数并append到一个DataFrame或者直接append到本地同一个文件里。历史分笔接口只能获取当前交易日之前的数据,当日分笔历史数据请调用get_today_ticks()接口或者在当日18点后通过本接口获取。
参数说明:
- code:股票代码,即6位数字代码
- date:日期,格式YYYY-MM-DD
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
调用方法:
import tushare as ts
df = ts.get_tick_data('600848',date='2014-01-09')
df.head(10)
返回值说明:
- time:时间
- price:成交价格
- change:价格变动
- volume:成交手
- amount:成交金额(元)
- type:买卖类型【买盘、卖盘、中性盘】
结果显示:
time price change volume amount type
0 15:00:00 6.05 -- 8 4840 卖盘
1 14:59:55 6.05 -- 50 30250 卖盘
2 14:59:35 6.05 -- 20 12100 卖盘
3 14:59:30 6.05 -0.01 165 99825 卖盘
4 14:59:20 6.06 0.01 4 2424 买盘
5 14:59:05 6.05 -0.01 2 1210 卖盘
6 14:58:55 6.06 -- 4 2424 买盘
7 14:58:45 6.06 -- 2 1212 买盘
8 14:58:35 6.06 0.01 2 1212 买盘
9 14:58:25 6.05 -0.01 20 12100 卖盘
实时分笔
获取实时分笔数据,可以实时取得股票当前报价和成交信息,其中一种场景是,写一个python定时程序来调用本接口(可两三秒执行一次,性能与行情软件基本一致),然后通过DataFrame的矩阵计算实现交易监控,可实时监测交易量和价格的变化。
参数说明:
- symbols:6位数字股票代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板) 可输入的类型:str、list、set或者pandas的Series对象
调用方法:
import tushare as ts
df = ts.get_realtime_quotes('000581') #Single stock symbol
df[['code','name','price','bid','ask','volume','amount','time']]
结果显示:
code name price bid ask volume amount time
0 000581 威孚高科 31.15 31.14 31.15 8183020 253494991.16 11:30:36
返回值说明:
0:name,股票名字
1:open,今日开盘价
2:pre_close,昨日收盘价
3:price,当前价格
4:high,今日最高价
5:low,今日最低价
6:bid,竞买价,即“买一”报价
7:ask,竞卖价,即“卖一”报价
8:volume,成交量 maybe you need do volume/100
9:amount,成交金额(元 CNY)
10:b1_v,委买一(笔数 bid volume)
11:b1_p,委买一(价格 bid price)
12:b2_v,“买二”
13:b2_p,“买二”
14:b3_v,“买三”
15:b3_p,“买三”
16:b4_v,“买四”
17:b4_p,“买四”
18:b5_v,“买五”
19:b5_p,“买五”
20:a1_v,委卖一(笔数 ask volume)
21:a1_p,委卖一(价格 ask price)
...
30:date,日期;
31:time,时间;
请求多个股票方法(一次最好不要超过30个):
#symbols from a list
ts.get_realtime_quotes(['600848','000980','000981'])
#from a Series
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'])
当日历史分笔¶
获取当前交易日(交易进行中使用)已经产生的分笔明细数据。
参数说明:
- code:股票代码,即6位数字代码
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
调用方法:
import tushare as ts
df = ts.get_today_ticks('601333')
df.head(10)
返回值说明:
- time:时间
- price:当前价格
- pchange:涨跌幅
- change:价格变动
- volume:成交手
- amount:成交金额(元)
- type:买卖类型【买盘、卖盘、中性盘】
结果显示:
time price pchange change volume amount type
0 11:30:07 5.77 -0.52 0.00 634 366372 买盘
1 11:29:57 5.77 -0.52 0.00 216 124632 买盘
2 11:29:52 5.77 -0.52 0.00 306 176562 买盘
3 11:29:42 5.77 -0.52 0.01 159 91766 买盘
4 11:29:37 5.76 -0.69 0.00 546 314496 卖盘
5 11:29:32 5.76 -0.69 -0.01 954 549504 卖盘
6 11:29:22 5.77 -0.52 0.00 374 215798 买盘
7 11:29:17 5.77 -0.52 0.00 762 439674 买盘
8 11:29:12 5.77 -0.52 0.00 164 95182 买盘
9 11:29:07 5.77 -0.52 0.00 303 174854 买盘
大盘指数行情列表
获取大盘指数实时行情列表,以表格的形式展示大盘指数实时行情。
调用方法:
import tushare as ts
df = ts.get_index()
返回值说明:
- code:指数代码
- name:指数名称
- change:涨跌幅
- open:开盘点位
- preclose:昨日收盘点位
- close:收盘点位
- high:最高点位
- low:最低点位
- volume:成交量(手)
- amount:成交金额(亿元)
结果显示:
code name change preclose close high low
0 000001 上证指数 -1.13 4527.396 4476.215 4572.391 4432.904
1 000002 A股指数 -1.13 4744.093 4690.628 4791.534 4645.190
2 000003 B股指数 -2.15 403.694 395.018 405.795 392.173
3 000008 综合指数 0.79 3724.496 3753.906 3848.575 3695.817
4 000009 上证380 -2.79 7689.128 7474.305 7695.329 7398.911
5 000010 上证180 -1.13 10741.180 10619.610 10863.080 10529.900
6 000011 基金指数 -1.02 7033.291 6961.659 7058.856 6918.273
7 000012 国债指数 0.01 148.626 148.641 148.656 148.510
8 000016 上证50 -0.79 3308.454 3282.330 3370.025 3255.769
9 000017 新综指 -1.13 3826.013 3782.936 3864.307 3746.284
10 000300 沪深300 -1.37 4807.592 4741.861 4839.078 4703.567
11 399001 深证成指 -0.69 14809.424 14707.245 14979.810 14580.422
12 399002 深成指R -0.69 17193.832 17075.202 17391.652 16927.959
13 399003 成份B指 -1.93 9027.079 8853.081 9013.194 8826.048
14 399004 深证100R -1.79 5994.881 5887.414 6036.322 5832.431
15 399005 中小板指 -3.34 8935.338 8637.195 8953.813 8551.202
16 399006 创业板指 -2.17 2747.497 2687.974 2779.200 2650.425
17 399100 新 指 数 -2.77 10091.194 9811.256 10111.664 9718.085
18 399101 中小板综 -3.31 12792.057 12368.868 12800.453 12253.744
19 399106 深证综指 -2.76 2271.275 2208.561 2275.344 2187.897
20 399107 深证A指 -2.77 2375.176 2309.466 2379.507 2287.784
21 399108 深证B指 -1.77 1398.244 1373.512 1397.996 1367.343
22 399333 中小板R -3.34 9640.766 9319.085 9660.699 9226.304
23 399606 创业板R -2.16 2828.251 2767.127 2861.040 2728.472
volume amount
0 767676416 10611.72
1 766188823 10599.65
2 1487592 12.07
3 263748855 3440.01
4 182628996 2531.04
5 464275133 6437.40
6 66280981 428.46
7 263420 2.74
8 266042859 3735.74
9 766077611 10596.65
10 608638545 8603.50
11 51106975785 6405.28
12 6357969430 1017.68
13 51206484 4.32
14 10418315890 1779.58
15 3071396395 830.54
16 1441659735 551.73
17 32943457787 6091.34
18 10450911278 2291.43
19 33395285515 6137.71
20 33274363870 6128.94
21 120921645 8.77
22 3071396395 830.54
23 1441659735 551.73
大单交易数据
获取大单交易数据,默认为大于等于400手,数据来源于新浪财经。
参数说明:
- code:股票代码,即6位数字代码
- date:日期,格式YYYY-MM-DD
- vol:手数,默认为400手,输入数值型参数
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
返回值说明:
- code:代码
- name:名称
- time:时间
- price:当前价格
- volume:成交手
- preprice :上一笔价格
- type:买卖类型【买盘、卖盘、中性盘】
调用方法:
import tushare as ts
df = ts.get_sina_dd('600848', date='2015-12-24') #默认400手
#df = ts.get_sina_dd('600848', date='2015-12-24', vol=500) #指定大于等于500手的数据
结果显示:
code name time price volume preprice type
0 600848 上海临港 14:58:10 23.05 104309 23.05 卖盘
1 600848 上海临港 14:57:03 23.05 56500 23.07 卖盘
2 600848 上海临港 14:52:47 23.00 76750 23.04 卖盘
3 600848 上海临港 14:47:32 23.10 47000 23.09 买盘
4 600848 上海临港 14:16:03 23.00 60859 23.01 卖盘
5 600848 上海临港 14:15:38 23.01 68659 23.03 卖盘
6 600848 上海临港 14:00:34 23.10 66200 23.10 买盘
7 600848 上海临港 13:25:24 23.28 42000 23.09 买盘
8 600848 上海临港 13:23:54 23.28 79600 23.07 买盘
9 600848 上海临港 13:16:16 23.03 40000 23.08 卖盘