接口获取股票数据"/>
使用tushare接口获取股票数据
量化投资在近些年来成为了金融行业中的一个热点,在做量化之前需要先获取到市场的行情数据,今天来介绍一个python接口tushare,通过该接口可以获取到大量的金融数据,涵盖了股票,基本面数据,宏观经济数据等,并且在不断的更新中。**1.安装教程**
将tushare作为python的一个三方库,提前pip在环境之中,之后通过如下代码导入:
import tushare as ts
需要注意的的是,在首次使用时需要设置token
ts.set_token('your token')
token在tushare主页中的个人中心可以查看。
在获取股票日线行情时用到的接口是:
ts.pro.daily()
参数说明:
ts_code:股票代码,str类型,同时支持多个股票提取,用逗号隔开
trade_date:交易日期,str类型,YYYYMMDD
start_date: 获取数据的起始日期,str类型,YYYYMMDD
end_data:获取数据的终止日期,str类型,YYYYMMDD
接下来分享一下自己封装的一个通过该接口获取股票数据的函数:
class TushareDownloader:"""Provides methods for retrieving daily stock data fromTushare Finance APIAttributes----------start_date : strstart date of the data (modified from config.py)end_date : strend date of the data (modified from config.py)ticker_list : lista list of stock tickers (modified from config.py)Methods-------fetch_data()Fetches data from tushare API"""def __init__(self, start_date: str, end_date: str, ticker_list: dict):self.start_date = start_dateself.end_date = end_dateself.ticker_list = ticker_listdef fetch_date(self) -> pd.DataFrame:"""Fetches data from Tushare APIParameters----------Returns-------`pd.DataFrame`7 columns: A date, open, high, low, close, volume and tick symbolfor the specified stock ticker"""# Download and save the data in a pandas DataFrame:data_df = pd.DataFrame()for code in self.ticker_list:temp_df = pro.daily(ts_code=code, start_date=self.start_date, end_date=self.end_date)temp_df['tic'] = self.ticker_list[code]data_df = data_df.append(temp_df)data_df = data_df.drop(['ts_code', 'pre_close', 'change', 'pct_chg', 'amount'], axis=1)data_df = data_df[['trade_date', 'open', 'high', 'low', 'close', 'vol', 'tic']]data_df.columns = ['date', 'open', 'high', 'low', 'close', 'volume', 'tic']data_df['date'] = pd.to_datetime(data_df['date'])data_df['day'] = data_df['date'].dt.dayofweek# convert date to standard string format, easy to filterdata_df['date'] = data_df.date.apply(lambda x: x.strftime("%Y-%m-%d"))data_df = data_df.dropna()data_df = data_df.reset_index(drop=True)print("Shape of DataFrame: ", data_df.shape)# print("Display DataFrame: ", data_df.head())data_df = data_df.sort_values(by=['date', 'tic']).reset_index(drop=True)return data_df
后续的使用过程中会继续分享一些关于tushare使用的报告。
更多推荐
使用tushare接口获取股票数据
发布评论