mirror of
https://github.com/shy3130/tick-stock-panel.git
synced 2026-11-02 10:26:13 +00:00
feat(backtest): P2a-2 共享矩阵编码 — 参数无关半边一次编码, 调参循环 3.14×
build_market_matrix 内部的参数无关成本 (build_market_data_matrix 行情 矩阵 + _encode_axes 轴 + _signal_code_matrix 信号码, 占剩余每组成本 ~55%) 拆出复用: - matrix.py 新增 PanelMatrixEncoding / encode_panel_matrix / build_market_matrix_from_encoding; build_market_matrix 改为两者的组合 (单一实现, 无平行路径)。score 场随参数变化 (universe 置空), 不进共享 编码 — 逐组散布进信号矩阵, 非有限值→nan 语义与 _float_matrix 一致。 - PreparedPanelBacktest.sim_encoding: prepare 期构建 sim 窗口编码 (失败 回退逐组建矩阵, 只损失性能); run 侧列序 (忽略 score 列) 与行数比对 通过才走共享编码, 否则整建 — 回退是优化放弃, 不是正确性闸门。 - 基准 (同进程交错 A/B, 15 组): 试算 4.24×, 含 prepare 3.14× (P2a 单 面板共享为 1.8×); stats 剔除计时字段后完全一致。对应 P2 验收 ≥2×。 - 回归: tests/backtest 410 全过 (含新增矩阵级逐元素等价测试); ruff 零新增 (与 HEAD 逐条相同)。 Signed-off-by: shy3130 <shy3130@qq.com>
This commit is contained in:
@@ -50,7 +50,7 @@
|
||||
| P0 基准 | `backend/scripts/bench_feature_resolution.py`; 依赖解析宽度/耗时基线 | 基线 JSON 落 `data/benchmarks/`(本地不入库) | ✅ |
|
||||
| P1a 依赖推导 | filter_history AST 列推导(`app/strategy/feature_deps.py`), 引擎加载接入 | 无声明且可证明的策略不再全量兜底 | ✅ |
|
||||
| P1b 契约统一 | signal/factor 统一 schema + 依赖提取公共化 | 新增 kind 复用同一校验/注册路径 | ✅ |
|
||||
| P2 L2 物化 | 按需物化 + 内容寻址缓存 + 失效传播; 指标成为一等定义 | 调参循环提速 ≥2×; 新增 10 个自定义指标热路径耗时不变 | ⬜ |
|
||||
| P2 L2 物化 | 按需物化 + 内容寻址缓存 + 失效传播; 指标成为一等定义 | 调参循环提速 ≥2×; 新增 10 个自定义指标热路径耗时不变 | 🔶 P2a 完成 |
|
||||
| P3 表达式级 Python | T2 中间层 (ctx 追踪依赖+安全) | SKDJ 类口径零 DSL 可表达 | ⬜ |
|
||||
| P4 体验与分发 | 统一选择器/自动表单/导入冒烟; 备份管线复用为扩展包 | 新增信号导入到可回测 ≤2 分钟 | ⬜ |
|
||||
| 条件: 沙箱 | T3 子进程执行 | 触发条件: 首次真实导入第三方扩展 | ⬜ |
|
||||
@@ -67,6 +67,21 @@
|
||||
|
||||
数据加载 IO 随列宽近似线性, 宽度比即回测数据准备阶段的近似提速上界。
|
||||
|
||||
|
||||
## P2a 实测(2026-10-26, 本机, consolidation_limit_pullback, 15 组参数网格)
|
||||
|
||||
共享面板 + 共享矩阵编码 (prepare-once) vs 逐组独立准备, 同进程交错 A/B:
|
||||
|
||||
| 臂 | 试算累计 | 含 prepare |
|
||||
|---|---|---|
|
||||
| 逐组独立 (基线) | 19.47s | 19.47s |
|
||||
| P2a 面板共享 | ~9.4s (2.1×) | ~11.0s (1.8×) |
|
||||
| P2a-2 面板+矩阵编码共享 | 4.59s (4.24×) | 6.19s (**3.14×**) |
|
||||
|
||||
stats 剔除计时字段后逐组完全一致, 交易逐笔相同; tests/backtest 410 全过。
|
||||
剩余每组成本 = filter_history (参数相关, 不可共享) + 掩码散布。
|
||||
P2b (L2 内容寻址物化) 在此之上进一步覆盖跨 run/跨策略的因子复用。
|
||||
|
||||
## P1b 交付(2026-10-26)
|
||||
|
||||
- `app/definitions.py`: `JsonDefinitionStore`(原子写 + 损坏跳过 + 目录 mtime 签名,
|
||||
|
||||
Reference in New Issue
Block a user