股票数据源怎么选,不能先问“哪家最好”,而要先问数据准备给谁用。普通看盘、Python 量化回测、盘中实时监控和 AI Agent 调用,实际上是四种不同任务:看盘重视信息呈现,回测重视历史一致性,实时系统重视延迟与授权,Agent 还要求工具语义和错误状态清楚。
如果只记住一个结论,可以这样选:
- 日常看盘:优先使用东方财富、同花顺、通达信或券商客户端;
- Python 学习和历史研究:从 Tushare、AkShare、Baostock 等结构化数据工具入手;
- 盘中监控和正式业务:评估券商行情、专业行情 API 或 Wind、Choice、iFinD 等商业服务;
- AI Agent:在合适的数据源之上增加函数工具或 MCP 层,不要让模型直接猜网页内容。
这不是一张数据源排名榜。数据覆盖再广,只要与任务不匹配,接入后仍然会返工。
一、为什么看盘软件不等于量化数据源
看盘软件首先解决的是“人怎样快速理解市场”。行情列表、分时图、K 线、新闻、公告、资金和自选股都经过界面组织,用户看到异常时可以自己切换页面核对。
量化程序面对的却是另一套问题:
- 股票代码和交易日是否统一;
- 停牌日、除权日和新股上市日怎样处理;
- 前复权、后复权和不复权是否明确;
- 成交量按股还是按手,成交额按元还是万元;
- 历史字段调整后,旧任务能否继续运行。
因此,一个看起来信息丰富的网页,不一定适合作为回测数据入口。页面字段可能变化,列表可能分页,数据也可能只为终端展示授权。量化研究更需要稳定的结构、可重复拉取和本地留存。
二、做历史回测,重点不是“接口多”,而是时间一致
历史研究常见的起点包括 Tushare、AkShare 和 Baostock,但三者适合的工作方式并不完全相同。
Tushare:适合长期维护结构化研究数据
Tushare 的行情、财务、指数和基础资料分类较系统,适合定时更新到自己的数据库。它更像研究数据工程的上游:程序按交易日补数据,本地再完成清洗、因子计算和回测。
选择前要逐个确认所需接口的权限、频率和更新时间。不能因为一个接口可用,就默认同一平台上的所有数据都有相同开放范围。
AkShare:适合快速探索公开数据
AkShare 覆盖的数据类型很多,安装 Python 包后就能验证不少研究想法。它很适合找数据、做原型和一次性分析。
由于部分接口会受上游公开页面影响,生产使用时应增加缓存、字段校验和异常监控。更稳妥的方式,是让 AkShare 负责采集,自己的数据库负责保存稳定结构。
Baostock:适合低门槛历史行情入门
Baostock 的历史 K 线和部分基础数据足以覆盖许多教学和入门回测任务。需求不复杂时,简单往往就是优势。
如果研究依赖盘口、题材、异动或更丰富的事件数据,则需要补充其他来源。
回测最容易漏掉的两个问题
第一个是未来数据。财务报告的报告期不等于市场实际可见日期,回测时必须使用公告日或可获得时间,不能把后来披露的信息提前放入历史。
第二个是样本偏差。只用当前仍上市的股票回测,会漏掉历史退市标的;只拿今天的指数成分回看过去,也会产生幸存者偏差。
所以,回测数据是否可信,常常取决于时间边界和样本处理,而不是接口返回了多少列。
三、做盘中实时监控,先问延迟和授权
“能返回最新价”和“能用于实时系统”并不是一回事。实时行情至少要区分:
- 收盘后更新;
- 分钟级或延时行情;
- 实时快照;
- 盘口与逐笔成交;
- 集合竞价和异动推送。
如果只是每天收盘后运行一次选股,没有必要为极低延迟付费。如果要做盘中预警,几分钟的不确定延迟就可能让结果失去意义。
实时任务还应检查高峰期限流、断线重连、批量能力、历史补全和商业使用授权。正式系统通常更适合评估券商行情、专业数据 API,以及 Wind、Choice、iFinD 等具备数据服务能力的商业产品,而不是把公开网页接口直接暴露给用户。
四、机构投研为什么通常选择专业数据服务
机构采购 Wind、Choice、iFinD 等产品,买的不只是几个行情字段,还包括跨市场覆盖、数据治理、研究工具、授权边界和服务支持。
这类方案适合团队研究、正式报告和内部业务系统,但采购成本与接入环境也更高。个人开发者做一个历史行情原型,通常没有必要一开始就采购完整终端;正式机构项目也不应依赖授权不清的数据去承担生产任务。
判断是否需要商业服务,可以看三个问题:
- 数据错误是否会直接影响客户或业务决策;
- 是否需要稳定的实时性、审计和售后支持;
- 是否要在团队、产品或商业系统中持续使用。
三个问题中有两个回答“是”,就不该只比较免费接口。
五、AI Agent 用股票数据,为什么还需要工具层
给 WorkBuddy、Codex、Claude、Cursor、豆包、扣子或自建 Agent 接股票数据时,难点不只在数据获取。模型还要知道什么时候调用哪个工具、日期参数怎么填,以及失败后能不能重试。
一个适合 Agent 的数据工具,至少应明确:
- 工具名称与用途;
- 股票代码、市场、日期、复权方式和单位;
- 请求日期与实际交易日期;
- 空数据、数据未更新、限流、无权限和系统故障的区别;
- 返回结果能否继续筛选、比较和生成报告。
MCP 是给 Agent 暴露工具的一种方式。以悟道 A股 MCP 为例,它更偏向把市场概览、K 线、涨停梯队、题材、资金和公告等研究任务整理成模型可发现、可调用的工具。它不是替代 Tushare、Wind 或券商行情,而是位于数据源和 Agent 之间的工具层。
实际工程中更常见的组合是:
历史研究数据 -> 本地数据库 盘中实时行情 -> 有延迟与授权保障的服务 业务计算结果 -> 统一字段和状态 Agent -> 通过函数工具或 MCP 调用这样做的好处是,底层数据源可以替换,Agent 的调用方式和业务语义仍然保持稳定。
六、用一张决策表完成第一轮选择
| 你的任务 | 首先评估 | 常见选择 | 最容易踩的坑 |
|---|---|---|---|
| 日常看盘 | 界面、资讯、自选股和交易联动 | 东方财富、同花顺、通达信、券商客户端 | 把终端展示页当成稳定 API |
| Python 学习 | 接入难度、历史 K 线和文档 | AkShare、Baostock、Tushare | 只测一只正常股票 |
| 量化回测 | 复权、时间一致性、退市样本 | Tushare、本地数据库、授权数据 | 未来数据和幸存者偏差 |
| 盘中监控 | 延迟、限流、重连和授权 | 券商行情、专业 API、商业服务 | 把延时行情当实时行情 |
| 机构投研 | 覆盖、治理、审计和服务 | Wind、Choice、iFinD | 只比较字段数量和价格 |
| AI Agent | 工具描述、日期语义和错误状态 | API + 函数工具,或 MCP 工具层 | 让模型直接解析网页并猜状态 |
七、数据源上线前,至少做这 8 项验收
不要只验证“接口返回 200”。建议固定一组样本,连续观察正常交易日与边界日期:
- 主板、创业板、科创板、北交所股票各选几只;
- 加入停牌、退市整理、新上市和名称变更样本;
- 对比开高低收、成交量和成交额的单位;
- 分别检查前复权、后复权和不复权;
- 周末查询时记录请求日期与实际交易日;
- 交易高峰期测试批量请求和限流;
- 主动制造无权限、空结果和参数错误;
- 记录一段时间内的成功率、延迟和字段变化。
测试通过后,再决定是否扩大股票池和调用频率。数据系统的问题往往不在正常样本,而在停牌、节假日、除权和服务异常这些边界状态。
最后总结
股票数据源怎么选,可以归纳为四句话:
看盘,选信息呈现与交易流程顺手的终端;回测,选历史结构稳定且时间口径清楚的数据;实时,选延迟、授权和服务有保障的行情;Agent,选能够明确描述工具、日期和错误状态的接入层。
不要寻找一个包办所有任务的“万能数据源”。先按用途拆分,再组合历史库、实时服务和 Agent 工具层,项目通常更稳定,后续替换成本也更低。
延伸阅读:股票数据源的场景对比与验收维度可参考 股票数据源哪个好?A股看盘、量化回测与 AI Agent 数据源对比 | 悟道数据
本文只讨论数据工程与研究工具,不构成投资建议。