交易数据

交易类数据提供股票的交易行情数据,通过简单的接口调用可获取相应的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   买盘