Local research data lake
Daily-updated, traceable
research data
Market data, financial statements, corporate events and fund flow are written to Parquet files you own. Python, DuckDB, Polars and a read-only MCP server read the same data; a local dashboard lets you browse, run daily updates and back up.
- ResumableAfter an interruption, rerun the same command
- TraceableRows carry source, version and fetch time
- Stays on your machineOpen files, a dashboard and read-only MCP
# In the directory where the data will live long term
$pip install cnequity
$cne init
$cne check
# Read daily bars for one stock
>>>from cnequity.query import load
>>>load("daily_bars", symbols=["600519.SH"])
✓Rerun cne init after an interruption; batches that already succeeded are kept
Start here
By what you want to do
Each path leads to one document. The installed package contains only the program; data is written to your machine during initialization.
From install to daily updates
Run these in the directory where the data will live long term. An existing configuration is reused as is.
-
01
Initialize
Generates a configuration, downloads the last 3 years of core data for the whole Shanghai, Shenzhen and Beijing market, audits it and publishes.
Scope, disk and resumingpip install cnequity cne init -
02
Read the results
The same published data can be read with Python or SQL.
Price adjustment, universes and PITfrom cnequity.query import load load("daily_bars", symbols=["600519.SH"]) -
03
Keep it updated
Run once a day. Market data updates on trading days; announcements and news still update on weekends.
Scheduling, the dashboard and what to do after a failurecne run daily cne check
Before you use it
Four distinctions to keep straight
These four determine whether query results can go straight into research.
Registered is not collected
The current development tree registers 55 datasets, including optional and placeholder entries. Installing does not ship any market data.
See the dataset catalogFresh is not complete
fresh only means the dates on disk are recent enough. Historical gaps, ST, delisting evidence and PIT quality must be verified separately.
Verify with cne checkTrading days are not calendar days
The daily update groups run on trading days. Announcements and news run every day, including weekends. Scheduling once a day is enough.
Scheduled jobsBackfill is not strict PIT
Financial statements backfilled today cannot prove that a past rebalance date had already seen that version. Use pit_mode="strict" explicitly in research.
PIT recipeNext step
Get your first result with the quickstart
These docs track the current repository implementation; the stable PyPI release may lag behind. Run cne --version first, then check the changelog. Code is Apache-2.0; data is subject to each upstream source's terms, see License and sources. For direction and boundaries, see Product design. Report problems in Issues.