1. 项目定位

本项目选择“机器学习与 A 股横截面收益预测”,并参考 FT-Transformer 的论文复现要求。考虑到项目周期有限,采用“一个论文复现、一个明确改进、一套完整实证”的最小可行方案。

项目题目为:市场状态自适应 FT-Transformer:A 股横截面收益预测研究

项目包含两条同步推进、接口解耦的工作流:

  • 模型研究负责数据、特征、训练和预测文件;
  • Wangwen 负责 IC、Rank IC、分组收益、指标汇总和图表;
  • 两边通过 datetime / code / value 标准预测文件连接。

2. 研究问题与假设

本项目集中回答两个问题:

  1. FT-Transformer 学习因子间非线性交互后,能否提高 A 股未来收益的样本外排序能力?
  2. 根据市场状态动态调整因子表示,是否比直接拼接市场变量更有效?

研究假设:

  • H1: FT-Transformer 的样本外 Rank IC 优于普通 MLP,且至少不弱于 LightGBM;
  • H2: 市场状态自适应 FT-Transformer 优于原始 FT-Transformer;
  • H3: 自适应机制的增量主要出现在市场状态切换或高波动阶段。

如果实验不支持假设,也应如实报告。目标是完成可信比较,不是预设 Transformer 一定胜出。

3. 数据与时间范围

优先选择数据质量较好、计算规模可控的 A 股股票池。必须使用历史时点可得的股票名单,避免仅使用当前成分股造成幸存者偏差。

时间切分:

数据集时间范围用途
训练集数据起始日至 2021 年末拟合模型
验证集2022 - 2023 年选择超参数和停止轮次
测试集2024 - 2025 年最终样本外评价

任何模型和超参数选择不得使用测试集结果。

输入特征

第一版只使用日频 K 线及成交数据衍生特征,最终控制在约 15 - 30 个:

  • 1、5、10、20 日收益率;
  • 5、10、20 日波动率;
  • 成交量、成交额及其变化率;
  • 换手率与日内振幅;
  • 收盘价相对 5、10、20 日均线的位置;
  • 量价相关性或价量背离指标。

市场状态变量只保留少量可解释字段:指数近 5/20 日收益、指数近 20 日波动率、全市场成交额或换手率、上涨股票数量占比。

预测标签

标签采用下一交易日收盘至再下一交易日收盘的收益:

$$ y_{i,t}=\frac{Close_{i,t+2}}{Close_{i,t+1}}-1 $$

训练标签可以进行横截面去极值或标准化,但回测必须保留原始收益。

4. 数据规范

  1. 训练、验证和测试必须按时间顺序划分;
  2. 滚动特征不得包含未来数据;
  3. 标准化参数只能来自当日横截面或训练样本;
  4. 明确处理停牌、涨跌停、ST、新股和缺失数据;
  5. 使用历史股票池,避免幸存者偏差;
  6. 回测信号与实际交易之间至少错开一个可交易时点;
  7. 保存实验配置、随机种子和结果,不只挑最好结果。

5. 模型设计

基准模型

至少完成 MLP 或 LightGBM。时间允许时同时报告二者,用于判断复杂模型是否提供真实增量。

原始 FT-Transformer

FT-Transformer 将每个结构化特征映射为独立 token:

$$ T_{i,j}=b_j+x_{i,j}W_j $$

模型在因子轴上使用自注意力学习因子交互,并使用 [CLS] token 的最终表示预测股票收益。

个股因子向量
  -> Feature Tokenizer
  -> [CLS] + 因子 Tokens
  -> Transformer Encoder
  -> 收益预测

只复现与数值特征相关的核心模块,不复现原论文全部公开数据集和超参数搜索。

市场状态自适应 FT-Transformer

项目唯一的结构创新是让市场状态动态调节 FT-Transformer 内部的归一化参数:

$$ \gamma_t,\beta_t=\mathrm{MLP}(m_t) $$

$$ H’_t=\gamma_t\odot\mathrm{LayerNorm}(H_t)+\beta_t $$

为判断提升是否只是来自新增市场信息,必须加入“FT-Transformer + 市场变量直接拼接”的对照模型。

第一版统一使用 Huber Loss。排序损失、换手率损失和端到端组合优化本期不做。

6. 必做实验

编号模型实验目的
B1MLP 或 LightGBM建立传统基线
B2原始 FT-Transformer完成论文核心模块复现
B3FT + 市场变量直接拼接判断增加市场信息本身是否有效
B4市场状态自适应 FT检验条件化机制的增量价值

所有模型必须使用相同数据切分、特征处理和测试区间,不进行大规模超参数搜索。

7. 评价指标

预测指标:每日 IC、每日 Rank IC、ICIR 和指标时间序列稳定性。

投资指标:五分组或十分组收益、Top 组累计收益、多空收益、年化收益和 Sharpe。换手率与交易成本是 P2,不阻塞主要结论。

必须展示:四模型统一对比表、分组单调性、累计收益、不同市场状态下的 Rank IC,以及直接拼接和自适应机制的消融比较。

8. Wangwen 接入

Wangwen 因子回测工具已完成开发,当前项目固定基线为 v1.0.0(commit 5e780f4。该版本已支持日频与分钟频回测、Universe 规则、IC/Rank IC、分组与多空收益、风险收益指标、Rich 摘要和图表输出;当前本地回归测试为 42 passed

工具开发完成不等于本项目回测已经完成。模型数据就绪后,仍需先用小样本验证预测、收益与 benchmark 在日期、股票池和缺失值处理上的一致性,再生成正式结果。每轮正式实验继续记录 Wangwen commit SHA、模型 commit、数据版本、配置和随机种子。

模型预测输出:

字段含义
datetime模型形成信号的交易日 t
code股票代码
value预测分数或预测收益

Wangwen 1.0.0 的默认 close 快捷回测计算的是 t 收盘至 t+1 收盘收益,与本项目标签不完全一致。正式评估需单独计算 t+1 收盘至 t+2 收盘收益并对齐到信号日 t,再将预测和收益分别包装为 Factor.from_df(),通过 BacktestEngine 直接注入自定义收益与 benchmark。

Wangwen 后续工作从“工具开发”转为“项目接入”:核对聚源字段与复权口径、完成小样本端到端验证、固定正式实验版本并导出指标和图片。换手率、交易成本与更完整的真实数据库集成测试属于可选增强,不阻塞本期核心结论。

9. 执行优先级

P0:必须完成

  • 确认数据字段、股票池和时间范围;
  • 完成特征、标签和时间切分;
  • 跑通基准模型与原始 FT-Transformer;
  • 将预测结果接入固定版本 Wangwen;
  • 计算 IC、Rank IC 和分组收益;
  • 形成可讲述的初步结论。

P1:核心创新

  • 完成市场变量直接拼接模型;
  • 实现市场状态自适应 LayerNorm;
  • 完成四模型统一对比;
  • 分析不同市场状态下的表现。

P2:时间允许再做

  • 完整交易成本与换手率;
  • 多随机种子实验;
  • 注意力或因子权重可视化;
  • 更多股票池与稳健性检验。

10. 本期不做

股票轴 Transformer、时间 Transformer、图神经网络、Mixture of Experts、排序损失、端到端组合优化、财务公告日对齐、大规模超参数搜索和复杂 SHAP 风险归因均不进入当前范围。

11. Pre 结构

建议控制在 10 - 12 页、15 - 20 分钟:研究背景、问题与假设、FT-Transformer 原理、金融场景局限、市场状态自适应机制、数据与标签、实验设计、预测结果、分组回测、结论与未来工作、Q&A。

12. 验收标准

  • 数据、特征和标签没有明显未来信息泄漏;
  • 至少跑通一个基线、原始 FT 和改进模型;
  • 测试集严格使用 2024 - 2025 年;
  • 至少报告 IC、Rank IC 和分组收益;
  • 信号日与 t+1 至 t+2 收益严格对齐;
  • 有直接拼接与市场状态自适应的消融对照;
  • 计划书、实验台账、结果图表和 Pre 均有可核验版本;
  • 最终 Pre 能在规定时间内完成。