01学完这一课,你能做到什么
学完这一课,你应该能:
- 判断一篇论文的问题和自己的市场、数据是否匹配;
- 把公式、输入输出和算法写成可执行步骤;
- 逐项核对数据、特征、标签、模型、训练和评估配置;
- 用 、、 等指标比较结果,并排查差异;
- 区分概念验证、思路移植、严格复现和实盘证明。
一篇论文值得复现,不是因为结果数字漂亮,而是因为你能说明每个数字怎样得到。
- 1问题研究什么
- 2公式输入输出
- 3算法如何执行
- 4配置怎样训练
- 5结果怎样比较
02第一步:选和问题匹配的研究
检索股票预测研究时,可以从论文和代码仓库入手。arXiv 是预印本平台,被收录不等于已经同行评审;发表在顶会也不代表结论能适用于所有市场和日期。
先问三个问题:作者要解决什么?为什么原方法不够?它的前提适不适合你的数据?
如果只想理解思路,可以做概念验证;如果把方法换成自己的市场,是思路移植;如果要对齐作者实验,才是严格复现。三者的环境、数据和核对深度不同,记录时不要混称。
一句话记住先匹配研究问题,再决定复现深度。
03第二步:写清问题、假设和适用范围
以股票截面收益预测为例:在某个时点,对一组股票预测随后收益并排序。市场状态可能影响选择,时间关联和股票之间的关联也可能帮助预测。
但模型学到关联,不等于识别了因果,也不等于掌握了每条新闻的影响。行业联动、商品和能源同步变化,只能先作为研究假设。
股票池必须回到论文、配置和代码确认。若不同材料分别写了 CSI300、CSI800 和 CSI500,不要自行挑一个填上;先标记冲突并查清来源。
在指定数据和区间有效
结论绑定市场、股票池、日期和口径。
任何市场都有效
关联不等于因果,历史结果也不是未来保证。
04第三步:把公式翻译成输入、处理与输出
读公式先认变量。N 表示股票数量,T 表示回看时间步,F 表示特征维度。一个示意输入可以写成 N×8×222:8 是回看八个交易日,222 个输入维度的具体组成仍要用数据说明核对。
可以把模型拆成三类模块:市场引导或门控,根据市场状态调整特征重要程度;时间注意力,在历史窗口内学习哪些时点更相关;股票间注意力,学习股票之间的关系。
向量化只是把信息放进统一维度进行数值运算,不会自动产生经济解释。八日窗口的注意力也不会凭空检索十年前的事件;想使用更长历史,需要数据和架构支持。
输入 = N × T × F = N × 8 × 222
N 是股票数,T 是历史步数,F 是特征维度;具体组成要核对配置。
05第四步:把研究写成可执行的数据流
先画出数据流:读取股票特征和市场信息 → 按日期构造八日窗口 → 做门控处理 → 投影和加入位置编码 → 做时间与股票间交互 → 输出预测 → 和真实未来收益计算损失。
每一步都写输入和输出形状,并检查股票顺序、日期排序、缺失股票和标签对齐。N 只股票的顺序发生变化时,标签也要同步变化;某只股票缺失一天,不能悄悄把下一天当成前一天。
如果用 XGBoost 做一个保留市场特征和截面任务的简化版,要明确写出替换了什么。它不等于复现 Transformer 内部的注意力结构。
- 1读取股票与市场特征
- 2窗口8 日对齐
- 3交互时间与股票关系
- 4预测输出收益
- 5损失对照真实标签
06第五步:逐项对齐实验配置
一个实验示例可以是 2016—2018 年训练、之后验证、2020 年测试,精确日期必须从配置确认。窗口 T=8,学习率约 1e−5,训练 40 个 epoch,并可能涉及 dropout、batch size 和隐藏层等参数;缺少的值不能凭空补齐。
1 个 epoch 表示完整训练数据被使用一遍,不等于只更新一次参数。Dropout 是训练时随机屏蔽部分表示的正则化方式,不能保证完全消除。
逐项核对:数据来源、日期、日频、历史股票池、和缺失处理;标签期限和价格字段;特征窗口与预处理统计量;模型结构和正则化;学习率、epoch、batch、优化器、早停和随机种子;IC/Rank IC/ICIR 的定义、日期聚合、基准、费用和交易约束;仓库版本、依赖、硬件和随机性。
数据
来源、日期、股票池、缺失。
模型
结构、维度、正则化。
评估
指标、聚合、基准、成本。
一句话记住缺少参数就标记未知,不要猜成复现配置。
07数据包、PKL 与 Qlib:先确认对象再运行
数据包可能约 2GB,目录和文件名要以实际下载内容为准。PKL 是 Python 对象序列化文件,可能保存处理器、表格或其他对象,不是一种统一金融数据标准。
加载 PKL 前先确认来源可信,因为反序列化不可信对象可能执行代码。检查对象类型、索引、列和时间范围,不能只看到文件存在就开始训练。
Qlib 可以帮助管理量化数据、特征、模型和实验;它与 MySQL 不是同一层工具,不能把某次读取更快推广成所有场景都更好。
一句话记住文件存在不等于数据可用,先检查来源和结构。
08第六步:比较结果,解释偏差来源
IC 通常描述预测与未来收益的相关,Rank IC 描述排名相关,ICIR 衡量 IC 序列均值相对波动的关系。计算前要确认 Pearson 还是 Spearman、按日期还是汇总,以及是否年化。所谓 0.05 的经验线不是通用的盈利认证阈值。
如果结果差异明显,按数据、预处理、标签、模型、训练超参数、随机种子、评估代码逐层排查。可以预先设定相对差异 20% 作为排查提醒,但容忍范围要结合指标尺度和多次运行方差。
异常值要区分数据错误和真实极端事件。训练可以研究稳健处理,评估不能为了好看而删除黑天鹅或亏损行情。每一步保存统计摘要,才能定位差异从哪里开始。
- 1数据范围与缺失
- 2预处理统计量与异常值
- 3标签公式与对齐
- 4模型结构与参数
- 5评估指标与聚合
一句话记住复现接近的是配置一致性,不是未来收益证明。
09先用双均线完成一次小型复现
先做一个可控的小实验:计算过去 5 日和 20 日均价,短线上穿长线产生买入信号,下穿产生退出信号。要事先定义使用收盘还是盘中数据、下一可成交时点、初始资金、成本和。
假设用贵州茅台 2024 年至 2025 年的示例区间,曾得到累计约亏 30%、年化约 −18% 的记录。这只是一次回放的记录,数据和口径换了,结果也会变,不能当成可以复制的业绩。
亏损也可能是有效的复现结果:震荡和假突破会让趋势规则反复交易。不能因为结果不好就擅自换参数,再把新结果称为原策略复现。
保留并排查口径
检查数据、信号时点、成本和参数是否一致。
换参数直到好看
这会把复现变成事后挑选。
10动手任务:交付一张可复现的实验卡
先为写一页实验卡,按五步法完成数据核对、公式、算法、配置和结果对比。再为 MASTER 建立待补清单:论文版本、代码提交、数据包、精确股票池、训练日期、模型参数和指标定义。
验收时逐项回答:每个结果用了哪些输入?决策时是否能拿到?哪些差异是有意替换?哪些仍未知?
没有原数据或模型权重时,交付“待复现配置与简化实验”,不能填写“论文复现成功”。
一句话记住复现交付物要能让别人按清单重做。
4 道小题
全部答对,这一课就算真正读懂了。答错了会告诉你为什么。
这一课,浓缩成一张卡
学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。
把问题、数据、配置、指标和差异逐项记录,不把简化实验写成严格复现。
- 先核对适用范围
- 未知参数不能猜
- 复现不等于盈利证明
记住这 5 句话
- 01先判断论文问题是否适合自己的市场、数据和研究目标。
- 02把公式拆成输入、处理、输出,并逐项记录形状和时间对齐。
- 03数据、标签、模型、训练、评估和环境配置都要核对,未知值不能猜。
- 04IC、Rank IC 和 ICIR 的定义与聚合口径要先统一,差异按数据流逐层排查。
- 05概念验证、思路移植、严格复现和实盘证明是四种不同结论。
完成这一课
读完讲义、答对小题,这一课就算学完了。
- 读完讲义
- 通过随堂自测
实验数据AI+金融投资训练营教学样本。固定教学样本
固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。