CNEquity

作者 rootSunc已验证

中国股票数据基础设施,覆盖行情、研报、资金面、筹码、公告、龙虎榜、ETF/期权、舆情互动、基本面、行业板块、宏观与风险事件等核心数据。42+A股数据集,日更、自托管、MCP 原生,零注册、零 API Token

147
Stars
29
Forks
Python
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/rootSunc/CNEquity

快速入门

使用 CNEquity 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

CNEquity · 中国市场金融数据湖

把多源的 A 股行情、基本面、事件与宏观数据,落到一份可日更、可回查的本地 Parquet 数据湖。

CI PyPI version Python 3.10+ License: Apache 2.0 Docs site English

CNEquity 从 A 股开始,解决的是一件很具体的事:把分散在不同来源、不同口径、不同更新节奏的数据,长期保存在自己的机器或服务器上,并且能说明每一行数据从哪里来、什么时候采到、截至哪一天可用。

项目开源、免注册、自托管。数据以开放格式落盘,可以用 Python、DuckDB、Polars 或其它工具读取;采集和查询彼此分开,数据湖本身不依赖某个客户端或模型。

为什么要一个数据湖

做 A 股历史研究时,发出一次请求通常不是最费事的部分。更难的是把下面几件事持续做好:

  • 多个来源的字段和代码体系不一致,需要反复清洗、对齐和补缺;
  • 每次研究都重新拉取数据,结果难以复现,也容易被上游接口的变化影响;
  • 只用今天仍然上市的股票回看历史,会把退市股排除在样本之外;
  • 财报、公告和估值数据有各自的发布日期,不能只按报告期判断“当时是否已经知道”;
  • 复权、历史成分、交易状态等口径如果由每个研究脚本自己处理,很容易悄悄分叉。

幸存者偏差是一个直观例子。下面的实验使用同一个等权买入持有策略和同一段时间,唯一差别是历史股票池里是否保留后来退市的股票。只用今天仍在交易的股票时,2016–2021 年的收益从 5.9% 变成了 12.0%

使用当前股票名单会造成幸存者偏差

那些股票不是收益为零,而是根本没有进入计算。CNEquity 因此把退市股、复权因子、历史成分和 PIT(按当时可获得的信息取数)放在数据层里处理,而不是交给每个下游脚本临时拼接。

数据范围

项目当前的主线是中国市场的 A 股研究,不追求把所有金融数据都收进来。已注册数据集覆盖:

  • 证券主数据、交易日历和交易状态;
  • 个股、指数、行业和板块的日线、分钟线、分笔与复权因子;
  • 公司行为、公告索引和业绩披露预约;
  • 财报、估值、股本、股东和分析师一致预期;
  • 北向、融资融券、龙虎榜、大宗交易和资金流;
  • 指数成分、行业分类、宏观指标和市场宽度;
  • 新闻、快讯、情绪、轮动,以及解禁和监管事件。

当前注册表包含 42 个数据集:39 个 curated + 3 个 derived,按研究用途分为 L0–L8 九类。

层次研究用途代表数据集
L0基础参考证券主数据、交易日历、交易状态
L1行情日线、指数、复权因子、分钟线、分笔、退市事件
L2公司事件公司行为、公告索引、预约披露
L3基本面财报、估值、股本、股东、一致预期
L4资金面北向、融资融券、龙虎榜、大宗交易、资金流
L5结构行业指数成分、行业与板块成分
L6宏观宏观指标、市场宽度
L7舆情与轮动新闻、情绪、人气、板块行情与资金流
L8风险合规解禁日程、监管事件

所有 curated 行都带有 sourcedata_versionfetched_at,可以追到来源和采集批次。分钟线、5 分钟线和分笔默认关闭,按需启用;部分只能获取当日快照的数据集不会被伪造成历史序列。

完整字段、主键、历史模式和源端限制见数据集目录

展开查看 42 个数据集及主备数据源
数据集说明主源备源历史日更组
L0 · 基础参考
instruments证券主数据tdx_protocolbaostock可回补core
trading_calendar交易日历tdx_protocolexchange可回补core
trading_status交易状态(停复牌/ST)tdx_protocoleastmoney可回补core
L1 · 行情
adj_factors复权因子sina可回补
commodity_bars商品期货主连sinaeastmoney可回补macro_risk
daily_bars日线tdx_protocoleastmoney可回补core
delisting_events退市事件derived可回补
index_bars指数日线tdx_protocoleastmoney可回补core
minute_bars1 分钟线tdx_protocol可回补intraday
minute_bars_5m5 分钟线tdx_protocol可回补intraday
trade_ticks分笔快照tdx_protocol可回补ticks
L2 · 公司事件
announcement_index公告索引cninfo可回补capital
corporate_actions公司行为eastmoneytdx_protocol可回补(回填走 tdx_protocolcore
earnings_disclosure_schedule业绩披露预约eastmoney可回补fundamentals
L3 · 基本面
analyst_consensus分析师一致预期eastmoney仅当日research
financial_statement_items财务报表科目eastmoney可回补fundamentals
share_structure股本结构eastmoney可回补fundamentals
shareholder_counts股东户数eastmoney可回补fundamentals
top_holders前十大股东 / 流通股东eastmoney可回补按需回填
valuation_metrics估值指标eastmoney回填 baostockcapital
L4 · 资金面
block_trades大宗交易eastmoney可回补signals
dragon_tiger龙虎榜eastmoney可回补signals
fund_flow个股资金流eastmoney仅当日capital
institutional_holdings机构持股eastmoney可回补research
margin_trading融资融券eastmoney可回补capital
northbound_flows北向资金流向eastmoney可回补capital
northbound_holdings北向持股eastmoney可回补capital
L5 · 结构行业
index_constituents指数成分eastmoney回填 cnifundamentals
industry_index行业指数derived可回补
industry_members行业分类成分eastmoney回填 swfundamentals
sector_members板块成分eastmoney仅当日capital
L6 · 宏观
macro_indicators宏观指标eastmoneypboc可回补macro_risk
market_breadth市场宽度derived可回补macro_risk
L7 · 舆情 / 轮动
economic_calendar经济日历eastmoney仅当日
flash_news_wire7×24 快讯eastmoney仅当日research
hot_rank人气榜eastmoney仅当日research
news_headlines新闻标题eastmoney仅当日research
sector_bars板块行情ths回填 thsresearch
sector_fund_flow板块资金流eastmoney仅当日research
sentiment_scores情绪评分derivedeastmoney可回补research
L8 · 风险合规
regulatory_events监管事件cninfo可回补macro_risk
share_unlock_schedule解禁日程eastmoney可回补macro_risk

○ 表示可选数据集,空表不算异常。逐项说明见数据集目录,源端限制见数据源说明

适合什么场景

CNEquity 适合需要反复使用同一份历史数据的研究和数据工作:

  • 多年行情回测,不想每次重新拉取、清洗和拼接复权;
  • 需要把退市股、历史成分股和 PIT 纳入研究;
  • 希望数据保存在本地或自己的服务器上,格式开放且来源可追溯;
  • 想让 Python、DuckDB、Polars 和 AI agent 读取同一份数据。

如果只是查一只股票的最新价格,直接调用数据接口通常更轻。这个项目更适合需要持续积累、反复查询和复查结果的场景。

30 秒试玩

需要 Python 3.10+,无需 token、积分或账号:

pip install cnequity
cne demo

cne demo 默认拉取 5 只股票最近约 30 个交易日的真实数据,写入独立目录 data/cnequity-demo/,不会覆盖正式数据湖。需要能访问 TDX 行情主机;如果连接失败,可以先检查:

cne sources --only tdx_protocol

cne demo 分阶段采集真实日线并打印结果

然后在 Python 中读取:

from cnequity.query import load

bars = load("daily_bars", data_root="data/cnequity-demo")
print(bars.tail())

想直接比较原始价格与后复权口径:

cne demo --research --symbols 600519.SH

5 分钟开始建湖

pip install cnequity
cne config init            # 生成 configs/cnequity.toml
cne init                   # 全市场标的,默认回溯最近 3 年
cne run daily              # 之后每个交易日执行这一条

默认策略是“浅而不窄”:历史先取最近 3 年,但全市场标的一个不缺。这样不会因为只保留今天仍上市的股票,提前把幸存者偏差写进数据湖。每个数据集的真实起点会记录在 coverage_start

需要更长历史时可以一次拉满,也可以以后补深:

cne init --profile full

# 或对单个数据集补历史
cne backfill daily_bars --start 2016-01-01 --end <coverage_start>

默认初始化通常是小时级、GB 级,实际取决于网络、数据源状态和机器配置。详细安装说明见快速开始安装指南

能回答哪些问题

研究问题推荐入口
茅台过去五年复权后涨了多少load("daily_bars", symbols=[...], adjust="hfq")
茅台 PE 在自身五年历史中的分位数valuation_metrics + 窗口分位
2018 年财报因子的 IC,且不使用未来数据load("financial_statement_items", as_of="2018-04-30")
退市股退市前 60 天的价格形态delisting_events + daily_bars
三年前的沪深 300 成分或申万行业index_constituents · industry_members
今天的龙虎榜、未来解禁和板块资金流dragon_tiger · share_unlock_schedule · sector_fund_flow

常用查询:

from cnequity.query import load

bars = load(
    "daily_bars",
    start="2020-01-01",
    end="2025-12-31",
    symbols=["600519.SH"],
    adjust="hfq",
)

roe = load(
    "financial_statement_items",
    items=["roe"],
    as_of="2024-04-30",
)

架构

CNEquity 架构图

公开数据源 → 适配与编排 → 本地 Parquet 湖 → 质量、查询与只读服务

架构上的边界比较简单:适配器负责把多源数据取回来;编排层负责 DAG、批次和重试;数据先进入 staging,再压实为 curated 并计算 derived;质量层持续审计;查询和服务层只读消费。展开见架构说明

日常使用与运维

cne run daily                 # 执行当天全部日更分组
cne status                    # 查看 FRESH / STALE / EMPTY
cne serve                     # 打开 http://127.0.0.1:8787
cne sources                   # 检查上游数据源健康度
cne retry --run-id <run_id>   # 只重试失败批次

单个 step 失败时,系统会记录 failed batch,其他步骤继续落盘;重试不会把整条任务重新跑一遍。浏览器控制台可以查看覆盖、新鲜度、容量、跑批和质量结果。

挂入 crontab 即可自动日更:

# 交易日收盘后执行;非交易日会自动跳过
30 16 * * 1-5  cd /path/to/lake && cne run daily >> logs/daily.log 2>&1

更多运维方式见运行手册数据源健康检查故障排查

接给 AI agent

cne mcp 以只读方式把本地湖提供给模型;采集、重试和清理仍由 CLI 完成。

cne mcp --config "$(pwd)/configs/cnequity.toml"

把上面的命令作为 MCP server 注册到任意兼容客户端即可。大多数客户端使用等价的配置(客户端名称和界面可能不同):

{
  "mcpServers": {
    "cnequity": {
      "command": "cne",
      "args": ["mcp", "--config", "/abs/path/to/cnequity.toml"]
    }
  }
}

--config 必须使用绝对路径。接好后可以直接问:

  • “茅台过去五年复权后涨了多少?”
  • “茅台当前 PE 在自己五年历史里处于什么分位?”
  • “计算 2018 年财报因子的 IC,不要使用未来数据。”
  • “过去三年退市的股票,退市前 60 天有什么共同形态?”

还没有正式湖时,可以先运行 cne demo,再使用生成的 demo 配置。完整说明见MCP 参考

与 AkShare、Tushare、Qlib 有什么不同

AkShare 和其它取数工具解决“怎样调用数据源”,Tushare 提供云端数据服务,Qlib / vn.py 更偏研究或交易平台。CNEquity 做的是中间的数据基础设施:把多源数据落成可日更、可复查、可溯源的本地 Parquet 湖。

你在意的能力CNEquity常规取数工具云端数据服务研究 / 交易平台
本地可续跑的数据底座内置通常自建通常不提供依平台而定
历史结果能否复查行级溯源缺少统一契约依平台字段依模块而定
复权 / universe / PIT统一在 load()自己拼接自己拼接使用平台口径
单一数据源故障按批失败,可单独重试调用方处理平台处理依模块而定

更完整的逐项比较见项目对比

常见问题

初始化要多久、占多少磁盘?

默认配置拉取全市场最近 3 年,通常约 1 小时、GB 级;--profile full 从 2016 年开始,实测约 3 倍时间。网络环境与数据源状态会影响结果。

需要从 2001 年开始的日线:

cne init --since 2001-01-01
# 或事后补深
cne backfill daily_bars --start 2001-01-01
为什么落盘只存后复权因子?

前复权价格会随“今天”变化。落盘只存 hfq,qfq 在 load(adjust="qfq") 时计算,详见 ADR-0004

东财返回 403 或连接重置怎么办?

先运行 cne sources --only eastmoney_push2,eastmoney_push2his。日更主路径行情走 TDX,不受东财行情接口风控影响。

为什么分钟线没有更早历史?

源端当前只保留约 95 个交易日的 1 分钟线、491 个交易日的 5 分钟线。这是上游保留期,不是数据湖尚未完成的回填任务。

数据可以商用或再分发吗?

项目代码使用 Apache-2.0;落盘的行情、公告等数据不随代码授权。使用与分发前请阅读法律与数据源说明

文档与项目状态

这是个人维护的开源项目,issue 和 PR 都欢迎。用于论文或研究报告时,可引用仓库中的 CITATION.cff,并记录版本、覆盖范围及复权 / PIT 口径。

代码使用 Apache-2.0。仓库不附带数据湖,也不授予上游数据的再分发权。


如果 CNEquity 帮你省下了搭建数据底座的时间,欢迎点个 ⭐,让更多做 A 股研究的人看到它。

常见问题

What is CNEquity?

CNEquity is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by rootSunc. 中国股票数据基础设施,覆盖行情、研报、资金面、筹码、公告、龙虎榜、ETF/期权、舆情互动、基本面、行业板块、宏观与风险事件等核心数据。42+A股数据集,日更、自托管、MCP 原生,零注册、零 API Token. It has 147 GitHub stars.

Is CNEquity safe to use?

Yes. CNEquity passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install CNEquity?

Clone the repository with "git clone https://github.com/rootSunc/CNEquity" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is CNEquity written in?

CNEquity is primarily written in Python. It is open-source under rootSunc on GitHub, so you can review or fork the full source.

Are there alternatives to CNEquity?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh CNEquity against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI 智能体
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情