复盘与研究日志:让每次实验可追溯
本课目标:建立”每次实验都留痕”的研究日志习惯,让三个月后的你能复现今天的每一个结论。
量化研究是一种实验科学:提出假设、设计实验、观察结果、修正认知。但很多人做了几十次回测之后,既说不清哪些想法试过、也复现不了当时的结果——研究变成了在原地画圈。前几课我们反复强调过拟合、参数敏感性这些方法论问题,而所有方法论最终都要落到一个朴素的载体上:把做过的事情如实记录下来。研究日志就是这个载体,成本极低,收益随时间复利。本文不构成投资建议。
为什么要写研究日志
三个直接的理由:
- 防止重复劳动:没有记录,你会在半年后满怀兴奋地”重新发现”一个自己早已否定过的想法;
- 让结论可审计:当策略实盘表现和回测不符时,你需要回溯当初的每个假设和参数,找出分歧点;
- 对抗记忆的美化:人会不自觉地记住成功、淡忘失败。白纸黑字的记录是对抗这种偏差的唯一手段。
更深一层:被否定的实验和成功的实验同样有价值。“动量在这个品种、这个周期上没用”本身就是一条值得付费的知识——前提是你记下来了。
日志还有一个隐性收益:它会改变你做实验的方式。当你知道每个实验都要写下假设和结论时,你会自然地放慢速度、想清楚再动手,而不是漫无目的地调参数”看看会怎样”。研究质量的提升,往往就是从这个小小的摩擦力开始的。
一条合格的实验记录长什么样
日志不需要华丽,但需要结构。流水账式的”今天跑了个回测,效果不错”几乎没有信息量,三个月后你既不知道跑的是什么,也不知道”不错”是相对什么而言。一条记录至少要包含五个要素,缺一个,实验的价值就打折扣:
| 要素 | 回答的问题 | 示例 |
|---|---|---|
| 假设 | 我在检验什么 | 60 日动量在宽基 ETF 间轮动有效 |
| 数据 | 用了什么数据、什么区间 | 某数据源日线,2018 年至 2024 年 |
| 参数 | 关键参数与尝试过的组合数 | 回看期 60 日,月度调仓;共试 3 组 |
| 结果 | 客观数字,不带情绪 | 年化收益、最大回撤、换手率 |
| 结论 | 假设是被支持还是否定,下一步 | 样本外衰减明显,暂不推进 |
注意”参数”一栏要求写下尝试过的组合数。这直接对应过拟合课里的原则:试了 100 组挑出来的最优结果,和只试了 3 组的结果,可信度完全不同。
“结论”一栏则要求你明确表态:假设是被支持、被否定,还是存疑。存疑不是和稀泥,而是一个正当的状态——比如样本太短、结果对某个参数过于敏感,此时诚实地写”证据不足”比勉强下结论更专业。同时把”下一步”写清楚:是设计新实验继续验证,还是归档放弃。没有下一步的实验记录,很容易变成无人认领的烂尾楼。
版本管理与随机种子
日志解决”想法可追溯”,工程手段解决”结果可复现”:
- 代码进 Git:每次实验对应一次提交,日志里记下 commit 哈希。三个月后按哈希检出代码,就能原样重跑。不要用”策略_final_v3_真最终版.py”这种文件名管理版本,那是混乱的开始;
- 数据快照:数据源会修订历史数据(复权因子更新、错误修正),今天下载的”2020 年的价格”可能和一年前下载的不完全一样。重要实验最好保存当时用的数据文件或记录其版本;
- 固定随机种子:凡是涉及随机性的环节(抽样、机器学习模型初始化),显式设定种子并写进日志,否则同一份代码每次跑出的数字都不一样,你将无法区分”改进”和”随机波动”。
import numpy as npimport random
SEED = 42np.random.seed(SEED)random.seed(SEED)# 日志中记录:seed=42, commit=a1b2c3d, data=etf_daily_20240630.parquet警惕”抽屉效应”:只记成功的实验
抽屉效应指失败的实验被塞进抽屉、只有成功的被展示。在个人研究里它同样致命:如果你试了 50 个想法、只记住表现最好的那个,这个”最好”很大概率只是运气——50 次抽签总有一次抽到好签。
对策是把纪律前置:
- 先登记、后实验:动手写代码之前,先在日志里写下假设和预期,防止事后”改口”;
- 失败也要写结论:每条记录必须有明确的收尾,哪怕只有一句”否定,原因是样本外衰减”;
- 定期复盘统计:每月数一数,本月做了多少实验、否定了多少。如果”成功率”高得离谱,多半是筛选出了问题。
顺便说,市面上你看到的策略分享也普遍带有抽屉效应——没人展示自己失败的一百次尝试。理解了这一点,你对”网上看到的神奇策略”就会多一层天然的免疫力。
一个可以直接用的 Markdown 模板
# 实验编号:EXP-2026-07-20-01- 日期:2026-07-20- 假设:(一句话,可被证伪)- 数据:来源 / 品种 / 区间 / 快照文件名- 方法与参数:规则简述;关键参数;共尝试参数组合数- 环境:commit 哈希;随机种子- 结果:年化收益 / 最大回撤 / 换手率 / 样本内外对比- 结论:支持 / 否定 / 存疑(说明理由)- 下一步:(或"归档,不再推进")把模板存成文件,每次实验复制一份填写,五分钟就能完成。编号建议用”日期加当日序号”的格式,方便排序和引用;所有日志放进仓库的一个固定目录,和代码一起提交。坚持三个月,你会拥有一份别人拿不走的研究资产:一张记录着你验证过什么、否定过什么、还欠什么的认知地图。
本课小结
- 研究日志防重复劳动、让结论可审计、对抗记忆的美化。
- 一条合格记录包含假设、数据、参数、结果、结论五要素。
- commit 哈希、数据快照、随机种子三件套保证实验可复现。
- 先登记后实验、失败也写结论,是对抗抽屉效应的核心纪律。
- 被否定的实验是资产,不是垃圾。
动手练习:用上面的模板,把前几课做过的双均线回测补写成一条正式的实验记录,包括你试过的所有参数组合和最终结论,并提交到 Git 仓库。