mrkeyoor.com_
Wed 11 Nov 22:25 UTC
Dataevaluationupdated 25 Oct 2026

czsc review

CZSC is a Python and Rust toolkit for Chan theory research. Its documented API covers candlestick structures, signals, events, positions, multi-timeframe analysis and HTML charts. The supplied README and public API reference are primarily Chinese. These are documented capabilities; our recorded run did not reach functional verification.

+33stars / 7d
Verdict

CZSC merits evaluation when Chan theory and Chinese documentation fit the research team. Our October 3, 2026 run at commit 701e480 timed out during installation after 900 seconds, leaving build, tests and workloads unverified. Start with a pinned environment and a small fixed dataset. Existing users should also review the changelog's unreleased 1.0.2 signal-key migration before upgrading.

We ran it

Lab card: what happened when we ran czscScreenshot of czsc (github.com/waditu/czsc)
Install✗ timed out · 900s
Build—
Repo626 files~69,317 lines of source · 3.9 MB · 4 CI workflows · tests dir

Answers from our run

Does czsc build from source?

The dependency install failed, and the project has no separate build step. We cloned commit 701e480 into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use czsc?

Teams that need an English tutorial path established by this review: the supplied first-party extracts are primarily Chinese, and their English coverage was not verified.

What are the alternatives to czsc?

vectorbt, Backtrader. CZSC merits evaluation when Chan theory and Chinese documentation fit the research team.

Setup2/5Under the visible evidence rubric, installation completion remains unverified: the October 3, 2026 run at commit 701e480 timed out after 900 seconds. No build or test result is recorded.
Docs3/5The supplied Chinese README and public API reference explain setup, architecture and research objects. Documentation completeness and an English tutorial path were not verified.
Community2/5Issues 343 and 346 show user reports and requests. These extracts do not establish maintainer response times, adoption or support capacity, so the evidence rubric limits this rating.
Maturity3/5Version 1.0.1 and detailed migration records are documented. The incompatible Rust transition and unreleased 1.0.2 signal-key migration require care; our run provides no runtime validation.

Who it’s for

Researchers who use Chan theory and can work with Chinese documentation.
Python developers who want documented objects such as CZSC, RawBar, FX, BI, ZS, Signal, Event and Position.
Teams prepared to validate their market data, strategy conditions and results in a pinned environment.
Contributors comfortable with Rust when changing core calculations or signal implementations.

Who it’s NOT for

Teams that need an English tutorial path established by this review: the supplied first-party extracts are primarily Chinese, and their English coverage was not verified.
Existing 0.9.X users expecting a compatible upgrade to 1.0.X.
Developers who require a Python implementation of the core: the changelog says the Python core and its fallback were removed.
Researchers who need a demonstrated installation, passing test suite or measured trading workload before evaluation. Our run establishes none of those outcomes.
Anyone treating a toolkit or a backtest as evidence of profitable live trading.

Setup reality

In our recorded run on October 3, 2026, at commit 701e480a545004f945bb1721e510ae610ad90c4c, the install step timed out after 900 seconds with exit code 124. The raw duration was 900,112 milliseconds. Its recorded output tail is empty, so the record does not establish the command used, dependency-download progress or the cause of the timeout.

There are no recorded build, test, audit, installed-binary or workload results. Dependency count and installed size are unknown. This run does not establish a successful installation or a product defect.

The recorded configuration was 3 CPUs, 8 GB of memory and image ghcr.io/astral-sh/uv:python3.12-bookworm. The image label does not verify the actual runtime version. The README requires Python 3.10 or newer, recommends precompiled PyPI installation and says source builds need Rust and maturin. Those instructions were not successfully verified in our run.

Does CZSC fit your research?

CZSC makes sense when your research already needs Chan theory structures such as fractals, strokes and central zones. Its README describes a Python-facing toolkit with Rust core calculations, signal composition, positions and multi-timeframe analysis. Our recorded installation attempt did not establish that these features worked in the sandbox.

The documented workflow connects raw bars to structural analysis, signals and positions. BarGenerator aggregates bars across frequencies; CzscSignals and CzscTrader coordinate multi-timeframe analysis. HTML visualization can display structures and signal points. The README describes more than 220 signal functions, but that is a project claim, not our count of tested functions.

What our recorded run establishes

Our run is dated October 3, 2026 and used commit 701e480a545004f945bb1721e510ae610ad90c4c. The install step timed out after 900 seconds with exit code 124; the raw record gives 900,112 milliseconds. The output tail is empty. It does not identify the command, show how far dependency downloads progressed or explain the timeout.

No build, test, audit, installed-binary check or trading workload result is recorded. Dependency count and installed size are unknown. There is no supported passing-test count, datetime assertion result or security finding from this run. An installation timeout alone does not show that CZSC is broken.

The recorded sandbox configuration was 3 CPUs, 8 GB of memory and image ghcr.io/astral-sh/uv:python3.12-bookworm. That image name does not establish the actual runtime version. Repository measurements recorded 626 files, approximately 69,317 source lines and 3.9 MB, with four CI workflows and a tests directory. The detector found no Dockerfile or Compose configuration. These observations describe the checkout, not successful execution or test coverage.

Installation instructions and migration costs

The README requires Python 3.10 or newer. It recommends a precompiled PyPI package and documents Rust plus maturin for source builds. A precompiled installation and a source build are different paths; our record does not establish completion of either.

For 1.0.X, the README says the Chan core moved to Rust and is exposed through czsc._native using PyO3. It describes nine Rust crates. The changelog says the old Python core has no fallback and lists removed namespaces and changed imports. Moving from 0.9.X therefore requires code migration, not just a package update.

Version 1.0.1 added structural-analysis functions and CZSC.zs_list, according to the changelog. Issue 343 separately reports the missing attribute in 1.0.0rc8. That report concerns a specific release candidate; it does not establish a failure in our run.

The supplied current changelog also labels 1.0.2 as unreleased and explicitly warns of 34 signal-output-key migrations without old-key aliases. It says registration names, calling parameters, public APIs and classification values remain unchanged, while old strategy conditions will not match the new output keys. Its instructions cover Event/Position conditions, persisted signals, filters and regenerated caches or backtest snapshots. It tells users with unmigrated strategies to remain pinned to 1.0.1. Do not infer compatibility from the patch version number.

That changelog describes changes after the measured commit. Its verification and repair claims are upstream reports, not results from our October 3 run.

Data and backtesting responsibilities

The README lists connectors for TQSdk futures data, Tushare Chinese-equity data, CCXT cryptocurrency exchanges and local caches. These documented adapters do not establish access to a provider or the suitability of its data for your strategy. Check provider requirements before planning an evaluation. Issue 346 requests AKShare support; the supplied connector list does not include it.

The README identifies wbt as the dependency supplying WeightBacktest and backtest reports. It describes wmr as a separate downstream system for storing and querying weights, rather than a hard dependency. These projects have complementary roles in the documented workflow.

Use mock data to understand input formats, then evaluate a small fixed market dataset. Check timestamp handling, corporate actions, transaction costs and leakage before interpreting returns. No market-data workload or profitability result was measured here.

Documentation and alternatives

The supplied README and public API reference contain substantial Chinese explanations of architecture, setup, types, connectors and visualization. The README also links generated documentation and community resources. These extracts do not establish the absence of all official English documentation, nor do they verify the completeness of the linked material.

For a different research workflow, vectorbt's README describes vectorized backtesting and large parameter grids. Backtrader's README describes feeds, broker simulation, order types, commissions and slippage. Those are reasons to investigate each alternative, not evidence that either is easier to install, faster or more reliable than CZSC.

How to read the ratings

These are editorial ratings for the intended research audience, not benchmark scores. The rubric is: 1 means a documented obstacle prevents the intended task; 2 means a central evaluation requirement remains unverified; 3 means useful documented support with material limits; 4 requires strong corroboration across the relevant scope; 5 requires unusually complete evidence. Missing evidence limits the rating and does not establish poor product quality.

Setup receives 2/5 because installation completion remains unverified after the timeout. Documentation receives 3/5 because the supplied Chinese README and API reference cover the main workflow, while completeness and an English tutorial path were not verified. Community receives 2/5 because the supplied issues demonstrate participation but do not establish response times or support capacity. Maturity receives 3/5 because versioned releases and migration records exist, while the Rust transition and unreleased signal-key changes require care and our run supplies no runtime validation.

For a new evaluation, first establish installation and import success in your target environment, then record the exact version and run a small reproducible analysis. For an existing strategy, inventory imports and signal conditions before upgrading, and compare outputs on frozen data.

Alternatives

ProjectWhat it isPick it when
vectorbtA Python trading-research toolkit whose README describes vectorized backtesting and parameter-grid analysis.Choose it for research organized around arrays, multiple assets and parameter sweeps. Its supplied README explicitly describes these workflows; we did not benchmark it against CZSC.
BacktraderA Python backtesting and live-trading platform with documented feeds, broker simulation and order types.Choose it when feeds, simulated orders and commission or slippage rules are central to your strategy evaluation. Its supplied README documents those components; current integration compatibility was not tested here.

What people are saying

  1. [github-trending] waditu/czsc

Sources

  1. CZSC README
  2. CZSC changelog
  3. CZSC public API reference
  4. CZSC 1.0.1 release
  5. Missing zs_list report on release candidate 8
  6. AKShare connector request

More data reviews

rerun · telegraf · rocksdb · redash · akshare · DB-GPT · the whole board →