核心用法
BaoStock 是一个面向中国A股市场的免费开源金融数据接口,用户通过 pip install baostock 安装后,调用 bs.login() 即可开始会话,无需任何注册或API Key。核心功能包括:
1. K线数据查询:query_history_k_data_plus 支持日线、周线、月线及5/15/30/60分钟线,提供开高低收、成交量、成交额、涨跌幅等基础字段,以及市盈率(PE-TTM)、市净率(PB)、换手率等衍生指标
2. 证券列表与基本信息:query_all_stock 获取全市场证券代码,query_stock_basic 获取上市日期、退市状态等基础信息
3. 财务数据:按季度提供盈利能力(ROE、毛利率)、营运能力(周转率)、成长能力(同比增速)、偿债能力、现金流及杜邦分析数据
4. 行业与指数:query_stock_industry 获取行业分类,query_hs300_stocks/query_sz50_stocks/query_zz500_stocks 获取主流指数成分股
5. 辅助功能:交易日历查询(query_trade_dates)、分红数据(query_dividend_data)
所有查询返回统一的消息对象,调用 .get_data() 即可转换为 pandas DataFrame,便于后续分析处理。
显著优点
- 零门槛使用:完全免费、无需注册、无API Key限制,降低量化入门门槛
- 数据完整性:覆盖A股自1990年至今的历史数据,财务数据按季度更新
- Python原生集成:直接返回 pandas DataFrame,与数据分析生态无缝衔接
- 多维度数据:同时提供行情、财务、行业、指数成分等多类型数据
- 复权支持:内置前复权、后复权、不复权三种选项
- 分钟级数据:支持日内5/15/30/60分钟K线(股票适用,指数无分钟数据)
潜在局限与风险
- 非实时数据:数据存在延迟,不适合高频实时交易场景
- 财务数据延迟:季度报告发布后约2个月才更新,时效性有限
- 稳定性依赖:作为第三方免费服务,无SLA保障,可能因维护中断
- 非线程安全:需使用多进程而非多线程进行并行下载
- 数据覆盖限制:仅覆盖A股市场,不包含港股、美股等其他市场
- 无逐笔成交:仅提供K线聚合数据,不支持Level2逐笔明细
适合人群
- 量化入门学习者:零成本获取真实市场数据进行策略回测练习
- 个人投资者:需要批量获取历史数据进行基本面或技术分析
- 学术研究者:需要A股历史数据进行金融实证研究
- 中小私募/策略开发者:快速验证策略idea,降低数据采购前期成本
常规风险提示
数据仅供参考,不构成投资建议。免费数据源在极端行情或系统维护期间可能出现延迟或中断,生产环境建议配置备用数据源。财务数据存在审计调整可能,历史数据可能因除权除息、退市整理等原因发生变更,回测时需注意前复权数据的未来函数问题。