框架

回测引擎 v2.0 · 使用说明(回测/engine_v1/)

数据目录默认 DK_DATA / /var/minis/mounts/DUCKERRY_Warehouse/数据,可用 --data 覆盖。

回测 · 资产·机制 · 回测/engine_v1/README.md · 3338 B

回测引擎 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 分钟。