tushare包使用案例

2022-09-15 08:00:12 字數 3518 閱讀 2939

tushare是乙個免費、開源的python財經資料界麵包。主要實現對**等金融資料從資料採集清洗加工資料儲存的過程,能夠為金融分析人員提供快速、整潔、和多樣的便於分析的資料,為他們在資料獲取方面極大地減輕工作量,使他們更加專注於策略和模型的研究與實現上。考慮到python pandas包在金融量化分析中體現出的優勢,tushare返回的絕大部分的資料格式都是pandas dataframe型別。

舉例使用

import

numpy 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')

print

(type(df))

df.to_csv(

'600519.csv')

df = pd.read_csv('

600519.csv

',index_col='

date

',parse_dates=['

date

'])[['

open

','close

','high

','low']]

print

(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:")

print

(df_monthly)

print("

df_yearly:")

df_yearly = df.resample("

a").last()[:-1] #

每年最後一天

print

(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']]

print

(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...