国外API获取金融数据指南
1 国外 API
1.1 yfinance:python 库
yfinance 之所以能够免费提供服务,是因为它通过模拟浏览器访问 Yahoo Finance 来抓取数据,类似于 " 网页爬虫 "。Yahoo 的反爬机制会限制甚至封禁 IP,导致 429 错误。此外,yfinance 需要解析 JSON 端点并处理 HTML 页面,任何对 Yahoo Finance 网站的改动都可能影响 yfinance 的正常运行。
1 | pip install yfinance |
1.2 Finnhub
Finnhub 是专为开发者打造的金融数据 API,全球化的实时数据专家。涵盖美股及全球 60 多个市场,提供实时股价、外汇、加密货币、公司基本面、新闻和 AI 驱动的情感分析。免费版每分钟支持 60 次 API 调用,每秒最多 30 次,足以满足大多数个人项目和基础回测需求。免费版主要提供美股的实时和静态数据,访问 A 股、港股以及历史蜡烛图需要更高权限。此外,Finnhub 好像还支持 MCP。
- 注册:https://finnhub.io/register
- 文档:https://finnhub.io/docs/api,内容很全且精细
- python 库:https://github.com/Finnhub-Stock-API/finnhub-python,demo 里有的 api 有的需要权限
示例如下:
1 | pip install finnhub-python |
1 | import finnhub |
1.3 simfin
SimFin 是一个便捷的财务数据 Python 库,提供包括收入报表、资产负债表和现金流量表在内的多种财务数据。使用前需申请 API 密钥。
官网:https://www.simfin.com/
使用指南:https://github.com/SimFin/simfin-turtorials.git
1.4 Financial Modeling Prep(FMP)
通过 API 直接筛选股票,无需下载所有数据再用 pandas 处理,简化基本面分析。免费版每日可调用 API 250 次。
2 国内数据
2.1 adata 推荐
这是一个用于下载金融数据的 Python 库,目前已经获得了 2.6K 颗星,最近增长速度较快。专注股票行情数据,为了保证数据的高可用性,采用多数据源融合切换。在 GitHub 页面上有详细的使用介绍。
项目地址:https://github.com/1nchaos/adata
该工具的核心是通过解析网页实现数据抓取。adata 支持下载来源于东方财富、百度股市通、新浪财经、腾讯理财、同花顺等平台的数据。我试了两个接口:虽然 adata.stock.info.all_code(),adata.stock.market.get_market(stock_code='000001', k_type=1, start_date='2025-08-01'),数据量少时速度较快。财务数据和分红数据均能成功提取。
2.2 东方财富 API
免费的信息有限,但你可以从网页上获取更多内容,懂的都懂。
2.3 Wind API
该服务不支持网页版,只能安装应用程序使用,并且提供的信息有限免费。
2.4 tushare
第一年免费
见之前文档:Python量化交易之一_获取数据
2.5 akshare 推荐
API 丰富且稳定
见之前文档:Python量化交易之一_获取数据
3 框架工具
3.1 go-stock
Go-Stock 是一款前端采用 NaiveUI 和 Vue 框架,后端使用 Go 语言开发的 AI 股票分析工具,支持 A 股、港股、美股的数据分析,包含一些利用大模型进行数据分析的功能。目前 2.2K star,我对 go 语言不熟,也没细看。
- 地址:https://github.com/ArvinLovegood/go-stock
- 技术:可配置多种大模型,本地知识库使用 AnythingLLM
- 数据:来自 Tushare 等,可参考其信息获取部分
4 TradingAgents (推荐)
多智能开源项目,为中文用户打造的多智能体大语言模型金融交易决策框架。
5 数据打包下载
5.1 Kaggle 股票相关新闻数据下载
包含 2009 年至 2020 年关于 6000 只股票的 400 万篇英文文章,数据包含日期、标题、出处、相关股票等信息,登录 kaggle 即可下载,压缩包约 220M,解包后包含 3 个 csv 文件,每个都有上百 M。
- 下载地址:https://www.kaggle.com/datasets/miguelaenlle/massive-stock-news-analysis-db-for-nlpbacktests,
- 相关工具:实时数据抓取:https://github.com/miguelaenlle/Scraping-Tools-Benzinga(五年前更新)
5.2 天池比赛:预测基金申赎数据
包含 20 支基金,从 2024.4.8-2025.7.24 申赎数据
- 下载地址:https://github.com/AFAC-2025/AFAC2025_train_data
6 大模型和编程工具
6.1 在 vscode 中自动编码
还可以使用 vscode 中包含的 mcp 方式获取,例如:
6.2 用大模型 + 联网方式获取
以下为懒人数据提取方法(通过 deepseek 网页版的联网模式获取):
获取大规模真实数据难以通过大模型实现。在此,deepseek 返回的数值仅包含截至 2024 年 7 月的数据(模型是基于此前的数据训练的)。
6.3 总结
- 从 deepseek 获取交易的具体数据时幻觉严重,因为抓数据可能涉及爬虫问题,有些询问直接被拒绝。
- 不同的模型效果差异巨大。demo 中给出的是调用一个 1.5B 模型的方法,且不连网搜索,所以返回信息多数是错的。最后我使用的基金相关数据基本来自 deepseek 联网模式,基本是对的。
- 对于文本数据,直接给让大模型分析效果最好
- 对于数值型数据,让 Agent+MCP 自行分析数据格式和 API,自行写程序,抓取和转换效果更好。
- 在 vscode 中使用 copilot,国内信息使用的是 akshare 和 东方财富,可以把它们整合成自己的工具集
6.4 总结
- 从 deepseek 获取交易的具体数据时存在显著问题,特别是由于涉及爬虫相关问题,一些请求可能被直接拒绝。
- 使用不同模型效果差异明显。例程中不联网且调用 1.5B 模型,导致返回信息多有错误。最终,我选择的基金相关数据主要依赖于 deepseek 的联网模式,相对准确。
- 大模型更善于分析文本数据。
- 对于数值性数据,通过 Agent+MCP 分析数据格式和 查找 API,自行编程抓取和转换效果更佳。
- 在 vscode 中使用 copilot,写出的代码国内金融信息来源是:akshare 和东方财富,可将它们整合成自己的工具套件。
7 思考和建议
- 使用本地的数据库存储数据,不要每次都下载
- 许多时候只有在得到完整数据后才开始处理,结果花费了大量时间在数据收集和处理上
- 需要提取的数据主要包括:K 线数据、基本信息数据、新闻数据
- 无论用哪种方法,获取少量数据都还算顺利,但获取大量数据较为困难,新闻数据尤其困难
- 关于国内股票信息,建议询问 DeepSeek
- 推荐的工具组合是:adata/akshare+TradingAgents