czsc:基于 Rust 的缠中说禅(缠论)量化分析工具实战指南 金融科技【免费下载链接】czsc缠中说禅技术分析工具缠论股票期货Quant量化交易项目地址https://gitcode.com/gh_mirrors/cz/czsc点击查看免费下载导读本文围绕 czsc 开源仓库的 README.md 展开系统讲解其Rust Python 混合架构、安装构建流程、缠论核心分析分型/笔/中枢、信号-事件-交易体系、权重回测、多数据源接入与 HTML 可视化等实战能力。读完本文你将掌握 czsc 1.0.X 的完整使用链路从安装、K 线合成、信号生成到策略回放、批量研究与可视化报告输出并理解底层 Rust crate 的模块划分与调用关系。项目定位把缠论算法搬到 Rustczsc缠中说禅技术分析工具是一个面向 A 股、期货、数字货币等市场的中文量化分析框架核心算法源自缠中说禅博客的缠论理论。从1.0.X 版本开始缠论核心算法分型、笔、中枢等已全部迁移到 Rust 实现并通过 PyO3 扩展czsc._native暴露给 Python——这是理解整个项目的最关键前提。需要注意的是1.0.X 与历史 0.9.X 版本不兼容旧代码需按新 API 迁移。仓库顶部还提供了使用前必看的免责声明项目开源仅用于技术交流不构成投资建议。架构概览Rust Python 混合架构czsc 采用清晰的上下双层架构底层是 9 个 crate 组成的 Rust workspace上层是纯 Python 门面包。Rust workspace9 个 crate声明于 Cargo.tomlcrate职责czscfacade crate把整个 Rust workspace 公共 API 聚合 re-export 到一个名字下czsc-core缠论核心分析器FX / BI / ZS / CZSC 及全部对象类型czsc-utilsK 线合成器、频率数据、交易时间等工具czsc-ta纯 Rust 技术分析算子ema / sma / boll 等czsc-signals220 信号函数库按 20 余个模块组织czsc-trader交易引擎、信号编译、参数优化czsc-signal-macros#[signal_module]过程宏负责信号注册czsc-derive派生宏与错误链支持czsc-pythonPyO3 绑定入口产出czsc._nativecdylibPython 包结构czsc (Python 包) ├── czsc._native ← Rust 扩展PyO3缠论核心 │ ├── CZSC / FX / BI / ZS / RawBar / NewBar / BarGenerator │ ├── Freq / Mark / Direction / Signal / Event / Position / Operate │ ├── CzscTrader / CzscSignals / generate_czsc_signals │ ├── signals.* ← 220 信号函数 │ └── ta.* ← Rust TA 算子 ├── czsc.traders ← Python 门面汇聚 Rust 交易 API ├── czsc.utils ← 工具函数绘图/缓存/统计/交易工具 ├── czsc.connectors ← 数据源连接器天勤/Tushare/CCXT/本地缓存 ├── czsc.strategies ← 策略门面CzscStrategyBase/CzscJsonStrategy ├── czsc.fsa ← 飞书自动化工具 ├── czsc.mock ← 测试用模拟数据转发自 wbt └── czsc.envs ← 环境变量管理facade crate 的命名空间约定从源码结构看czsc这个 Rust crate 本身不做业务实现只做 re-export让终端用户写czsc 1.0即可拿到全部公共 API见 crates/czsc/src/lib.rs。其命名空间映射非常规整子模块来源czsc::analyzeczsc_core::analyzeczsc::objects::*czsc_core::objects的所有数据类型czsc::taczsc_ta::pure纯算子czsc::bar_generatorczsc_utils::bar_generatorczsc::signalsczsc_signalsczsc::traderczsc_trader的全部对外公共面顶层直接 re-export 了最常用的类型CZSC / RawBar / NewBar / Freq / FX / BI / ZS / Mark / Direction / Operate / Event / Position / Market / BarGenerator / is_trading_time。PyO3 绑定入口czsc._native 的诞生czsc._native由 crates/czsc-python/src/lib.rs 中的#[pymodule] fn _native聚合产出依次注册czsc_core、czsc_utils、czsc_ta的 Python 表面再通过inventory::collect!把czsc-signals贡献的信号描述符链入 cdylib最后挂上CzscTrader / CzscSignals / generate_czsc_signals以及run_research / run_replay / run_optimize等研究入口。打包侧由 pyproject.toml 的[tool.maturin]配置驱动module-name czsc._nativemanifest-path crates/czsc-python/Cargo.tomlpython-source .会把纯 Python 的czsc/目录与编译好的扩展一起打进 wheel。安装使用注意Python 版本必须 ≥ 3.10README 明确声明底层pyo3/pyo3-stub-gen0.22 同样要求 Python ≥ 3.10。方式一PyPI 预编译版本推荐pip install czsc -U方式二uv 安装推荐开发环境uv pip install czsc方式三从源码构建需要 Rust 工具链和 maturin# 安装 Rusthttps://rustup.rs/ # 安装 maturin pip install maturin # 克隆并构建 git clone https://github.com/waditu/czsc.git cd czsc maturin develop --releaseRust 构建环境约束当系统默认 Python 低于 3.10 时请通过环境变量显式指定否则cargo build/cargo test会在crates/czsc-python/build.rs提前 panic 并给出修复建议export PYO3_PYTHON$(which python3.12) # 或任意 3.10 的解释器用uv sync --extra dev走 UV 流程时UV 会自动选择项目声明的 Python不需要额外设置。此外pyproject.toml 还声明了 CLI 入口czsc czsc.cli:app安装后可直接在命令行使用czsc命令。快速开始五条实战链路1. 核心缠论分析自动识别分型、笔、中枢import czsc from czsc import CZSC, Freq, format_standard_kline from czsc.mock import generate_symbol_kines # 生成模拟 K 线数据 df generate_symbol_kines(000001, 30分钟, 20240101, 20240601) # 转换为 RawBar 对象列表 bars format_standard_kline(df, freqFreq.F30) # 创建 CZSC 分析对象自动识别分型、笔、中枢 czsc_obj CZSC(bars) print(f笔数量{len(czsc_obj.bi_list)}) print(f中枢数量{len(czsc_obj.zs_list)})这里format_standard_kline是 DataFrame → RawBar 列表的格式转换入口顶层定义于 czsc/_format_standard_kline.py其 Rust 侧实现在czsc_core::analyze::utils。CZSC对象即缠论核心分析器负责在内部完成 K 线包含处理、分型识别、笔划分与中枢识别。2. K 线合成与多级别分析from czsc import BarGenerator, Freq # 使用 BarGenerator 进行 K 线合成 bg BarGenerator(base_freq1分钟, freqs[5分钟, 30分钟, 日线]) for bar in raw_bars: bg.update(bar) # 获取各周期 K 线 bars_5m bg.bars[5分钟] bars_30m bg.bars[30分钟]BarGenerator由czsc_utils::bar_generator提供是由小周期合成大周期的核心工具配合多级别联立分析使用。3. 信号生成Rust 信号函数驱动from czsc import generate_czsc_signals, get_signals_config, get_signals_freqs # 配置信号序列使用 Rust 实现的信号函数 signals_seq [ czsc._native.signals.bar.bar_end_V230331, czsc._native.signals.cxt.cxt_bi_status_V230101, ] # 解析信号所需的周期配置 freqs get_signals_freqs(signals_seq) config get_signals_config(signals_seq) # 生成信号序列 results generate_czsc_signals(bars, signals_seq)4. 权重回测from czsc import WeightBacktest from czsc.mock import generate_klines_with_weights # 生成带权重的模拟数据 dfw generate_klines_with_weights(seed42) # 运行权重回测 wb WeightBacktest(dfw, fee_rate0.0002) print(wb.stats) # 回测统计汇总WeightBacktest来自硬依赖wbtWeight Back Test是策略持仓权重回测引擎。5. 策略研究单品种回放与批量研究from czsc import run_research, run_replay # 单品种回放 run_replay(bars, signals_seq, pos_seq, res_path./results/) # 批量品种研究 run_research(symbols, signals_seq, pos_seq, res_path./results/)6. 缠论可视化与回测报告# 缠论 K 线多周期联立自包含 HTML离线即可打开 from czsc.utils.plotting.lightweight import plot_czsc, plot_czsc_trader html plot_czsc(c, outputhtml) # 单周期 plot_czsc_trader(ct, outputhtml, pathtrader.html) # 多周期 # 回测 HTML 报告用 wbt.generate_backtest_report 一键产出 from wbt import generate_backtest_report generate_backtest_report(dfdfw, output_pathreport.html, weight_typets)核心 API 一览类型符号说明缠论对象CZSC,FX,BI,ZS缠论核心数据结构RustK线对象RawBar,NewBar,BarGeneratorK线与合成器Rust枚举Freq,Mark,Direction,Operate方向/频率等枚举Rust信号/事件Signal,Event,Position信号与持仓逻辑Rust分析工具check_fx,check_bi,remove_include分型/笔校验工具RustTA算子顶层别名czsc.ema,czsc.sma,czsc.rolling_rank,czsc.boll_positions,czsc.ultimate_smoother技术指标算子顶层别名Rust交易器CzscTrader,CzscSignals多级别交易决策Rust信号生成generate_czsc_signals批量信号生成Rust权重回测WeightBacktest权重序列回测来自 wbt策略CzscStrategyBase,CzscJsonStrategy策略封装Python模拟数据generate_symbol_kines测试用 K线数据来自 wbt格式转换format_standard_klineDataFrame → RawBar 列表这些符号在 czsc/init.py 中一次性静态 import不再使用 lazy loading顶层包导入后即可直接使用。数据源连接器czsc.connectors提供多个数据源适配器模块数据源说明tq_connector.py天勤TQSdk期货实时/历史行情ts_connector.pyTushareA股历史数据ccxt_connector.pyCCXT数字货币交易所local_data.py投研数据本地缓存CZSC 共享数据本地读取入口可视化统一 HTML 输出项目已不再依赖 streamlit可视化统一以 plotly lightweight-charts 输出 HTML模块功能czsc.utils.plotting.kline单周期 K 线 缠论结构plotly Figureczsc.utils.plotting.weight权重时序图plotly Figureczsc.utils.plotting.lightweightlightweight-charts 自包含 HTML多周期联立 信号叠加累计收益 / 回撤 / 月度热力图 / 综合回测概览改用wbt.generate_backtest_report或直接 plotly如需 streamlit 集成调用方自行pip install streamlit后用st.components.v1.html(plot_czsc(c, outputhtml))嵌入即可。源码深潜信号体系的注册与分发信号函数的模块化组织czsc-signalscrate见 crates/czsc-signals/src/lib.rs把信号函数按语义分成 20 余个子模块每个子模块用#[signal_module(category ...)]过程宏包裹。类别分两档K 线类klinebar/cxt/tas/vol/pressure/obv/cvolp/ntmdk/kcatr/clv/ang/coo/byi/jcc/xl/zdy交易类tradercxt_trader/pos/cat/zdy_trader每个#[signal(...)]函数在编译期被注册进全局inventory表最终以SignalDescriptor形式聚合到czsc._native。统一信号分发器为避免给每个信号手写 PyO3 wrappercrates/czsc-python/src/signals_dispatcher.rs 暴露了一个按名字查找的分发器call_signal(name, czsc, params)在给定CZSC实例上按名字调用 K 线类信号返回Signal列表list_signal_names(categoryNone)列出已注册信号名可按bar/cxt/tas/vol/pressure/obv/cvolp等前缀过滤get_signal_template(name)/get_signal_category(name)查询信号的参数模板与分类前缀。该分发器同时挂载到czsc._native顶层、czsc._native.signals及按类别划分的子模块czsc._native.signals.bar等因此既支持from czsc._native.signals import call_signal也支持from czsc._native.signals.bar import list_signal_names。依赖 trader 状态的信号则走CzscTrader.update_signals/CzscSignals.update_signals路径分发。信号-事件-交易逻辑体系项目定义了完整的信号-事件-交易量化交易逻辑体系事件通过signals_all/signals_any/signals_not实现信号的逻辑组合全部满足 / 任一满足 / 明确排除事件再聚合为开仓、平仓的Position持仓规则。Rust 侧Event与Position的序列化、MD5 校验与落盘逻辑可在 crates/czsc-python/src/trader/api.rs 中看到——位置文件以 JSON 形式写出包含opens/exits/interval/timeout/stop_loss/T0等字段用于策略的持久化与批量优化。生态依赖分析 回测 落地 校验闭环czsc 在权重回测、权重落地与 TA 算子一致性校验上依赖三个独立开源项目项目角色与 czsc 的关系wbt策略持仓权重回测引擎Weight Back Test硬依赖。提供WeightBacktest / daily_performance / top_drawdowns / generate_backtest_report等czsc.mock也转发自wbt.mock。czsc 顶层from czsc import WeightBacktest即来自此包。wmr策略持仓权重管理系统Weight ManagerDuckDB / ClickHouse 双后端下游配套非硬依赖。wbt 负责离线回测权重wmr 负责实盘 / 投研环境下权重的持久化、版本管理与查询。talib-rs纯 Rust 实现的 TA-Lib 替代库测试可选依赖。仅测试中用于对czsc._native.taEMA / SMA 等做数值 parity 校验确保 czsc 自研 TA 算子与 TA-Lib 行为一致运行时代码不依赖。简言之wbt 回测wmr 权重落地talib-rs TA 基准czsc 自身专注缠论核心算法Rust与信号-事件-交易体系其余环节通过这三个项目解耦协同。开发环境搭建# 使用 UV 管理依赖推荐 uv sync --extra dev # 构建 Rust 扩展开发模式 maturin develop # 运行测试 uv run pytest tests/ -v # 代码格式化 uv run ruff format czsc/ tests/ uv run ruff check czsc/ tests/仓库的测试覆盖相当完整Rust 侧每个模块czsc-core/czsc-utils/czsc-signals/czsc-trader都有对应单元测试Python 侧则有tests/unitRust/Python 核心一致性校验、tests/smoke、tests/integration与tests/cli等多层测试组织。关键环境变量变量说明默认值CZSC_MIN_BI_LEN最小笔长度6CZSC_MAX_BI_NUM最大笔数量50CZSC_VERBOSE是否输出详细日志False这三个环境变量的解析实现位于 czsc/envs.py约定环境变量名同时接受全大写与全小写写法大写优先函数参数显式传值时优先级最高。其中CZSC_MIN_BI_LEN指的是去包含后的 K 线根数int(float(...))的解析方式兼容6/6.0/6.5等多种输入CZSC_VERBOSE则通过一个真值集合1 / true / y / yes宽松判定布尔值。使用前必看1.0.X 版本核心算法已迁移到 Rust与 0.9.X 版本不兼容旧代码需按新 API 迁移免责声明项目开源仅用于技术交流发现 Bug 时建议先在仓库 issues 中报告。缠论思想附录不测而测的分类原则项目作者在 README 中收录了一段缠论核心方法论对理解 czsc 的设计哲学很有帮助真正的预测就是不测而测。所有预测的基础就是分类把所有可能的情况进行完全分类……对于预测分类的唯一正确原则就是不进行任何排除而是要严格分清每种情况的边界条件。任何的分类其实都等价于一个分段函数就是要把这分段函数的边界条件确定清楚。边界条件分段后就要确定一旦发生哪种情况就如何操作也就是把操作也同样给分段化了。然后把所有情况交给市场本身让市场自己去当下选择。这段确定分段边界、不预测只应对的思想正是 czsc 中信号条件→ 事件逻辑组合→ 交易应对动作体系的理论根基每个信号函数表达一类可复用的边界条件事件用signals_all / signals_any / signals_not精确刻画触发组合Position则把发生哪种情况就如何操作固化为可回测、可落盘的规则。赞分享金融科技【免费下载链接】czsc缠中说禅技术分析工具缠论股票期货Quant量化交易项目地址https://gitcode.com/gh_mirrors/cz/czsc点击查看免费下载相关推荐CZSC缠论量化框架完整指南从零掌握缠中说禅技术分析CZSC缠论量化框架完整指南从零掌握缠中说禅技术分析 想要在量化交易领域快速提升技术分析能力吗CZSC缠论量化框架正是你需要的终极解决方案这个基于缠中说禅金融科技【亲测免费】 czsc一款强大的缠中说禅技术分析工具czsc一款强大的缠中说禅技术分析工具 在当前的量化交易领域技术分析工具种类繁多但能够准确捕捉市场脉动提供高效决策支持的却为数不多。今天我要为大家介绍金融科技5个关键步骤掌握缠中说禅量化分析工具czsc是一款基于缠中说禅理论构建的Python量化分析工具它通过自动识别分型、笔等核心概念帮助投资者构建完整的信号 因子 事件 交易决策体系。无论你是量化金融科技上一篇终极指南如何快速解包网易游戏NPK文件获取宝贵资源下一篇DLSS Swapper终极指南轻松管理游戏DLSS版本释放显卡真正性能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考