三件套分工:回测、落地、基准
官方在 README 里用一张表说明三个外部项目的角色,并明确它们与本体形成「分析 + 回测 + 落地 + 校验」的闭环。三者的依赖级别不同,不能混着说。
| 项目 | 角色 | 依赖级别 | 提供什么 | 注意点 |
|---|---|---|---|---|
| wbt | 策略持仓权重回测引擎 | 硬依赖(顶层导入的回测类来自它) | 权重回测、绩效统计、回撤分析、回测报告生成 | 不要描述成本库自研的回测引擎 |
| wmr | 策略持仓权重管理系统 | 下游配套,非硬依赖 | 权重的持久化、版本管理与查询(支持两种数据库后端) | 它解决的是「权重存哪里」,不是回测 |
| talib-rs | 纯 Rust 的技术指标库 | 测试可选依赖,运行时不依赖 | 作为指标算子的数值一致性基准 | 只在数值校验测试里用到,不影响你的运行环境 |
| 本库自身 | 缠论核心算法与信号体系 | 不适用 | 结构识别、信号函数、事件与持仓、多级别联立 | 其余环节通过上述项目解耦协同 |
权重回测怎么用:四步
官方 README 给出了最简示例:准备带权重的数据,构造回测对象,读取统计结果。回测报告则用配套函数一键产出。
产出权重序列
用本库侧的信号、事件与持仓逻辑算出目标权重序列。预期得到一条按时间排列的权重数据,这也是回测的单一输入。注意权重是策略输出的目标状态,不是实际成交。
准备输入数据
把权重与行情按时间对齐整理成一张表;官方示例也提供了模拟数据生成函数用于跑通流程。预期数据无缺失值、时间刻度一致。
构造回测对象
用顶层导入的权重回测类构造对象,并按需设置手续费率等参数。预期得到可读取统计结果的对象。
读取统计并生成报告
读取统计结果查看汇总指标;需要可交互报告时用配套的报告生成函数输出 HTML 文件。预期得到一份可在浏览器打开的本地报告。
研究与优化入口
除了单次回测,官方还提供批量研究与参数优化的入口。注意其中一部分的位置在 1.0 的清理中迁移过。
| 入口 | 作用 | 导入位置 | 适用场景 | 注意点 |
|---|---|---|---|---|
| run_replay | 单品种回放 | 顶层导出 | 先在一个品种上跑通链路 | 入参包含信号序列与持仓序列 |
| run_research | 批量品种研究 | 顶层导出 | 多品种批量验证 | 批量规模直接决定耗时与数据量 |
| OpensOptimize | 开仓参数优化 | 工具模块的优化子模块 | 寻优开仓条件 | 该类在清理中从交易器模块迁到工具模块,旧路径在 1.0 会失败 |
| ExitsOptimize | 平仓参数优化 | 工具模块的优化子模块 | 寻优平仓条件 | 与开仓优化配对使用 |
| CzscOpenOptimStrategy / CzscExitOptimStrategy | 配套的策略封装 | 工具模块的优化子模块 | 把优化流程封装成策略形式 | 同上,注意导入路径变化 |
| generate_czsc_signals | 批量生成信号 | 交易器门面 | 不回放持仓只看信号 | 与回放是两个粒度 |
绩效口径与一处已删除的接口
官方在清理中删除了一批统计接口,并说明相关能力改由外部回测包提供。引用字段名时要注意版本。
| 能力 | 现状 | 说明 | 注意点 |
|---|---|---|---|
| 日度绩效 | 由顶层透传外部回测包提供 | 按日统计收益与风险指标 | 字段以外部包实现为准 |
| 回撤分析 | 由顶层透传外部回测包提供 | 提取回撤区间与幅度 | 回撤口径(按收盘价还是最低价)会影响结果,要记录 |
| 回测报告 | 由外部包的报告生成函数产出 | 输出可交互 HTML | 报告样式与字段随外部包版本变化 |
| 横截面信息系数 | 工具模块的分析子模块保留该接口 | 因子横截面相关性分析 | 这是清理后保留的分析能力之一 |
| 原统计子模块 | 已删除 | 原统计模块与其中若干函数在清理中被移除 | 旧教程里引用这些名字的代码会失败 |
| 互信息矩阵 | 已删除 | 该函数随依赖清理一并下线 | 官方说明如需该能力可自行安装相应依赖实现 |
一条完整的链路长什么样
把前面几页的内容串起来看,从数据到回测报告的完整路径是这样。
| 环节 | 由谁负责 | 产出 | 落到哪一页 |
|---|---|---|---|
| 取数与清洗 | 本库的数据连接器与数据质量工具 | 干净的 K 线序列 | 数据源接入 |
| 结构识别 | 本库的 Rust 核心 | 分型、笔、中枢 | 缠论结构 |
| 信号生成 | 本库的信号体系 | 可组合的信号状态 | 信号函数 |
| 事件与持仓 | 本库的交易器层 | 目标持仓与权重序列 | 多级别联立 |
| 权重回测 | 外部回测包 | 绩效统计与 HTML 报告 | 本页 |
| 权重落地(可选) | 外部权重管理包 | 持久化的权重版本 | 本页(生态段) |
| 可视化 | 本库的绘图模块与外部报告函数 | 自包含 HTML 或图表图片 | 可视化输出 |
常见问题
回测相关的归属与接口以官方 README、API 手册与外部包说明为准。
回测引擎是这套库自己写的吗?
不是。从顶层导入的权重回测类来自官方标注为硬依赖的外部回测包,本库的模拟数据模块也部分转发自它。本库自身专注缠论核心算法与信号-事件-交易体系,回测这一环通过外部包解耦协同。
wbt 和 wmr 有什么区别?
官方定位很清楚:前者负责离线回测权重,后者负责在实盘或投研环境下把权重持久化、做版本管理与查询。前者是硬依赖,后者是下游配套、非硬依赖。简单记:一个算,一个存。
回测需要准备什么数据?
需要一条按时间排列的目标权重序列,以及与之对齐的行情数据。权重由本库侧的信号、事件与持仓逻辑产出;官方示例还提供了模拟数据生成函数,可以先把流程跑通再接真实数据。
为什么有些统计函数找不到了?
因为 1.0 的清理删除了一批接口:原统计子模块及其若干函数被移除,互信息矩阵函数也随依赖清理下线,相关能力改由外部回测包提供。旧教程里引用这些名字的代码需要按新位置改写。
能不能直接用回测结果判断策略好坏?
不建议只看单一结果。回测是历史数据的统计,受参数、样本区间、手续费口径与数据质量影响很大。官方文档也没有给出任何绩效承诺。建议固定参数与数据口径做横向比较,并对样本外表现单独验证。
回测这块 EasyClaw 能替代吗?
不能等同。EasyClaw 本机有量化分析类技能,可以做策略回测、风险指标与组合优化这类研究性工作,适合在写代码前先验证想法;但本库的权重回测与它的信号、事件、持仓是同一套链路,口径一致。两者层级不同,也没有已证实的集成关系。