baostock获取etf基金
时间: 2024-02-24 16:58:59 浏览: 23
要使用 baostock 获取 ETF 基金的数据,可以按照以下步骤进行:
1. 导入 baostock 库:
```
import baostock as bs
```
2. 登录 baostock:
```
lg = bs.login()
```
3. 获取 ETF 基金的代码:
```
rs = bs.query_all_stock(day="2021-08-27")
data_list = []
while (rs.error_code == '0') & rs.next():
if rs.get_row_data()[2].startswith('510') or rs.get_row_data()[2].startswith('159'):
data_list.append(rs.get_row_data())
```
上述代码中,我们通过查询所有股票信息,筛选出以 510 或者 159 开头的 ETF 基金代码。
4. 获取 ETF 基金的历史 K 线数据:
```
for item in data_list:
code = item[2]
rs = bs.query_history_k_data_plus(code, "date,open,high,low,close,volume", start_date="2021-01-01", end_date="2021-08-27", frequency="d", adjustflag="3")
data = rs.get_data()
# 处理数据
```
上述代码中,我们通过循环遍历 ETF 基金代码列表,分别获取每个基金的历史 K 线数据,并进行处理。其中,start_date 和 end_date 指定了数据的时间范围,frequency 指定了数据的频率,adjustflag 表示复权类型(这里选用的是后复权)。
需要注意的是,baostock 是一个收费的数据服务,需要先注册并购买相应的服务才能使用。此外,获取数据的过程可能会受到 baostock 服务器的限制,因此需要进行适当的异常处理。