一、 Baostock 是什么?

Baostock(宝硕股票)是一个免费、开源的证券数据平台(SDK),旨在为金融量化投资者、研究人员和学生提供稳定、准确、易用的A股历史数据和相关金融数据。

其核心是一个 Python 库,用户通过调用其提供的API函数,即可便捷地获取数据到本地进行分析和回测,无需复杂的爬虫技术。

官方定位: “无需注册,即可获取大量准确、完整的证券历史行情数据、上市公司财务数据等。”

二、 核心功能与数据范围

Baostock 的数据覆盖范围是其最大的竞争力之一。

1. 行情数据 (核心)

  • K线数据: 提供日、周、月级别的K线数据。
    • 包含:日期、开盘价、最高价、最低价、收盘价、成交量、成交额、换手率、复权因子等。

  • 复权处理: 支持前复权后复权不复权三种价格,极大地方便了量化回测。
  • 时间范围: 数据可追溯至1990-12-19(上证交易所开业初期),覆盖了A股几乎全部历史。

2. 基本面数据 (价值)

  • 公司资料: 上市公司基本信息、所属行业、地域等。
  • 财务数据: 按季度、年度提供资产负债表、利润表、现金流量表的核心指标。
    • 例如:每股收益、净利润、营业收入、资产负债率等
  • 估值数据: 市盈率(PE)、市净率(PB)、市销率(PS)等,且提供动/静态、滚动的计算方式

3. 宏观数据 & 行业数据

  • 宏观经济指标: 如GDP、CPI、PPI、PMI、货币供应量(M0, M1, M2)等。
  • 行业分类数据: 提供股票所属的证监会、申万等行业分类信息。
  • 利率数据: 存贷款利率、国债收益率等。

4. 其他数据

  • 融资融券数据
  • 指数成分股数据
  • 除除息信息、送股信息

三、 优势 (Pros)

  1. 完全免费与开源: 这是其最吸引人的特点。相比于Wind、Choice等动辄数万元的终端,Baostock 对个人投资者和研究者极其友好。代码开源也意味着透明和安全。
  2. 数据质量高且准确: 数据经过清洗和整理,准确度较高,尤其是复权处理做得很好,避免了回测中的“坑”。
  3. 接口简单易用: 纯Python接口,API设计清晰,只需几行代码就能获取数据,学习成本极低。对Python数据分析生态(Pandas, NumPy, Matplotlib)兼容性极佳,返回的数据通常是Pandas DataFrame格式,可直接进行分析和可视化。
  4. 数据历史长度足够: 长达30多年的历史数据,足以满足绝大多数长期策略回测的需求。
  5. 无需注册和认证: 下载即用,没有复杂的申请流程和API Key限制,降低了使用门槛。
  6. 稳定性与维护: 项目持续维护更新,社区有一定活跃度,遇到问题可以通过官方文档或社区寻求帮助。

四、 劣势与局限性 (Cons)

  1. 数据频率限制: 最大的局限性在于不支持日内高频数据(如1分钟、5分钟、Tick数据)。主要专注于日、周、月线级别的低频数据。这对于需要高频交易策略的研究者来说是不可用的。
  2. 实时性限制: 数据并非实时更新,通常有15分钟左右的延迟。不适合用于实盘交易决策,更侧重于历史回测和研究
  3. 数据广度与深度: 虽然覆盖了核心数据,但与付费的顶级终端(如Wind)相比,在数据的广度和深度上仍有差距。例如,更细分的财务指标、详细的研报数据、新闻舆情、大宗交易、龙虎榜等数据可能缺失或不如专业终端全面。
  4. API调用限制: 虽然没有明确的文档说明,但可能存在未公开的请求频率限制。如果短时间内发出海量请求,IP可能会被暂时限制访问。通常需要在自己的代码中添加time.sleep()来规避。
  5. 依赖网络与服务器: 数据获取依赖于Baostock的服务器,如果服务器出现故障或维护,服务会中

五、 适用场景

  • 个人量化爱好者/学习者: 学习和实践量化交易的绝佳工具,零成本入门。
  • 学术研究: 撰写论文、进行金融市场相关实证研究的可靠数据来源。
  • 中长期策略回测: 基于日线或周线数据的价值投资、趋势跟踪、因子投资等策略的回测。
  • 基本面分析: 获取和分析上市公司财务报表数据。
  • 金融数据分析教学: 在高校课程中,作为学生练习数据获取、清洗、分析和可视化的完美案例。

不适用场景

  • 高频交易策略开发
  • 实盘交易信号生成(因数据延迟)
  • 需要极度深度和前沿数据的专业机构投资经理

六、 与替代品的对比

特性BaostockTushareAkShareWind(万得) / Choice(东方财富)
成本完全免费免费+积分(Pro版收费)完全免费非常昂贵
数据频率日、周、月日、周、月、分钟、Tick(积分)日、周、月、分钟、Tick全频率,包括实时
数据范围A股、宏观、指数非常广泛(A股、港股、美股、期货、期权等)极其广泛(全球市场、宏观、商品、新闻等)最全面、最权威
易用性非常简单简单(但接口版本多)接口较多,需查找图形界面+API,功能强大
实时性延迟15分钟实时数据需积分/付费实时/略有延迟实时
核心用户初学者、研究者、个人个人、专业开发者专业开发者、研究者专业机构、基金经理

简单总结

  • Baostock: “专注、简单、免费的A股历史数据专家”
  • Tushare/AkShare: “免费且数据广泛的爬虫聚合库”,功能更强大但接口可能更复杂。
  • Wind/Choice: “专业机构的全能武器”,无所不包但价格高昂。

七、 快速入门指南

安装:pip install baostock
  1. 基本使用流程(四步曲)
    python
import baostock as bs
import pandas as pd# 1. 登录系统
lg = bs.login()
# 显示登录返回信息
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)# 2. 获取数据
# 查询复权后(前复权)的日K线数据
rs = bs.query_history_k_data_plus("sh.600000","date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",start_date='2023-01-01', end_date='2024-01-01',frequency="d", adjustflag="2") # adjustflag: 2-前复权, 3-后复权# 3. 将数据转换为pandas DataFrame
data_list = []
while (rs.error_code == '0') & rs.next():# 获取一条记录,将记录合并在一起data_list.append(rs.get_row_data())
df = pd.DataFrame(data_list, columns=rs.fields)# 4. 登出系统
bs.logout()# 处理数据:转换数据类型
df['close'] = df['close'].astype('float')
df['volume'] = df['volume'].astype('float')
print(df.head())
  1. 重要提示
  • 务必在程序结束前调用 bs.logout()
  • 获取大量数据时,请在循环请求中添加 time.sleep(0.5) 以避免被限流。

总结

Baostock 是一个极其优秀、专注于A股历史低频数据的免费解决方案。 它以其简单、可靠、免费的特性,成为了无数个人量化交易者和研究人员入门和研究的“第一块基石”。

如果你的需求是:

  • 免费
  • 获取A股漫长的历史日线数据
  • 进行中长期策略回测
  • 学习Python量化分析

那么,Baostock 几乎是你的不二之选。但如果你的需求扩展到高频、实时或全球市场,则需要考虑 Tushare、AkShare 或付费的专业数据终端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/922029.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/922029.shtml
英文地址,请注明出处:http://en.pswp.cn/news/922029.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序-1-微信开发者工具环境搭建和初始化创建项目

文章目录1 小程序概述1.1 什么是微信小程序1.2 大前端概念1.3 账号注册1.4 开发流程1.5 小程序成员2 创建项目2.1 创建项目流程2.2 创建项目2.3 本地开发支持http3 项目目录3.1 项目目录结构3.2 配置文件3.2.1 app.json(全局配置)3.2.2 xxx.json(页面配置)3.2.3 project.config…

Go语言开发AI应用

为什么选择Go语言开发AI应用在人工智能快速发展的今天,选择合适的编程语言对于AI应用的成功至关重要。虽然Python长期以来被认为是AI开发的首选语言,但Go语言正在逐渐崭露头角,成为AI应用开发的有力竞争者。Go语言的核心优势1. 卓越的性能表现…

10. 游戏开发中的TCP与UDP

1.TCP和UDP 2.TCP为什么慢于UDP 3.可靠UDP1.TCP和UDP 1).通过打电话的方式说明TCP和UDPa.TCP(传输控制协议), 就像打电话- 需要先拨号, 接通, 问候(建立连接)- 你一句, 我一句, 对方没有听清会要求你重复(确认与重传)- 保证对话有条不紊, 内容准确无误(可靠, 有序)- 如果信号不…

CMap常用函数

CMap 是 MFC 中用于存储键值对(key-value)的关联容器类,类似于 C 标准库中的 std::map,但依赖 MFC 框架实现。它采用哈希表(Hash Table)作为底层数据结构,支持高效的键值查找、插入和删除操作。…

Rocky9.0去堆叠双发arp(支持“ARP 广播双发”)

摘要 在去堆叠/MLAG 场景下,默认 bonding 只会以单口回复 ARP,另一台交换机收不到 ARP Reply。本文在 Linux bonding 驱动中增加参数 arp_broadcast_mode,当开启时对 ARP 包临时切换到 广播模式,实现双口同时发 ARP Reply。文内提…

网页连接摄像头

摄像机处理 <!-- camera_solve.html --> <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

FPGA雷达信号处理之:自适应门限阈值

一、原理 参考这个博主&#xff0c;讲的很仔细&#xff1a;基于脉冲功率的雷达脉冲参数检测原理详解 二、FPGA实现 使用system generator搭建算法模型如下&#xff1a; 在这里&#xff0c;滤波器窗长度为8&#xff0c;原博主设置为50效果更好&#xff0c;门限公式如下&#xf…

Vue 中实现选中文本弹出弹窗的完整指南

在现代 Web 应用中&#xff0c;选中文本后显示相关操作或信息是一种常见的交互模式。本文将详细介绍如何在 Vue 中实现选中文本后弹出弹窗的功能&#xff0c;包括其工作原理、多种实现方式以及实际项目中的应用示例。 一、实现原理 1. 文本选中检测机制 浏览器提供了 Select…

第4节-排序和限制-FETCH

摘要: 在本教程中&#xff0c;你将学习如何使用 PostgreSQL 的 FETCH 子句从查询中检索部分行。 PostgreSQL FETCH 简介 在 PostgreSQL 中&#xff0c;OFFSET 子句的作用类似于 LIMIT 子句。FETCH 子句允许你限制查询返回的行数。 LIMIT 子句并非 SQL 标准的一部分。不过&#…

洛谷 P2680 [NOIP 2015 提高组] 运输计划(二分答案 + 树上差分)

题目链接题目概括与评价 很经典&#xff0c;突破口藏的很深&#xff0c;求最小值这里&#xff0c;是问题切入点&#xff0c;想到用二分答案&#xff0c;然后思考怎么写 f_check 函数。二分答案树上差分。代码 #include <iostream> #include <vector> #include <…

接力邓承浩,姜海荣能讲好深蓝汽车新故事吗?

出品 | 何玺排版 | 叶媛深蓝汽车迎来新话事人。9月5日&#xff0c;新央企长安汽车旗下品牌深蓝汽车传出新的人事调整。多家业内媒体报道称&#xff0c;荣耀前中国区CMO姜海荣已正式加入长安汽车&#xff0c;并出任旗下深蓝汽车CEO一职。原CEO邓承浩则升任深蓝汽车董事长&#x…

esp32-c3写一个收集附近 WiFi 和蓝牙信号通过

下面给你一个基于 ESP-IDF(v5.x) 的完整示例&#xff1a;在 ESP32-C3 上同时扫描附近 Wi-Fi 与蓝牙&#xff08;BLE&#xff09;广播&#xff0c;把结果以 JSON 结构统一输出到串口&#xff0c;并且可可选通过 MQTT 上报到服务器&#xff08;打开一个宏即可&#xff09;。日志默…

文心大模型 X1.1:百度交出的“新深度思考”答卷

文心大模型 X1.1&#xff1a;百度交出的“新深度思考”答卷 2025年9月9日&#xff0c;WAVE SUMMIT 2025深度学习开发者大会在北京正式召开&#xff0c;由深度学习技术及应用国家工程研究中心主办&#xff0c;百度飞桨与文心大模型联合承办。大会上&#xff0c;百度正式发布了基…

开始 ComfyUI 的 AI 绘图之旅-Flux.1图生图(八)

文章标题一、Flux Kontext Dev1.关于 FLUX.1 Kontext Dev1.1 版本说明1.2 工作流说明1.3 模型下载2.Flux.1 Kontext Dev 工作流2.1 工作流及输入图片下载2.2 按步骤完成工作流的运行3.Flux Kontext 提示词技巧3.1 基础修改3.2 风格转换3.3 角色一致性3.4 文本编辑4.常见问题解决…

Java 生成微信小程序二维码

1. java 二维码生成工具类import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import com.pdatao.api.controller.file.FileController; import com.pdatao.api.error.CommunityException; import org.apache.commons.io.IOUtils; import org.springframe…

智慧健康触手可及:AI健康小屋——未来健康管理的全能守护者

AI健康小屋&#xff0c;这座融合人工智能、物联网与医疗科技的“健康堡垒”&#xff0c;正悄然重构健康管理生态。它以科技为引擎&#xff0c;将专业医疗资源下沉至社区、企业、家庭&#xff0c;通过智能检测、精准分析、个性化干预&#xff0c;实现从疾病治疗到主动预防的健康…

[工作表控件19] 验证规则实战:如何用正则表达式规范业务输入?

在企业应用中,数据准确性至关重要。工作表控件通过“验证规则”能力,支持在文本字段和附件字段中使用正则表达式(RegEx)进行格式校验。它能帮助开发者轻松实现邮箱、身份证号、车牌号、URL 等格式的高效验证,大幅提升数据质量与表单使用体验。 一、官方功能介绍与基础能力…

uniapp分包实现

关于分包优化的说明 在对应平台的配置下添加"optimization":{"subPackages":true}开启分包优化 目前只支持mp-weixin、mp-qq、mp-baidu、mp-toutiao、mp-kuaishou的分包优化 分包优化具体逻辑&#xff1a; 静态文件&#xff1a;分包下支持 static 等静态…

ctfshow_web14------(PHP+switch case 穿透+SQL注入+文件读取)

题目&#xff1a;解释&#xff1a;$c intval($_GET[c]); //获取整数值 6sleep($c);//延迟执行当前脚本若干秒。提示一下哈没有break会接着执行下面的但是像是44444&#xff0c;555555,sleep的时间太久我们用3进入here_1s_your_f1ag.php是一个查询页面&#xff0c;sql注入查看源…

linux x86_64中打包qt

下载安装 地址: Releases linuxdeploy/linuxdeploy mv linuxdeploy-x86_64.AppImage linuxdeployqtchmod 777 linuxdeployqtsudo mv linuxdeployqt /usr/local/bin/linuxdeployqt --version报错 Applmage默认依赖FUSE&#xff0c;需要挂载自身为虚拟文件系统才能运行, ubuntu…