1 背景
Tushare平臺是目前使用python學習量化投資比較好用的而且是免費的一個數據獲取平臺。主要實現對金融資料從
資料採集
、
清洗加工
到
資料儲存
的過程,能夠為金融分析人員提供快速、整潔、和多樣的便於分析的資料,為他們在資料獲取方面極大地減輕工作量,使他們更加專注於策略和模型的研究與實現上。
2 獲取未復權資料
2。1 登陸Tushare
透過以下url,使用者可以註冊到自己的tushare賬號,登陸賬號之後,在賬號的個人首頁->介面Token中獲取對應的Token進行資料獲取的鑰匙。
url = “https://tushare。pro/register?reg=399376”
2。2 用pyhton連線tushare
首先,需要安裝tushare模組
pip install requests
連線tushare
import tushare as tsts。set_token(‘your token here’)#這裡填入自己獲取的tokenpro = ts。pro_api()
2。3 用pyhton獲取資料
以平安銀行為例,獲取2018年-2021年平安銀行的日線資料:
df = pro。daily(ts_code=‘000001。SZ’, start_date=‘20180701’, end_date=‘20211022’)
資料說明:
交易日每天15點~16點之間。本介面是未復權行情,停牌期間不提供資料。
輸入引數:
名稱
型別
必選
描述
ts_code
str
N
股票程式碼(支援多個股票同時提取,逗號分隔)
trade_date
str
N
交易日期(YYYYMMDD)
start_date
str
N
開始日期(YYYYMMDD)
end_date
str
N
結束日期(YYYYMMDD)
注:日期都填YYYYMMDD格式,比如20181010
輸出引數:
名稱
型別
描述
ts_code
str
股票程式碼
trade_date
str
交易日期
open
float
開盤價
high
float
最高價
low
float
最低價
close
float
收盤價
pre_close
float
昨收價
change
float
漲跌額
pct_chg
float
漲跌幅 (未復權,如果是復權請用 通用行情介面 )
vol
float
成交量 (手)
amount
float
成交額 (千元)
也可以透過這種方式進行資料獲取:
df = pro。query(‘daily’, ts_code=‘000001。SZ’, start_date=‘20180701’, end_date=‘20211022’)
也可以按照日期獲取某一天的全部資料:
df = pro。daily(trade_date=‘20211022’)
多個數據一起獲取:
df = pro。daily(ts_code=‘000001。SZ,600000。SH’, start_date=‘20180701’, end_date=‘20180718’)
2。4 檢視資料資料
檢視拿到的資料型別,發現數據為DataFrame格式,因此資料的操作與pandas一致
>>>type(df)pandas。core。frame。DataFrame
檢視前5條資料
df。head()
同理,檢視後5條資料
df。tail()
ts_code
trade_date
open
high
low
close
pre_close
change
pct_chg
799
000001。SZ
20180706
8。61
8。78
8。45
8。66
8。60
0。06
0。70
800
000001。SZ
20180705
8。62
8。73
8。55
8。60
8。61
-0。01
-0。12
801
000001。SZ
20180704
8。63
8。75
8。61
8。61
8。67
-0。06
-0。69
802
000001。SZ
20180703
8。69
8。70
8。45
8。67
8。61
0。06
0。70
803
000001。SZ
20180702
9。05
9。05
8。55
8。61
9。09
-0。48
-5。28
3 獲取復權資料
介面名稱
:pro_bar
更新時間
:股票和指數通常在15點~17點之間,數字貨幣實時更新,具體請參考各介面文件明細。
描述
:目前整合了股票(未復權、前復權、後復權)、指數、數字貨幣、ETF基金、期貨、期權的行情資料,未來還將整合包括外匯在內的所有交易行情資料,同時提供分鐘資料。不同資料對應不同的積分要求,具體請參閱每類資料的文件說明。
其它
:由於本介面是整合介面,在SDK層做了一些邏輯處理,目前暫時沒法用http的方式調取通用行情介面。使用者可以訪問Tushare的Github,檢視原始碼完成類似功能。
輸入引數
名稱
型別
必選
描述
ts_code
str
Y
證券程式碼,不支援多值輸入,多值輸入獲取結果會有重複記錄
api
str
N
pro版api物件,如果初始化了set_token,此引數可以不需要
start_date
str
N
開始日期 (格式:YYYYMMDD,提取分鐘資料請用2019-09-01 09:00:00這種格式)
end_date
str
N
結束日期 (格式:YYYYMMDD)
asset
str
Y
資產類別:E股票 I滬深指數 C數字貨幣 FT期貨 FD基金 O期權 CB可轉債(v1。2。39),預設E
adj
str
N
復權型別(只針對股票):None未復權 qfq前復權 hfq後復權 , 預設None,目前只支援日線復權。
freq
str
Y
資料頻度 :支援分鐘(min)/日(D)/周(W)/月(M)K線,其中1min表示1分鐘(類推1/5/15/30/60分鐘) ,預設D。對於分鐘資料有600積分使用者可以試用(請求2次),正式許可權請在QQ群私信群主或積分管理員。
ma
list
N
均線,支援任意合理int數值。注:均線是動態計算,要設定一定時間範圍才能獲得相應的均線,比如5日均線,開始和結束日期引數跨度必須要超過5日。目前只支援單一個股票提取均線,即需要輸入ts_code引數。
factors
list
N
股票因子(asset=‘E’有效)支援 tor換手率 vr量比
adjfactor
str
N
復權因子,在復權資料時,如果此引數為True,返回的資料中則帶復權因子,預設為False。 該功能從1。2。33版本開始生效
獲取平安銀行前復權資料
df = pro。query(‘daily’, adj = ‘qfq’, ts_code=‘000001。SZ’, start_date=‘20210701’, end_date=‘20211022’)
4 總結
這是最基礎的資料獲取教程,程式碼已同步到github,會慢慢更新~
5 Reference
https://github。com/RxxxxR/quantitative_analysis
Tushare大資料社群