回测引擎 v2.0 · 使用说明(回测/engine_v1/)
数据目录默认 DK_DATA / /var/minis/mounts/DUCKERRY_Warehouse/数据,可用 --data 覆盖。
回测引擎 v2.0 · 使用说明(回测/engine_v1/)
本目录是独立可运行的回测引擎,把四份框架文档封装成单文件脚本。
它是只读消费者:只读
数据/下的原始序列,不写任何生产文件、不参与fetch.py管线、不参与每日发布。完整结论与问题分析见 optimization/报告/四因子框架回测引擎v2.0_报告_2026-09-27。
一、目录内容
| 文件 | 说明 |
|---|---|
duckerry_backtest.py | 主引擎(约 1490 行):L0–L4 决策栈 + 四因子 A/B/C + 降频 + 核心卫星 + 否决权 + walk-forward |
plot_compare.py | 独立绘图脚本(从已落盘 equity.csv 出图,规避 iSH 长进程被 kill) |
compare.csv | 六策略横向对比表(实测) |
compare_curve.png | 六策略净值对比图(对数轴) |
curves/*.csv | 各策略净值曲线(date, equity, dd, sat_pos),可直接导入 Obsidian/Excel 画图 |
wf/ | 样本外 walk-forward:oos_equity.csv(拼接后的样本外净值)+ oos_summary.json + fold_0..5.json(各折择优参数与测试段表现) |
metrics_weekly_core60.json | 主推配置(周频·自适应+核心60%)的完整绩效指标 + 实际生效 config |
二、运行
cd "/var/minis/mounts/DUCKERRY_Warehouse/回测/engine_v1"
# 横向对比(约 1 分钟)
python3 duckerry_backtest.py --compare
# 主推配置:周频 · 自适应 + 核心底仓 60%
python3 duckerry_backtest.py --freq W --strategy adaptive --l1-method trendstate --core-pct 0.60
# 样本外 walk-forward(单折约 2 分钟;iSH 上建议逐折单独跑)
python3 duckerry_backtest.py --wf-fold 3 --freq W --strategy adaptive --l1-method trendstate --core-pct 0.60
python3 duckerry_backtest.py --wf-report数据目录默认 DK_DATA / /var/minis/mounts/DUCKERRY_Warehouse/数据,可用 --data 覆盖。 依赖:python3 + numpy + pandas(绘图另需 matplotlib)。
三、口径边界(必读)
- 回测口径 ≠ 实盘 ≠ 生产管线(
数据/panel.csv+paper_engine.py)。数字不可直接互相引用。 - 有效窗口 2006-01-03 → 2026-09-25(20.6 年);日频 5199 bar / 周频 1082 / 月频 249。
- 四因子权重是主观先验
[待验证];A/B/C 评分是对文档权重的可计算操作化代理;L0 阈值多为[待验证]。 - 成本 6bps 单边(1bp 佣金 + 5bps 滑点);核心底仓不产生换手成本,只对卫星换手计费。
- 不构成投资建议。
四、环境备注(iSH)
- 单个 Python 进程约 2 分钟被静默 kill(无报错、rc=0,
nohup也挡不住)→ 长任务(全折 WF、批量绘图)必须拆成多个短进程。 - 容器无任何 CJK 字体,matplotlib 图例一律 ASCII。
- 已内置三层缓存(原始帧 / 降频帧 / 层级判定),
--compare由 10 分钟压到约 1 分钟。