一、GFlowNet原理回顾与日频数据挖掘
- 选择GFlowNet的原因:相比于强化学习,GFlowNet能挖掘多元化公式,更符合多因子选股模型需求;相比于遗传规划,GFlowNet学习能力更强,搜索效率更高。GFlowNet batch内因子相关性稳定,中位数不到0.04,避免了强化学习出现的相关性问题。
- GFlowNet原理:将对象生成过程建模为图网络中的水流过程,训练目标是通过流匹配条件使网络中的流量分布满足守恒定律,实际采用Trajectory Balance目标。状态表示方面,动作历史序列通过Transformer encoding编码,辅以当前深度、已用算子比例、已用节点比例三个手工特征。奖励函数综合了IC、多头IR和Barra时序相关性惩罚项。
- 日频数据挖掘:基于原始日频K线共筛选出符合条件的因子99个,IC均值中位数达4.43%,多头年化超额中位数为5.23%;基于日频K线衍生特征挖掘出因子159个,基于分钟聚合特征挖掘出因子56个。各因子集的相关性中位数均在15%以下,因子长度和复杂度控制在较小水平。
- 日频数据挖掘单因子表现:原始日频K线因子IC均值中位数达4.43%,最大值达7.00%;多头年化超额中位数为5.23%。因子相关性不高,截面和时序的中位数值均在15%以下。因子长度与复杂度控制在较小水平,平均长度为9.68,具有一定可解释意义。
二、分钟频数据快速计算框架与挖掘
- 分钟频数据文法:定义了分钟频数据的计算流程,包括分钟特征、分钟算子、日内mask算子、日内聚合算子和日频算子。
- 分钟频数据快速计算框架:为解决内存瓶颈问题,引入MemMap机制按需访问数据。计算层面,将公式拆分为日内block和日频tree两段,并行方式按年份和股票切片进行多进程计算,numbakernel单线程计算,loky多进程并行。日内block计算后进入LRU持久化block cache,越到训练后期重复结构越多,计算速度越快。
- 分钟频特征挖掘单因子表现:基于分钟频特征共筛选出符合条件的因子32个,IC均值中位数达3.19%,最大值达8.85%;多头年化超额中位数为4.21%。因子平均长度为11.22,相对可解释意义比较弱。
- 分钟频特征挖掘因子相对日频信号增量:分钟信号的引入一定程度上提高了多空收益的表现,但由于当前分钟频有效因子挖掘较少,RankIC和多头超额表现提升较小。
三、AlphaEval多维度因子筛选效果
- AlphaEval介绍:AlphaEval从预测能力、时序稳定性、扰动鲁棒性、金融逻辑性、多样性五个角度对因子进行筛选。
- 多样性角度筛选:在深度学习模型隐藏层、国金金工因子库和GFlowNet挖掘因子共1134个待选因子中,采用DPP方式筛选出800个因子,以LGBM模型合成后效果最优。
- 预测能力、秩稳定性与金融逻辑性角度筛选:PPS预测能力筛选和金融逻辑性筛选在收益端没有明显提升,但RRE秩稳定性筛选可有效降低因子换手率。
四、与现有AI模型的融合与指增策略
- 指数增强策略表现:利用DPP筛选出的800个因子,采取LGBM合成得到最终因子,构建指数增强策略。沪深300指数增强表现比较亮眼,今年截止5月底已有7.01%超额收益。中证1000指数增强表现尚可,今年以来超额收益5.93%。中证500指数增强今年表现比较平淡,不过历史超额收益显著。