跳转至

与 AKShare、Tushare 的区别与配合

三者经常被放在一起比较,但它们解决的是不同环节的问题:

  • AKShare:开源 Python 取数库,调用一次,返回一张 DataFrame。
  • Tushare Pro:注册后凭 token 调用的数据 API 服务。
  • CNEquity:本地数据湖。它负责把数据采进来并持续维护,研究时从本地读。

所以问题不在于谁替代谁,而在于你的工作缺的是哪一环。下文只比较工作方式,不对另外两家的覆盖范围、价格或授权做静态评分。这些会随版本和条款变化,以对方当前的文档为准。

一张表看工作方式

AKShare Tushare Pro CNEquity
形态 Python 库,函数直接返回 DataFrame 远程 API 服务,Python SDK 调用 本地 Parquet 数据湖,附带 CLI、Python / SQL 查询、控制台和 MCP
账号与凭证 不需要 需要注册并使用 token,接口权限和频次与积分挂钩 基础采集不需要;少数补充来源需自备凭证
数据放在哪 不落盘,由调用方自己存 不落盘,由调用方自己存 落到本地,按数据集、分区和不可变版本管理
增量与续跑 调用方自己实现 调用方自己实现 内置水位、按批次续跑、失败范围重试
质量检查 调用方自己做 由服务方清洗 发布前和发布后各有审计,结果可在控制台和 cne check 查看
研究口径 取决于具体接口 取决于具体接口 原始价与复权因子分存;保留退市股票;财报区分严格 PIT 与事后重建
溯源 无行级记录 无行级记录 每行带 source、data_version、fetched_at
给 AI agent 用 需要自己封装 需要自己封装 cne mcp 提供只读工具,stdio 和 HTTP 都支持
覆盖面 很广:A 股之外还有港美股、基金、宏观、全球市场等 广,按积分开放 聚焦中国市场:A 股及其基本面、资金面、事件,加国内期货期权,共 55 个数据集

什么时候用哪个

只是偶尔取一张表,比如今天的龙虎榜、某个宏观指标的最新值,直接用 AKShare 或 Tushare 更轻。为这种需求建一个湖不划算。

同一份历史反复用于多个研究时,取数库的成本会转移到你自己身上:每次重新拉、自己存文件、自己处理中断和缺口、自己记住这份数据是哪天从哪个接口拉的。CNEquity 把这些做成了数据层的职责。

回测怕口径出错时,取数库通常给的是"今天的视角":今天还在交易的股票名单、事后重述过的财报、某种复权后的价格。CNEquity 把这些口径写进查询契约:

  • 历史股票池保留已退市标的,避免幸存者偏差。
  • 财报按 as_of 切片,pit_mode="strict" 只返回当时已经披露的数据,见 PIT 示例。
  • 原始价和复权因子分开存,复权方式在查询时选,见复权示例。

想让 AI 直接查历史数据时,agent 需要的是一份覆盖范围清楚、口径写在响应里的数据,而不是现场调用的网页接口。cne mcp 先报告湖里有什么,再回答问题,见 MCP 接入。

一起用

  • CNEquity 没覆盖的品种,比如港美股、公募基金净值、海外宏观,继续用 AKShare 或 Tushare 拉取,再用 DuckDB 和湖里的 Parquet 关联查询。
  • 已经有 Tushare 积分的数据,可以作为对照来源,抽查湖里同一字段是否一致。
  • 从 AKShare 迁移时,CNEquity 的代码格式是 600519.SH,日期是 date 类型,成交量单位见字段与单位。

CNEquity 的代价

  • 要占本地磁盘,也要有地方跑定时任务。 全市场近 3 年主干第一次初始化需要几个小时。
  • 公共来源会变。 可达性、历史深度和发布节奏都可能调整,项目会跟进,但不能提供服务方那样的 SLA。
  • 只有启用之后才开始积累。 快照类数据(如人气榜、个股资金流、一致预期)无法补回启用之前的历史,见数据集目录。
  • 仍处于 0.x 阶段。 升级前请看更新日志。

想先感受一下,用 cne init --profile demo 一分钟建一个只有 5 只股票的小湖,见快速开始。