Tushare Pro接口介紹


 

  Tushare庫在數據獲取方面一直受到金融分析人員的青睞,極大地減輕了他們在金融數據采集、清洗加工、存儲過程的工作量,更加專注於策略和模型的研究與實現上。由於Tushare舊版運行了有3年之久,因此目前網上很多涉及財經和股票交易數據獲取的文章使用的是舊版Tushare。Tushare社區現在主要維護新版本tushare pro,它的數據更穩定質量更高,而且從廣度和深度上相對舊版本都做了更大的改進,可獲取的數據內容擴大到了包括滬深股票行情、財務、市場參考、指數(含國外股指)、基金、期貨、期權、宏觀經濟、行業經濟、新聞資訊等財經數據,以及數字貨幣行情等區塊鏈數據,為金融量化人員節省了大量寶貴時間。

  pro版本的總體來說使用是免費的,使用前需要登陸官網注冊賬號以獲取token,注冊地址:https://tushare.pro/register?reg=365212 。不過部分接口設置了權限,需要達到一定的積分才能使用。下面以獲取常用的股票行情數據為例,展示下tushare pro獲取數據的方法。

先介紹下stock_basic()接口,該接口獲取上市的所有股票基礎信息數據,包括股票代碼、名稱、上市日期、退市日期等。輸入參數說明如下:
is_hs:是否滬深港通標的,N否、H滬股通、S深股通;
list_status:上市狀態,L上市、D退市、P暫停上市;
exchange:交易所 SSE上交所,SZSE深交所,HKEX港交所。
注:關於輸出參數大家可參照官網的介紹,此處不在贅述。

 

 1 pro = ts.pro_api(token)  2 data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')  3 print(data.head())  4 """
 5  ts_code symbol name area industry list_date  6 0 000001.SZ 000001 平安銀行 深圳 銀行 19910403  7 1 000002.SZ 000002 萬科A 深圳 全國地產 19910129  8 2 000004.SZ 000004 國農科技 深圳 生物制葯 19910114  9 3 000005.SZ 000005 世紀星源 深圳 房產服務 19901210 10 4 000006.SZ 000006 深振業A 深圳 區域地產 19920427 11 """
12 print(data.tail()) 13 """
14 
15  ts_code symbol name area industry list_date 16 3585 603993.SH 603993 洛陽鉬業 河南 小金屬 20121009 17 3586 603996.SH 603996 中新科技 浙江 家用電器 20151222 18 3587 603997.SH 603997 繼峰股份 浙江 汽車配件 20150302 19 3588 603998.SH 603998 方盛制葯 湖南 中成葯 20141205 20 3589 603999.SH 603999 讀者傳媒 甘肅 出版業 20151210 21 """

 

  再介紹下daily()接口,該接口獲取股票行情數據,也是最常用的接口。輸入參數包括股票代碼ts_code、開始日期start_date、結束日期end_date。
#獲取平安銀行日行情數據

 

 1 pa=pro.daily(ts_code='000001.SZ', start_date='20180101',  2                end_date='20190106')  3 
 4 print(pa.head())  5 """
 6  ts_code trade_date open ... pct_chg vol amount  7 0 000001.SZ 20190104 9.24 ... 5.0647 1481159.06 1422149.888  8 1 000001.SZ 20190103 9.18 ... 0.9793 415537.95 384457.707  9 2 000001.SZ 20190102 9.39 ... -2.0256 539386.32 498695.109 10 3 000001.SZ 20181228 9.31 ... 1.0776 576604.00 541571.004 11 4 000001.SZ 20181227 9.45 ... -0.2151 624593.27 586343.755 12 
13 [5 rows x 11 columns] 14 """
15 print(pa.tail()) 16 """
17  ts_code trade_date open ... pct_chg vol amount 18 241 000001.SZ 20180108 13.25 ... -2.56 2158620.81 2806099.169 19 242 000001.SZ 20180105 13.21 ... 0.38 1210312.72 1603289.517 20 243 000001.SZ 20180104 13.32 ... -0.60 1854509.48 2454543.516 21 244 000001.SZ 20180103 13.73 ... -2.70 2962498.38 4006220.766 22 245 000001.SZ 20180102 13.35 ... 3.01 2081592.55 2856543.822 23 
24 [5 rows x 11 columns] 25 """

  我們發現此處返回的DataFrame格式數據的行索引為序號,而不是交易日期,並且數據按日期的排列順序是從20190104到20180102,與專欄例程中的標准數據格式不穩和,我們需要調整下返回

的數據格式。

 1 pa.index = pd.to_datetime(pa.trade_date)
 2 pa.sort_index(inplace=True)
 3 pa.drop(axis=1, columns='trade_date', inplace=True)
 4 print(pa.head())
 5 """
 6               ts_code  open  high     ...       pct_chg         vol       amount
 7 trade_date                            ...                                       
 8 2019-01-04  000001.SZ  9.24  9.82     ...        5.0647  1481159.06  1422149.888
 9 2019-01-03  000001.SZ  9.18  9.33     ...        0.9793   415537.95   384457.707
10 2019-01-02  000001.SZ  9.39  9.42     ...       -2.0256   539386.32   498695.109
11 2018-12-28  000001.SZ  9.31  9.46     ...        1.0776   576604.00   541571.004
12 2018-12-27  000001.SZ  9.45  9.49     ...       -0.2151   624593.27   586343.755
13 
14 [5 rows x 10 columns]
15 """
16 print(pa.tail())
17 """
18               ts_code   open     ...              vol       amount
19 trade_date                       ...                              
20 2018-01-08  000001.SZ  13.25     ...       2158620.81  2806099.169
21 2018-01-05  000001.SZ  13.21     ...       1210312.72  1603289.517
22 2018-01-04  000001.SZ  13.32     ...       1854509.48  2454543.516
23 2018-01-03  000001.SZ  13.73     ...       2962498.38  4006220.766
24 2018-01-02  000001.SZ  13.35     ...       2081592.55  2856543.822
25 
26 [5 rows x 10 columns]
27 """

 

關於使用index_daily接口獲取指數每日行情,該接口設置了使用權限,用戶需要累積200積分才可以調取,積分積累的辦法可以參照官網的介紹。如果未達到積分,也可以通過舊版接口獲取指數行
情。這里我們通過舊版本獲取並可視化國內上證綜指、深證成指、滬深300、創業板指、上證50、中小板指數據。

 1 #獲取常見股票指數行情
 2 indexs={'上證綜指': 'sh','深證成指': 'sz',
 3          '滬深300': 'hs300','創業板指': 'cyb',
 4           '上證50': 'sz50', '中小板指': 'zxb'}
 5 
 6 index_data = {}
 7 for name, code in indexs.items():
 8     #df = pro.index_daily(ts_code=code)#需要200積分
 9     df = ts.get_hist_data(code,start='2019-01-01',end=datetime.datetime.now().strftime('%Y-%m-%d'))
10     df.index = pd.to_datetime(df.index)
11     index_data[name] = df.sort_index()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM