CNEquity — 开源的中国市场金融数据基础设施
从 A 股开始,把分散的市场数据变成可复查的本地底座。 一条命令落地、持续日更,供 Python、DuckDB、Polars 和 AI agent 使用。
CLI:cne · 包名:cnequity · Python ≥ 3.10 · 只做数据基础设施(回测和信号留给下游)。
- 真数上手:
cne init --profile demo几分钟出真实日线(不是 mock);--research可验证复权口径 - 日更能挂着跑:水位 / 失败重试 / 质量审计
- 研究口径一次定好:复权 · universe · PIT;相对拉数库多编排,相对云端宽表可本地续跑
安装与一分钟体验
需要 Python 3.10+,且能访问 TDX 行情主机(大陆出口更稳)。
pip install cnequity
cne init --profile demo
海外或受限网络无法连接 TDX 时,可先运行 cne init --profile sample。它不访问网络,生成的合成行全部标记为 source=mock,仅用于验证安装、Parquet 落盘和查询链路。
写入 data/cnequity-demo/(几只流动性股票 × 约 30 个交易日),并打印样例表。
要验证复权口径,可运行 cne init --profile demo --research --symbols 600519.SH;它会额外读取 Sina 复权因子,
并打印约三年窗口的 raw / hfq 收益对照。
cne query --config configs/cnequity.demo.toml --sql "
SELECT symbol, trade_date, close, volume, source
FROM daily_bars
WHERE symbol = '600519.SH'
ORDER BY trade_date DESC
LIMIT 10
"
全量日更(仍不必 clone;在含配置的工作目录执行):
cne config create # → configs/cnequity.toml(data.root 写为绝对路径)
# 或显式指定:
# cne config create --data-root /data/cnequity --force
cne config validate --config configs/cnequity.toml
cne init --config configs/cnequity.toml
cne run daily --all-groups --config configs/cnequity.toml # 之后每个交易日
首次建湖的规模和耗时:
| 命令 | 范围 | 参考耗时 |
|---|---|---|
cne init |
沪深京全市场(5,000+ 只)最近 3 年,不是 400 只 | 通常约 1 小时 |
cne init --profile full |
全市场初始化主干;日线从 2016-01-01 起 | 通常约 3 小时 |
cne backfill trading_status |
补完约 5,500 只证券的历史 ST 证据 | 整轮约 10–11 小时;同范围 init 后通常还需 9–10 小时 |
init 中出现的 400 只限最慢的 Baostock 历史 ST 扫描,而且是 400 只证券、不是 400 条数据;日线等主干数据仍扫描全市场。该步骤会保存 checkpoint,cne backfill trading_status 自动取消上限;历史起止日和 universe 相同时才会接着同一 checkpoint 跑。要完成初始化主干和历史 ST,最好同一天依次运行 cne init --profile full、cne backfill trading_status;再用 cne run daily --all-groups 抓其余日更组。项目没有一条能拉取所有 42 个数据集全部历史的命令:分钟线/分笔默认关闭,快照型数据也没有可回补的完整历史。耗时还会受网络、上游限流和机器配置影响。
日更按调度组执行,一天 6 个:core、capital、signals、fundamentals、macro_risk、research。
--all-groups 按配置顺序串行跑完全部组(某组失败不影响后面的组)。
不带 --group / --all-groups 的 cne run daily 只跑 [[job.daily.waves]] 里的核心骨架(行情、日历、
交易状态、公司行为、复权),不含估值、财报、融资融券、龙虎榜、北向、指数成分等 —— 只跑那一条,
湖会停在 15/42 新鲜。想按组错开挂 cron 见运行手册。
有什么数据
数据集名即 load() 的第一个参数。字段见 schema,编排元数据见 catalog。
| 类别 | 数据集 |
|---|---|
| 基础参考 | instruments · trading_calendar · trading_status(停复牌 / ST) |
| 行情 | daily_bars(未复权) · index_bars · adj_factors · minute_bars / minute_bars_5m(可选日内) |
| 公司事件 | corporate_actions · announcement_index · earnings_disclosure_schedule |
| 基本面 / 估值 | financial_statement_items(PIT) · valuation_metrics · analyst_consensus |
| 资金面 | fund_flow · margin_trading · northbound_flows / northbound_holdings · dragon_tiger · block_trades · institutional_holdings |
| 结构 / 行业 | sector_members · index_constituents · industry_members |
| 宏观 | macro_indicators · market_breadth |
| 舆情 / 轮动 | sentiment_scores · hot_rank · sector_bars · sector_fund_flow · news_headlines |
| 风险 | share_unlock_schedule · regulatory_events |
读数据
from cnequity.query import load
bars = load("daily_bars", start="2020-01-01", end="2025-12-31", adjust="hfq")
roe = load("financial_statement_items", items=["roe"], as_of="2024-04-30")
无 extras —— pip install cnequity 即装齐所有数据源。
完整文档
详细 schema、runbook、定位对照与合规说明以 GitHub 为准:
代码 Apache-2.0。落盘行情 / 公告仍受上游条款约束——本包不附带、也不再分发数据湖。
Metadata
Release files for cnequity 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cnequity-0.11.0.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cnequity-0.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.7 MB
Release files / cnequity-0.11.0.tar.gz
| Download URL | cnequity-0.11.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a8e9a9ac32fdc9cea4b6de71d7c14c097cdedf09f723713df6d298259a6c35e
|
|
BLAKE2b-256 checksum How to use checksums |
3f693bb40e3eae309af97ea3f1b044003c9f95f916ebf0fb9d5b57fe3a47686c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / cnequity-0.11.0-py3-none-any.whl
| Download URL | cnequity-0.11.0-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a99de26bc0e6d31ade422f1dabb17e9e0a7574c02d362f4066ad67913f4690cb
|
|
BLAKE2b-256 checksum How to use checksums |
fa9b6f3e7a017989a940f70ab859365a0ddc849c0f8161c082f1580e679c8409
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log