使用akshare获取ETF历史数据
在学习量化交易过程中,获取历史数据是必备技能,获取的方式有很多,
下面就以个人常用的akshare为例,进行操作演示。
使用akshare获取ETF历史数据,前期准备
先安装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 ,通过以下代码获取历史行情数据:
df = ak.fund_etf_hist_sina(symbol="sh510500")

如果想只取其中一个时间段的数据
df['交易日期'] = pd.to_datetime(df['date']) #该函数可以将字符型的时间数据转换为时间型数据
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) # 将数据保持在本地