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 = https://www.cnblogs.com/sunspot-chen/p/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 =https://www.cnblogs.com/sunspot-chen/p/ {} 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()

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/150265.html
標籤:Python
上一篇:mac命令列切換python版本
