神器Tushare,財(cái)經(jīng)數(shù)據(jù)必備工具!
01 背景
關(guān)于財(cái)經(jīng)數(shù)據(jù),有多個(gè)Python庫(kù)可以供咱們選擇,其中 tushare 是國(guó)內(nèi)較早開始發(fā)布財(cái)經(jīng)數(shù)據(jù)的社區(qū),其內(nèi)容比較完善,今天咱們來(lái)重點(diǎn)介紹下 Tushare 。
Tushare 是一個(gè)金融大數(shù)據(jù)平臺(tái),數(shù)據(jù)內(nèi)容包含股票、指數(shù)、基金、期貨、債券、外匯、行業(yè)大數(shù)據(jù)等,同時(shí)包括了數(shù)字貨幣行情等區(qū)塊鏈數(shù)據(jù),為各類金融投資和研究人員提供適用的數(shù)據(jù)和工具,概覽如下:

下面咱們一起來(lái)了解下這個(gè)高大上的財(cái)經(jīng)數(shù)據(jù)神器 Tushare 。
02 使用 Tushare
Tushare 平臺(tái)的數(shù)據(jù),已全面升級(jí)到 tushare pro 了,通常情況下,還是稱之為 tushare。
想使用 tushare 中的數(shù)據(jù)和功能,首先需要進(jìn)行注冊(cè),獲得一份 token (一串字母和數(shù)字組成的文本),然后才可以獲取到數(shù)據(jù)。
數(shù)據(jù)獲取
在 tushare 中注冊(cè)后,通過(guò) “個(gè)人主頁(yè)”——“接口TOKEN” 可以找到自己的 token 值,界面如下:

復(fù)制 token 值,然后在代碼中進(jìn)行如下設(shè)置:
#?設(shè)置?token
# tushare 注冊(cè)地址:https://tushare.pro/register?reg=129033
#?以上方法只需要在第一次或者token失效后調(diào)用,完成調(diào)取tushare數(shù)據(jù)憑證的設(shè)置,正常情況下不需要重復(fù)設(shè)置。
ts.set_token('你的token值')
pro?=?ts.pro_api()
在設(shè)置好 token 值后,我們就可以開始獲取數(shù)據(jù)。
03 滬深股票
作為國(guó)內(nèi)的投資,首先要接觸的當(dāng)然就是 A股,也就是滬深兩市的股票。Tushare 在滬深股票方面,提供了大量的功能和接口,可以供咱們來(lái)使用,主要包括 基礎(chǔ)數(shù)據(jù)、行情數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)和市場(chǎng)參考數(shù)據(jù)四個(gè)子板塊。

每個(gè)細(xì)分板塊都提供一些特定的接口來(lái)獲取數(shù)據(jù),下面分享部分用的較多的功能。
獲取交易日歷信息
通過(guò) trade_cal 可以便捷的獲取所有的交易日的日期信息,代碼如下:
df?=?pro.trade_cal(exchange_id='',?start_date='20180101',?
???????????????????end_date='',?fields='pretrade_date',
??????????????????is_open='0')
df
這個(gè)信息獲取來(lái)有什么用呢?
在下面的文章中,曾提到過(guò)在繪制股票交易圖表時(shí),希望能夠隱藏周六日和節(jié)假日,只顯示交易日的交易信息,有了 tushare 的這個(gè)功能,就可以快速的對(duì)滬深股市進(jìn)行設(shè)置。即從全部日期中剔除交易日,就是想隱藏的周六日和節(jié)假日的范疇了。
股票列表
獲取股票信息列表也是我們經(jīng)常需要獲取的數(shù)據(jù)之一,在 tushare 中可以有幾種方法來(lái)獲取,包括 pro.stock_basic 和 pro.query。

通過(guò)這個(gè)功能,可以快速的了解到,當(dāng)前滬深兩市,有4000多只股票在正常交易。
也可以通過(guò)下面的方法來(lái)獲取這些信息:
#查詢當(dāng)前所有正常上市交易的股票列表
data?=?pro.query(
????'stock_basic',?exchange='',?list_status='L',?
????fields='ts_code,symbol,name,area,industry,list_date,list_status')
data
股票的日線行情數(shù)據(jù)
獲取日線行情數(shù)據(jù),這恐怕是平時(shí)使用最多的功能了。在 tushare 中,日線行情數(shù)據(jù)的接口是 daily ,目前在 tushare 中可以通過(guò)三種方式來(lái)獲取股票的日線行情數(shù)據(jù)。
pro.daily()方式
可以使用下面的代碼來(lái)獲取茅臺(tái)股份的日線行情數(shù)據(jù),如下:

此外,還可以同時(shí)獲取多只股票的日線行情數(shù)據(jù),代碼如下:
#?獲取多只股票日線行情數(shù)據(jù)
#?茅臺(tái),600519.SH
#?300433?藍(lán)思科技
data?=?pro.daily(
????ts_code='600519.SH,300433.SZ',
????start_date='20180101',
????end_date='20210120')
data
pro.daily() 方法還可以獲取某個(gè)交易日,整個(gè)滬深市場(chǎng)所有股票的日線行情數(shù)據(jù),如下:
#?獲取歷史某天全部股票的交易數(shù)據(jù)
df?=?pro.daily(trade_date='20210120')
df
pro.query()方法
第二種獲取日線行情數(shù)據(jù)的方式是使用 pro.query() ,示例如下:
#?獲取單只股票日線行情數(shù)據(jù)
#?300433?藍(lán)思科技
data?=?pro.query('daily',?ts_code='300433.SZ',?
?????????????????start_date='20180101',?end_date='20210120')
data
ts.pro_bar()方法
此外,tushare 還提供了通用行情接口 pro_bar ,目前整合了股票(未復(fù)權(quán)、前復(fù)權(quán)、后復(fù)權(quán))、指數(shù)、數(shù)字貨幣、ETF基金、期貨、期權(quán)的行情數(shù)據(jù)。可以通過(guò)這個(gè)方法實(shí)現(xiàn)多種標(biāo)的數(shù)據(jù)的獲取。
通用行情接口,適合多種數(shù)據(jù)的獲取。
#?獲取多個(gè)股票的數(shù)據(jù),有 bug?
data?=?ts.pro_bar(
????ts_code='600519.SH',
????start_date='20180101',
????end_date='20210120',
????adj='qfq',
)
data
上面的參數(shù) adj ,復(fù)權(quán)因子,只適用于股票交易數(shù)據(jù), qfq 表示的是 前復(fù)權(quán)。
04 指數(shù)數(shù)據(jù)
除了股票數(shù)據(jù)的獲取,通常情況下,還會(huì)經(jīng)常關(guān)注指數(shù)的行情,比如上證綜合指數(shù)、滬深300指數(shù)等。Tushare 提供的指數(shù)分類信息如下:

指數(shù)基本信息
通過(guò)接口 index_basic 可以獲取不同市場(chǎng)指數(shù)的基本信息,比如可以設(shè)置參數(shù) market='CSI 來(lái)獲取中證指數(shù)的基礎(chǔ)信息。

目前,通過(guò) tushare ,可以快速的獲取以下市場(chǎng)的基本信息:

指數(shù)日線行情數(shù)據(jù)
指數(shù)日線行情數(shù)據(jù)可以通過(guò) index_daily 接口 或 通過(guò)行情接口 來(lái)獲取數(shù)據(jù)。
index_daily接口

index_daily 方法可以設(shè)置獲取數(shù)據(jù)的開始日期和結(jié)束日期,如下:
#?獲取滬深300指數(shù)的日線行情
#?設(shè)置開始和結(jié)束日期
df?=?pro.index_daily(ts_code='000300.SH',
?????????????????????start_date='20180101',?
?????????????????????end_date='20210120')
df
通用行情接口
同樣的,可以通過(guò)通用行情接口來(lái)獲取指數(shù)的數(shù)據(jù),設(shè)置參數(shù) asset=I ,表示獲取的是指數(shù)數(shù)據(jù)(I:index),代碼如下:
df?=?ts.pro_bar(ts_code='000300.SH',
????????????????asset='I',start_date='20180101',?end_date='20210120')
df
05 積分
上面提到的這些接口和功能還只是很小一部分。
Tushare 提供的功能確實(shí)很多,而且基礎(chǔ)功能都是免費(fèi)提供的。在本文剛開始的時(shí)候,跟大家提到了使用 tushare 需要進(jìn)行注冊(cè)。
為啥需要注冊(cè)呢,因?yàn)?tushare 進(jìn)行了不同積分權(quán)限的設(shè)置,不同的積分,獲取數(shù)據(jù)的權(quán)限是不一樣的。
上面跟大家介紹的常用的接口和功能,大部分是注冊(cè)之后就可以使用的。如果想更高頻率的獲取數(shù)據(jù),或者想獲取公募基金數(shù)據(jù)、港股、美股數(shù)據(jù)等,就需要提高積分權(quán)限了。
目前, tushare 官方給的一些提高積分的方法,有那么幾種,一種是金額贊助,可以去換積分。另一種是官方給了一些推廣的途徑,去幫它推廣也可以獲取積分。
其實(shí),也是需要理解 tushare官方 的這種做法的,畢竟天下沒(méi)有免費(fèi)的午餐。這么好用的工具,如果完全免費(fèi),tushare官方估計(jì)也很難維護(hù)這樣一個(gè)社區(qū)。

加入知識(shí)星球【我們談?wù)摂?shù)據(jù)科學(xué)】
300+小伙伴一起學(xué)習(xí)!
· 推薦閱讀?·
5個(gè)基本概念,從統(tǒng)計(jì)學(xué)到機(jī)器學(xué)習(xí)
