baostock 是一个免费开源的证券数据平台,通过 Python API 提供大量准确、完整的证券历史行情数据、上市公司财务数据等,能满足量化交易投资者、数量金融爱好者、计量经济从业者的数据需求。
它的数据返回格式为 pandas DataFrame 类型,这对于使用 pandas/NumPy/Matplotlib 进行数据分析和可视化非常友好。
1. 数据范围与时间
baostock 的数据覆盖范围主要包括:
| 数据类型 | 包含内容 | 时间范围 | 备注 |
|---|---|---|---|
| 股票数据 | 日、周、月 K 线数据 | 1990-12-19 至今 | |
| 5、15、30、60 分钟 K 线数据 | 1999-07-26 至今 | ||
| 指数数据 | 综合指数,规模指数,一级行业指数,二级行业指数,策略指数,成长指数,价值指数,主题指数,基金指数,债券指数 | 2006-01-01 至今 | 指数没有分钟线数据 |
| 财务数据 | 部分上市公司资产负债信息、上市公司现金流量信息、上市公司利润信息、上市公司杜邦指标信息 | 2007 年至今 | 季频 |
| 公司报告 | 上市公司业绩预告信息 | 2003 年至今 | 季频 |
| 上市公司业绩快报信息 | 2006 年至今 | 季频 |
每日最新数据更新时间需要注意:
- 日 K 线数据:当前交易日 17:30 完成入库。
- 分钟 K 线数据:当前交易日 20:30 完成入库。
- 其它财务报告数据:第二自然日 1:30 完成前交易日数据入库。
2. 安装与环境配置
安装 baostock 非常简单,只需在命令行中执行:
pip install baostock -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
注意:程序运行时,文件名、文件夹名不能是 baostock。
3. 核心 API 使用详解
3.1 登录与登出
在开始任何数据查询前,都需要先登录系统。建立与服务器的连接无需注册即可登录。需要注意的是,登录后超过一段时间没有操作再调用 API 请求时会超时,需要重新登录才能继续下载数据。
import baostock as bs
# 登录系统
lg = bs.login()
# 显示登录返回信息
print('login respond error_code:' + lg.error_code)
print('login respond error_msg:' + lg.error_msg)
# 你的数据查询代码将在这里
# 登出系统
bs.logout()
3.2 获取历史 A 股 K 线数据
query_history_k_data_plus() 是获取历史 A 股 K 线数据的重要接口。
方法说明:通过 API 接口获取 A 股历史交易数据,可以通过参数设置获取日 k 线、周 k 线、月 k 线,以及 5 分钟、15 分钟、30 分钟和 60 分钟 k 线数据,适合搭配均线数据进行选股和分析。

