CZSC / 权重回测

czsc 权重回测:入口来自 wbt,不是自研引擎

回测这块最容易产生误解:从顶层导入的权重回测类并不是这个库自己实现的,而是来自官方明确标注为硬依赖的外部包。搞清楚「谁负责回测、谁负责权重落地、谁负责基准校验」,才能正确理解结果从哪里来。这一页把生态分工与回测链路摊开。

回测:外部包 wbt权重落地:外部包 wmrTA 基准:talib-rs本库:缠论核心与信号
信号/事件/持仓本库侧
权重序列策略输出
WeightBacktest来自 wbt
回测 HTML 报告可交互
权重回测链路示意(依据官方 README 生态依赖表与权重回测示例,WeightBacktest 来自 wbt 包);示意非官方流程图,回测结果不构成收益预期。
Ecosystem

三件套分工:回测、落地、基准

官方在 README 里用一张表说明三个外部项目的角色,并明确它们与本体形成「分析 + 回测 + 落地 + 校验」的闭环。三者的依赖级别不同,不能混着说。

项目角色依赖级别提供什么注意点
wbt策略持仓权重回测引擎硬依赖(顶层导入的回测类来自它)权重回测、绩效统计、回撤分析、回测报告生成不要描述成本库自研的回测引擎
wmr策略持仓权重管理系统下游配套,非硬依赖权重的持久化、版本管理与查询(支持两种数据库后端)它解决的是「权重存哪里」,不是回测
talib-rs纯 Rust 的技术指标库测试可选依赖,运行时不依赖作为指标算子的数值一致性基准只在数值校验测试里用到,不影响你的运行环境
本库自身缠论核心算法与信号体系不适用结构识别、信号函数、事件与持仓、多级别联立其余环节通过上述项目解耦协同
一句话记法:官方把这三者的关系概括为回测、权重落地、技术指标基准。理解这条分工,就不会把回测结果的来源搞混。
Usage

权重回测怎么用:四步

官方 README 给出了最简示例:准备带权重的数据,构造回测对象,读取统计结果。回测报告则用配套函数一键产出。

  1. 产出权重序列

    用本库侧的信号、事件与持仓逻辑算出目标权重序列。预期得到一条按时间排列的权重数据,这也是回测的单一输入。注意权重是策略输出的目标状态,不是实际成交。

  2. 准备输入数据

    把权重与行情按时间对齐整理成一张表;官方示例也提供了模拟数据生成函数用于跑通流程。预期数据无缺失值、时间刻度一致。

  3. 构造回测对象

    用顶层导入的权重回测类构造对象,并按需设置手续费率等参数。预期得到可读取统计结果的对象。

  4. 读取统计并生成报告

    读取统计结果查看汇总指标;需要可交互报告时用配套的报告生成函数输出 HTML 文件。预期得到一份可在浏览器打开的本地报告。

参数要显式写:手续费率这类参数会直接改变结果,不要依赖默认值。跨策略比较时更要保证参数一致,否则比的是参数不是策略。
Research entries

研究与优化入口

除了单次回测,官方还提供批量研究与参数优化的入口。注意其中一部分的位置在 1.0 的清理中迁移过。

入口作用导入位置适用场景注意点
run_replay单品种回放顶层导出先在一个品种上跑通链路入参包含信号序列与持仓序列
run_research批量品种研究顶层导出多品种批量验证批量规模直接决定耗时与数据量
OpensOptimize开仓参数优化工具模块的优化子模块寻优开仓条件该类在清理中从交易器模块迁到工具模块,旧路径在 1.0 会失败
ExitsOptimize平仓参数优化工具模块的优化子模块寻优平仓条件与开仓优化配对使用
CzscOpenOptimStrategy / CzscExitOptimStrategy配套的策略封装工具模块的优化子模块把优化流程封装成策略形式同上,注意导入路径变化
generate_czsc_signals批量生成信号交易器门面不回放持仓只看信号与回放是两个粒度
Performance API

绩效口径与一处已删除的接口

官方在清理中删除了一批统计接口,并说明相关能力改由外部回测包提供。引用字段名时要注意版本。

能力现状说明注意点
日度绩效由顶层透传外部回测包提供按日统计收益与风险指标字段以外部包实现为准
回撤分析由顶层透传外部回测包提供提取回撤区间与幅度回撤口径(按收盘价还是最低价)会影响结果,要记录
回测报告由外部包的报告生成函数产出输出可交互 HTML报告样式与字段随外部包版本变化
横截面信息系数工具模块的分析子模块保留该接口因子横截面相关性分析这是清理后保留的分析能力之一
原统计子模块已删除原统计模块与其中若干函数在清理中被移除旧教程里引用这些名字的代码会失败
互信息矩阵已删除该函数随依赖清理一并下线官方说明如需该能力可自行安装相应依赖实现
风险提示:回测结果是历史数据的统计结果,不代表未来表现。本文不提供任何收益预期、胜率承诺或参数推荐;是否使用以及如何使用,请自行判断并以官方文档与外部回测包说明为准。
Chain

一条完整的链路长什么样

把前面几页的内容串起来看,从数据到回测报告的完整路径是这样。

环节由谁负责产出落到哪一页
取数与清洗本库的数据连接器与数据质量工具干净的 K 线序列数据源接入
结构识别本库的 Rust 核心分型、笔、中枢缠论结构
信号生成本库的信号体系可组合的信号状态信号函数
事件与持仓本库的交易器层目标持仓与权重序列多级别联立
权重回测外部回测包绩效统计与 HTML 报告本页
权重落地(可选)外部权重管理包持久化的权重版本本页(生态段)
可视化本库的绘图模块与外部报告函数自包含 HTML 或图表图片可视化输出
FAQ

常见问题

回测相关的归属与接口以官方 README、API 手册与外部包说明为准。

回测引擎是这套库自己写的吗?

不是。从顶层导入的权重回测类来自官方标注为硬依赖的外部回测包,本库的模拟数据模块也部分转发自它。本库自身专注缠论核心算法与信号-事件-交易体系,回测这一环通过外部包解耦协同。

wbt 和 wmr 有什么区别?

官方定位很清楚:前者负责离线回测权重,后者负责在实盘或投研环境下把权重持久化、做版本管理与查询。前者是硬依赖,后者是下游配套、非硬依赖。简单记:一个算,一个存。

回测需要准备什么数据?

需要一条按时间排列的目标权重序列,以及与之对齐的行情数据。权重由本库侧的信号、事件与持仓逻辑产出;官方示例还提供了模拟数据生成函数,可以先把流程跑通再接真实数据。

为什么有些统计函数找不到了?

因为 1.0 的清理删除了一批接口:原统计子模块及其若干函数被移除,互信息矩阵函数也随依赖清理下线,相关能力改由外部回测包提供。旧教程里引用这些名字的代码需要按新位置改写。

能不能直接用回测结果判断策略好坏?

不建议只看单一结果。回测是历史数据的统计,受参数、样本区间、手续费口径与数据质量影响很大。官方文档也没有给出任何绩效承诺。建议固定参数与数据口径做横向比较,并对样本外表现单独验证。

回测这块 EasyClaw 能替代吗?

不能等同。EasyClaw 本机有量化分析类技能,可以做策略回测、风险指标与组合优化这类研究性工作,适合在写代码前先验证想法;但本库的权重回测与它的信号、事件、持仓是同一套链路,口径一致。两者层级不同,也没有已证实的集成关系。

回测完,把结构和信号画出来

官方提供三种可视化产出,从单周期 K 线到多周期联立的自包含 HTML。下一页说明各自适合什么场景。