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 回测或净收益策略验收。