OpenBB
把公开、授权和自有金融数据接到同一套 Python / HTTP 接口的数据平台。
为什么值得学
适合学习数据服务如何统一请求、供应商和结果格式,连接量化研究与应用开发。
数据与控制流程
- 1用户查询
- 2路由选取命令
- 3Fetcher 获取并校验
- 4OBBject 包装结果
- 5Python 或 HTTP 消费
此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。
架构拆解 · 4 个核心模块
每个入口均已核对,点击可阅读源码供应商 Fetcher
把请求参数转换、外部数据提取和结果转换分开,让不同供应商实现同一个契约。
- 输入
- 查询参数与凭据
- 输出
- 标准化数据模型
openbb_platform/core/openbb_core/provider/abstract/fetcher.py命令路由
Router 把金融领域命令组织成可发现的接口,并注册参数与返回类型。
- 输入
- 领域命令与函数签名
- 输出
- 可调用命令树
openbb_platform/core/openbb_core/app/router.py结果容器
OBBject 包装结果及元数据,并提供面向分析环境的转换能力。
- 输入
- 供应商返回的结构化结果
- 输出
- 统一结果对象 / DataFrame
openbb_platform/core/openbb_core/app/model/obbject.pyAPI 服务
FastAPI 装配路由、认证与生命周期,使同一平台通过 HTTP 提供数据。
- 输入
- HTTP 请求与平台配置
- 输出
- API 响应
openbb_platform/core/openbb_core/api/rest_api.py建议阅读顺序
- 从 README 的 obb.equity.price.historical 示例理解调用入口
- 读 Fetcher 的三个转换阶段,找出供应商差异的隔离位置
- 再读 Router 与 OBBject,画出一次请求的输入和输出
- 最后看 REST API 怎样装配平台
动手做一次
用一份本地行情样例实现最小数据适配器,并设计可替换的数据供应商接口。
完成后,检查这些证据
- 两个数据源输出相同字段、时区和单位
- 缺字段或空数据有明确报错
- 保存原始响应和标准化结果,能追溯转换过程
适用边界与版本说明
开源仓库主要提供数据平台,OpenBB Workspace 属于另一个产品层;不同供应商的数据权限与凭据要求不相同。
Star 快照:74,469 · 核验日期:2026-10-20 · GitHub 归档标记:未归档
核验默认分支:develop · 源码固定提交:78020ee4b864 ↗
来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。