QuantWeft量化经纬
本章小节

Project 1 QA 记录

验证日期:2026-10-06。所有命令均使用课程 .venv,工作目录为 quant_course/ 根目录。

输入核验

CLI 对照本项目清单与课程原始来源清单,并校验行业与 FF3 RF 两组输入的 ZIP、解压 CSV、处理后 CSV 共六个文件 SHA-256。处理文件哈希与冻结值相符:

  • 行业月度收益:3b097d810c295d64eedfa1ece7067ff2a0707f5ca90e33935df9949251f70950
  • FF3 月度因子 / RF:c19770a19a0ac47ad1c29074f57234570aeaa9725212cb4fa8146a2846c52814

两份处理快照均读取 1,202 行,从 1926-07 至 2026-08。月度索引连续且一对一相同;选取研究的 2010-01 至 2024-12 时为 180 个月,四个字段均无缺失。读取器不补零、不填 RF、不跳过月份。

运行与结果核对

独立入口成功退出,控制台与逐窗结果保存在 CLI 日志、摘要 JSON 和 窗口 CSV。主窗口有 120 个月;三个扩展区间各有 60 个月。NoDur、HiTec、Enrgy 在 2010–2019 年期末财富指数依次约为 3.1412、4.6270、1.3313;CAGR 为 12.13%、16.55%、2.90%;约定年化波动率为 11.14%、15.61%、20.03%;同月 RF Sharpe 为 1.039、1.032、0.217;最大回撤为 15.84%、17.68%、40.70%。

测试命令 .venv/bin/python -m pytest tests/test_project01_analysis.py -q 的结果为 3 passed,见 测试日志。测试固定处理文件哈希,检查全样本连续性、行业与 RF 对齐、四个窗口长度;另以 100 → 150 → 75 手算核对共享财富与回撤函数,并独立计算主窗口财富、对数收益均值、Sharpe 和最大回撤以对照汇总函数。

Notebook 与图像

Notebook 执行记录 使用 quant-course-venv 冷启动执行:8 个代码单元,0 个错误输出,包含 1 个 PNG 图像输出。执行结果未写回源 Notebook,Notebook 仍保留可编辑、无陈旧执行状态的版本。

生成的 项目图 为 2,180 × 1,460 PNG。已人工查看图中中文、图例、四个坐标轴、初始财富点和 2020–2024 灰色窗口标记;财富曲线称财富指数,没有重建价格。

调试记录与限制

  • 第一次画回撤时,计算数组包含初始财富而 x 轴仅含月末收益,因此长度相差一个观测。改为对回撤路径同时绘出选定的初始财富日期,重新运行后图形成功生成。
  • 系统默认 DejaVu Sans 不含中文。图形入口优先选择已安装的中文字体,并保留 DejaVu Sans 作为拉丁字符后备;最终图中文字显示正常。
  • 首次用系统 python3 生成 Notebook 时缺少 nbformat。随后改用本项目 .venv,并以 quant-course-venv 内核完成生成和冷执行;没有安装软件包或更改共享环境。
  • Notebook 冷执行时 Jupyter 内核输出本机 TCP 无加密提示;执行完整结束且无错误单元。冷执行用本地课程内核,不将 notebook 输入数据发送到外部服务。

剩余证据边界来自数据本身:当前修订快照不能恢复历史发布时点;没有逐股价格 / OHLCV、历史 PIT 股票池、信号、交易、成交、成本或融资账本。该数据适合复算发布的组合收益路径,不支持可交易策略、净 Alpha 或未来收益结论。Kenneth French 文件的公开下载也不等于通用再分发许可;外部共享前应确认当前条款。

根代理验收

2026-10-06:独立审查重算六份快照哈希、12 行结果和核心指标全部相符;51 项专项测试通过。第 4 题错误前提已修正,答案补充起点跌幅与峰值回撤的区别。根代理查看项目四联图,确认坐标、中文图例和窗口标记可读。项目一作为发布组合收益的描述性研究完成,不作为可交易 Alpha、PIT 回测或净收益策略验收。

搜索教材

输入关键词开始搜索。