使用akshare獲取ETF歷史數(shù)據(jù)
在學習量化交易過程中,獲取歷史數(shù)據(jù)是必備技能,獲取的方式有很多,
下面就以個人常用的akshare為例,進行操作演示。
使用akshare獲取ETF歷史數(shù)據(jù),前期準備
先安裝akshare
pip install akshare --upgrade
akshare版本更新頻繁, 使用前先升級, 命令如下所示
pip install akshare --upgrade -i https://pypi.org/simple
通過ak.fund_etf_category_sina()接口獲取ETF列表,代碼如下:
etf = ak.fund_etf_category_sina(symbol="ETF基金")
也可保存在本地,方便今后查閱相關ETF基金對應的代碼。
etf.to_csv("sina_etf_list.csv", encoding='utf-8-sig')

比如中證500ETF? 代碼:sh510500 ,通過以下代碼獲取歷史行情數(shù)據(jù):
df = ak.fund_etf_hist_sina(symbol="sh510500")

如果想只取其中一個時間段的數(shù)據(jù)
df['交易日期'] = pd.to_datetime(df['date'])? ? #該函數(shù)可以將字符型的時間數(shù)據(jù)轉換為時間型數(shù)據(jù)
df.set_index('交易日期', inplace=True)? ?# 以 ‘交易日期’作為索引,方便切片操作
df.drop(columns=['date'],axis=1, inplace=True)? #刪除‘date’列
df = df['2022/05/01' : '2022/05/13']

df.to_csv('sh510500.csv', index=False)? ? # 將數(shù)據(jù)保持在本地