yfinance、AKShare、OpenBB、EODHD APIs:量化项目的数据源怎么选
选型篇 — 四个常被放在一起比的数据源,其实是四种不同的东西
利益披露:本站与 EODHD APIs 有推广合作,通过本文链接注册,我们可能获得佣金,你不会因此多付钱。 另外三个是免费开源项目,与本站没有任何合作关系。
先说结论:这四个不是互相替代的关系。yfinance 和 AKShare 是免费的抓取库,读的是公开网站,不保证一直能用;OpenBB 是把你已有的数据源接到一起的转接层,自己不产生数据;EODHD APIs 是商业数据服务,免费源不够用了才需要花钱。只是个人研究美股的话,yfinance 通常就够了。
01 · 一张表看区别
| 工具 | 它是什么 | 覆盖 | 费用与许可 |
|---|---|---|---|
| yfinance | 免费库,读取 Yahoo 财经的公开接口 | Yahoo 财经上有的代码 | 免费(Apache-2.0);Yahoo 条款写明仅供个人使用 |
| AKShare | 免费库,聚合公开财经网站的数据 | 以中国市场和宏观数据为主 | 免费(MIT);项目声明仅用于学术研究 |
| OpenBB | 开源转接层,把多家数据商接到同一套接口 | 取决于你接入了哪些数据商 | 软件免费(Apache-2.0);部分数据商要另外付费 |
| EODHD APIs | 托管的商业数据接口 | 全球交易所的行情、基本面、新闻等 | 免费档每天 20 次调用;以上为付费套餐 |
许可与免费档限制于 2026-10-12 对照各项目仓库和官网核对。
02 · yfinance:最快跑通
几行 Python 就能把一只或多只股票的历史行情拉成 pandas 表格,还带 WebSocket 实时推送、行业板块信息和筛选器。想验证一个美股想法,它是阻力最小的路。
要注意的是它自己在 README 里写明的两点:Yahoo 的财经接口仅供个人使用,数据的使用权要看 Yahoo 的条款;它依赖的是自己控制不了的接口,Yahoo 一改它就可能失效。写在笔记本里做研究没问题,拿来跑每天必须成功的任务就有风险。
03 · AKShare:做 A 股的默认选择
把东方财富、新浪财经等公开网站的数据包成简单的 Python 函数,另有 AKTools 提供 HTTP 接口给其他语言用。做 A 股或中国宏观数据,先看它。本站有一篇AKShare 数据实操讲怎么自动落库。
它的声明同样直白:数据仅用于学术研究、仅供参考;部分接口可能因不可控因素被移除。也就是说,今天能用的接口,不保证下个月还在。
04 · OpenBB:是转接层,不是数据源
它的开源平台定位是“接一次,到处用”:把自有的、授权的、公开的数据源接进来,同一套连接同时供 Python、REST 接口、Excel 和 AI Agent(通过 MCP)使用,许可是 Apache 2.0。
它自己不产生数据。能拉到什么取决于你接了哪些数据商,其中不少需要各自的密钥或订阅。当你已经在同时用好几家数据源、想统一代码时,它才值得引入。分析师用的界面 OpenBB Workspace 是另一款企业产品。
05 · EODHD APIs:花钱买覆盖面和服务关系
它不是装在本地的库,而是一个托管服务:一个接口覆盖全球交易所的日线和日内行情、基本面、分红拆股、新闻等,支持 REST 和 WebSocket。和前两个抓取库最本质的区别是,你是一家以提供数据为业务的公司的客户。
免费档要看清楚:每天 20 次调用,分红拆股历史只有 1 年。够你验证代码能跑通,不够跑策略。付费套餐按需求划分(只要日线、要日内、要基本面、全都要),具体以官网当前定价为准。接入方法见 EODHD APIs 海外数据实操。
06 · 怎么选
- 个人研究美股:yfinance,先别花钱。
- 做 A 股或中国宏观数据:AKShare。
- 同时用好几家数据源,想统一代码:在现有数据源之上加 OpenBB。
- 每天必须跑成功的流水线、要覆盖多个市场、或者要商用:换付费数据源,比如 EODHD APIs。两个免费库自己都写明了仅供个人或学术使用。
比较稳妥的路径是:先用免费数据把想法验证出来,等稳定性或覆盖面成了瓶颈,再换付费源。把“下载数据”这一步和其余代码分开写,以后换数据源只需要改一小块。
教程不构成任何投资建议;任何数据源的数据都可能有错或延迟,用之前请自行核对。各项目的条款与额度以其官网为准。