交易数据¶
交易类数据提供股票的交易行情数据,通过简单的接口调用可获取相应的DataFrame格式数据,主要包括以下类别:
- 历史行情数据
- 复权历史数据
- 实时行情数据
- 历史分笔数据
- 实时分笔数据
- 当日历史分笔
历史行情¶
获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。
参数说明:
- 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:换手率[注:指数无此项]
调用方法:
import tushare as ts
ts.get_hist_data('600848') #一次性获取全部日k线数据
结果显示:
open high close low volume p_change ma5 \
date
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
ma10 ma20 v_ma5 v_ma10 v_ma20 turnover
date
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')
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线数据
复权数据¶
获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过一年以上。获取到数据后,请及时在本地存储。
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') #两个日期之间的前复权数据
参数说明:
- code:string,股票代码 e.g. 600848
- start:string,开始日期 format:YYYY-MM-DD 为空时取当前日期
- end:string,结束日期 format:YYYY-MM-DD 为空时取去年今日
- autype:string,复权类型,qfq-前复权 hfq-后复权 None-不复权,默认为qfq
- 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:换手率
结果显示:
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:volumn,成交量 maybe you need do volumn/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 买盘