Tushare Pro 新版發布,數據更穩定質量更好,歡迎注冊使用。

交易類數據提供股票的交易行情數據,通過簡單的接口調用可獲取相應的DataFrame格式數據,主要包括以下類别:

  • 曆史行情數據
  • 複權曆史數據
  • 實時行情數據
  • 曆史分筆數據
  • 實時報價數據
  • 當日曆史分筆
  • 大盤指數列表
  • 大單交易數據

曆史行情 請轉移到Tushare Pro 新接口,本接口不再維護。

在Pro版接口中,我們也增加了通用通用行情接口,可以方便獲得各種資産各種頻度的數據,歡迎使用。

獲取個股曆史交易數據(包括均線數據),可以通過參數設置獲取日k線、周k線、月k線,以及5分鐘、15分鐘、30分鐘和60分鐘k線數據。本接口隻能獲取近3年的日線數據,适合搭配均線數據進行選股和分析,如果需要全部曆史數據,請調用下一個接口get_h_data()。

參數說明:

  • 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線數據

複權數據

獲取曆史複權數據,分為前複權和後複權數據,接口提供股票上市以來所有曆史數據,默認為前複權。如果不設定開始和結束日期,則返回近一年的複權數據,從性能上考慮,推薦設定開始日期和結束日期,而且最好不要超過三年以上,獲取全部曆史數據,請分年段分步獲取,取到數據後,請及時在本地存儲。獲取個股首個上市日期,請參考以下方法:

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='2018-12-12',src='tt')
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   賣盤