「Python量化分析100例」Day1-使用Tushare獲取資料

1 背景

Tushare平臺是目前使用python學習量化投資比較好用的而且是免費的一個數據獲取平臺。主要實現對金融資料從

資料採集

清洗加工

資料儲存

的過程,能夠為金融分析人員提供快速、整潔、和多樣的便於分析的資料,為他們在資料獲取方面極大地減輕工作量,使他們更加專注於策略和模型的研究與實現上。

2 獲取未復權資料

2。1 登陸Tushare

透過以下url,使用者可以註冊到自己的tushare賬號,登陸賬號之後,在賬號的個人首頁->介面Token中獲取對應的Token進行資料獲取的鑰匙。

url = “https://tushare。pro/register?reg=399376”

「Python量化分析100例」Day1-使用Tushare獲取資料

2。2 用pyhton連線tushare

首先,需要安裝tushare模組

pip install requests

「Python量化分析100例」Day1-使用Tushare獲取資料

連線tushare

import tushare as tsts。set_token(‘your token here’)#這裡填入自己獲取的tokenpro = ts。pro_api()

「Python量化分析100例」Day1-使用Tushare獲取資料

2。3 用pyhton獲取資料

以平安銀行為例,獲取2018年-2021年平安銀行的日線資料:

df = pro。daily(ts_code=‘000001。SZ’, start_date=‘20180701’, end_date=‘20211022’)

「Python量化分析100例」Day1-使用Tushare獲取資料

資料說明:

交易日每天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’)

「Python量化分析100例」Day1-使用Tushare獲取資料

也可以按照日期獲取某一天的全部資料:

df = pro。daily(trade_date=‘20211022’)

「Python量化分析100例」Day1-使用Tushare獲取資料

多個數據一起獲取:

df = pro。daily(ts_code=‘000001。SZ,600000。SH’, start_date=‘20180701’, end_date=‘20180718’)

「Python量化分析100例」Day1-使用Tushare獲取資料

2。4 檢視資料資料

檢視拿到的資料型別,發現數據為DataFrame格式,因此資料的操作與pandas一致

>>>type(df)pandas。core。frame。DataFrame

「Python量化分析100例」Day1-使用Tushare獲取資料

檢視前5條資料

df。head()

「Python量化分析100例」Day1-使用Tushare獲取資料

同理,檢視後5條資料

df。tail()

「Python量化分析100例」Day1-使用Tushare獲取資料

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’)

「Python量化分析100例」Day1-使用Tushare獲取資料

4 總結

這是最基礎的資料獲取教程,程式碼已同步到github,會慢慢更新~

5 Reference

https://github。com/RxxxxR/quantitative_analysis

Tushare大資料社群