一、因子集、预处理与组合构建方式
- 量价因子数据集:采用Alpha158量价因子,分为日内因子、波动因子、价因子、量因子和量价相关性因子五类。
- 基本面因子数据集:采用38个基本面因子,涵盖估值、质量、成长和分析师一致预期等维度。
- 数据预处理:特征X为158个Alpha158因子与38个基本面因子,去极值、截面ZSCORE标准化,维持原始值或进行市值行业中性化;标签Y为未来5个交易日或20个交易日的VWAP收益率,截面排序百分位,维持原始值或进行市值行业中性化。
- 神经网络参数:Batch按交易日,损失函数为Pearson相关性的相反数,优化器为Adam,学习速率0.001,输出层激活函数为Sigmoid,最大Epoch 100,早停Epoch 10。
- 训练集、验证集与测试集:前90%为训练集,后10%为验证集,用于模型拟合,接下来1年用于预测,每年重训练一次。
- 全A选股组合回测:剔除上市不满365个自然日的新股和ST股,取因子值前10%为多头组合,后10%为空头组合,全A等权为基准组合,每5个交易日/20个交易日调仓,交易费率单边千分之一。
- 路径依赖与路径合并:为规避路径依赖问题,将不同调仓起点的净值曲线截断并归一化处理,计算每日收益率的均值。
二、3种中性化收益率建模方式对比
- 量价因子:以原始值建模IC与收益有损,但组合风险端更佳。三种建模方式(原始值输入、中性化值输入直接预测、中性化值输入再中性化预测)对比,发现原始值输入的RankIC和多头组合超额收益略低于直接预测,但超额收益波动率和最大回撤每年均值优于直接预测;直接预测和中性化值再中性化预测的RankIC和ICIR相差不大。因此,量价因子采用“中性化输入,原始值输出”的方式。
- 基本面因子:中性化处理的必要性。直接将基本面因子原始值输入模型,预测原始收益和中性化收益的RankIC均相对较低。由于不同行业的基本面因子存在中枢差距,因此基本面因子在输入神经网络前需要进行中性化处理。基本面因子采用“中性化输入,原始值输出”的方式。
- 量价与基本面结合:基本面因子的中性化收益预测能力能补充量价因子的原始收益预测能力。在预测原始收益的场景下,量价因子原始值与基本面因子原始值非线性结合,和量价因子原始值与基本面因子中性化值非线性结合,两种方式的预测效果对比,发现基本面因子原始值预测原始收益率效果相对较弱,因此相对纯量价因子组合的增强效果不明显,而中性化后的基本面因子能增强原始量价因子的绝对收益预测效果。
三、时序神经网络的应用与参数探秘
- 时序神经网络的优势与局限性:循环神经网络RNN和门控循环单元网络GRU相较于MLP,可以捕捉时序信息,但GRU并未展现出明显优势,且对参数敏感。
- 单日量价因子:采用时序神经网络学习时序上的关系与变化,对预测效果的提升确实存在帮助。隐藏单元数的参数设置,如果输入的特征已经证明在统计上有一定的选股能力,那么将隐藏单元数设置为和因子数较为接近或许是较好的方式。特征步长的参数设置,可以参考线性选股方式下根据预测周期长短来挑选窗口期的方式,来设置特征步长。
- 原始行情数据:时序神经网络也可拟合原始行情数据。GRU拟合的原始行情相对单日量价因子能提供一定的增量信息。
四、低频量价+高频量价+基本面因子+行情的多模型组合
- 四分支多模型神经网络:构建四分支多模型的神经网络,集中学习各个维度的信息,得出最终的预测收益率。若预测未来5个交易日收益率,特征步长设为20;若预测未来20个交易日收益率,特征步长设为60。
- 预测区间与调仓频率的关系:深度学习合成因子的收益主要集中在刚调仓完毕的前期时间段。预测区间越长,多头组合换手率越低。短区间预测的效果与长区间预测的效果差距在较高调仓频率下相对较大,在较低调仓频率下相对较小。
- 深度学习行业轮动组合:基于5日原始收益率预测与20日原始收益率预测值,构建行业轮动组合。中信一级行业轮动组合多头年化多头超额收益11.36%,多空年化超额收益22.71%。
- 中证1000指增组合:基于深度学习模型对于股票的中性化收益率预测,构建中证1000指增组合。中证1000指增组合相对基准指数的年化超额收益为16.21%。