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
Terminal First commands

# 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

From install to daily updates

Run these in the directory where the data will live long term. An existing configuration is reused as is.

  1. 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.

    pip install cnequity
    cne init
    Scope, disk and resuming
  2. 02

    Read the results

    The same published data can be read with Python or SQL.

    from cnequity.query import load
    load("daily_bars", symbols=["600519.SH"])
    Price adjustment, universes and PIT
  3. 03

    Keep it updated

    Run once a day. Market data updates on trading days; announcements and news still update on weekends.

    cne run daily
    cne check
    Scheduling, the dashboard and what to do after a failure

Before you use it

Four distinctions to keep straight

These four determine whether query results can go straight into research.

01

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 catalog
02

Fresh 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 check
03

Trading 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 jobs
04

Backfill 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 recipe

Next 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.