tushare是乙個免費、開源的python財經資料界麵包。主要實現對**等金融資料從資料採集、清洗加工到資料儲存的過程,能夠為金融分析人員提供快速、整潔、和多樣的便於分析的資料,為他們在資料獲取方面極大地減輕工作量,使他們更加專注於策略和模型的研究與實現上。考慮到python pandas包在金融量化分析中體現出的優勢,tushare返回的絕大部分的資料格式都是pandas dataframe型別。
舉例使用
importnumpy as np
import
pandas as pd
import
matplotlib.pyplot as plt
import
tushare as ts
#使用tushare 獲取每只**的**資料
df = ts.get_k_data('
600519
',start='
2008-01-01')
(type(df))
df.to_csv(
'600519.csv')
df = pd.read_csv('
600519.csv
',index_col='
date
',parse_dates=['
date
'])[['
open
','close
','high
','low']]
(df)
#輸出該**所有**比開盤**3%以上的日期
print(df[(df['
close
']-df['
open
'])/df['
open
']>0.03].index)
#df.shift() 移動,正數向下移動,負數向上移動
#輸出該**所有開盤比前日**跌幅超過2%的日期
df[(df['
open
']-df['
close
'].shift(1))/df['
close
'].shift(1)<=-0.02].index
#假如我從2023年1月1日開始,每月第乙個交易日**1手**,每年最後乙個交易日賣出所有**,到今天為止,我的收益如何?
price_last = df['
open
'][-1]
df = df['
2008-01
':'2018-11
'] #
剔除首尾無用的資料
df_monthly = df.resample("
ms" ).first() #
每月第一天
print("
df_monthly 2008:")
(df_monthly)
print("
df_yearly:")
df_yearly = df.resample("
a").last()[:-1] #
每年最後一天
(df_yearly)
cost_money=0
hold =0
for year in range(2008,2018):
cost_money += df_monthly[str(year)]['
open
'].sum() * 100hold += len(df_monthly[str(year)]['
open
'])*100cost_money -= df_yearly[str(year)]['
open
'][0] *hold
hold =0
print('
cost_money: %s
'%(0-cost_money))
#求5日**和30日**
df = pd.read_csv('
601318.csv
',index_col='
date
',parse_dates=['
date
'])[['
open
','close
','low
','high']]
(df.head())
df['
ma5'] =np.nan
df['
ma30
'] =np.nan##
for i in range(4,len(df)):
#df.loc[df.index[i],'ma5'] = df['close'][i-4:i+1].mean()##
for i in range(29,len(df)):
#df.loc[df.index[i],'ma30'] = df['close'][i-29:i+1].mean()##
print(df.head(50))
df['
ma5'] = df['
close
'].rolling(5).mean() #
視窗向下滾動5個
df['
ma30
'] = df['
close
'].rolling(30).mean() #
視窗向下滾動30個
print(df.head(50))
#畫**圖
df = df[:800]
df[[
'close
','ma5
','ma30
']].plot()
plt.show()
#金叉和死叉日期
golden_cross =
death_cross =
for i in range(1,len(df)):
if df['
ma5'][i]>=df['
ma30
'][i] and df['
ma5'][i-1]< df['
ma30
'][i-1]:
if df['
ma5'][i] <= df['
ma30
'][i] and df['
ma5'][i - 1] > df['
ma30
'][i - 1]:
print(golden_cross[:5])
sr1 = df['
ma5'] < df['
ma30']
sr2 = df['
ma5'] >= df['
ma30']
death_cross = df[sr1 & sr2.shift(1)].index
golden_cross = df[~(sr1 | sr2.shift(1))].index
print(death_cross)
tushare包使用學習
pandas,lxml,bs4是turshare的依賴包 雖然安裝的時候不裝bs4也行,但是import的時候會報錯 除此之外,匯出excel時提示openpyxl 是1不是l conda install openpyxl seaborn是視覺化包,也一併裝了 ts.get sz50s 呼叫時提示沒...
Sypder初次使用tushare
安裝tushare 在cmd中輸入 pip install tushare公升級tushare1 先檢視本地與線上的版本版本號,在cmd中輸入 pip search tushare2 公升級tushare,在cmd中輸入 pip install tushare upgrade確認安裝成功在sypde...
金融量化之tushare模組的使用
tushare是乙個著名的免費 開源的python財經資料界麵包。其官網主頁為 tushare 財經資料界麵包。該界麵包如今提供了大量的金融資料,涵蓋了 基本面 巨集觀 新聞的等諸多類別資料 具體請自行檢視官網 並還在不斷更新中。tushare可以基本滿足量化初學者的回測需求 環境安裝 pip in...