Alpha掘金系列之二十二:基于GFlowNet的低相关性量价因子挖掘策略
国金证券·2026-04-10 19:00

量化模型与构建方式 1. 模型名称:GFlowNet (Generative Flow Networks, 生成流网络) [1][12][22] * 模型构建思路: 将因子表达式的生成过程建模为有向无环图(DAG)中的“水流”过程,训练目标是让网络中的流量分布满足守恒定律,最终实现生成某个因子表达式的概率与其对应的奖励(Reward)成正比,即 P(x)R(x)P(x) \propto R(x) [13][22][27] * 模型具体构建过程: * 状态与动作: 状态(State)代表生成过程中的中间表达式,动作(Action)代表添加一个算子、窗口或特征等操作[22][25] * 训练目标: 采用 Trajectory Balance (TB) 损失函数进行训练,该目标要求整条生成轨迹的前向概率、总流量估计与最终奖励之间保持平衡[31] * TB损失函数公式: LTB=(logZt=1nPF(stst1)R(x)t=1nPB(st1st))2{\mathcal{L}}_{T B}=\left(\log{\frac{Z\prod_{t=1}^{n}P_{F}(s_{t}|s_{t-1})}{R(x)\prod_{t=1}^{n}P_{B}(s_{t-1}|s_{t})}}\right)^{2} [31] 其中,ZZ 是可学习的标量参数,代表总流量;PFP_F 是前向策略(需要学习的神经网络),代表在状态 st1s_{t-1} 下选择动作前往状态 sts_t 的概率;PBP_B 是后向策略;R(x)R(x) 是终止状态(即完整因子表达式)的奖励[31] * 训练流程: 用当前前向策略 PFP_F 采样一条生成轨迹;计算该轨迹对应因子表达式的奖励 R(x)R(x);计算 TB 损失并反向传播更新 PFP_FZZ 的参数;重复此过程[34] * 模型评价: 相比传统方法,GFlowNet 以生成多样化、低相关性的优秀因子集合为核心目标,通过结构化学习实现有策略的高效探索,能有效避免模式崩溃,生成因子相关性低[1][13][17][45] 2. 模型名称:基于Transformer Actor-Critic结构的PPO强化学习(RL)模型 [2][39] * 模型构建思路: 将因子构建过程建模为序贯决策问题,智能体根据当前状态采取动作(如选择算子、特征),环境根据回测结果给出奖励,通过PPO算法优化策略以最大化长期预期奖励[12][39] * 模型具体构建过程: * 网络架构: 采用基于Transformer的Actor-Critic结构。Actor(策略网络)是一个多层感知机(MLP),输出选择各个动作的概率分布;Critic(价值网络)是一个平行的MLP,输出一个标量值,用于评估当前已构建公式的潜在收益[39] * 核心算法: 使用PPO(Proximal Policy Optimization)算法。价值损失(Value Loss)使用均方误差(MSE)衡量Critic预测的状态价值 V(s)V(s) 与实际回报的差距;策略优化部分引入熵奖励(Entropy Bonus) aπalogπa-\sum_a \pi_a \log \pi_a 鼓励早期探索[39][40][45] * 模型评价: 训练初期收敛速度较快,但容易发生模式崩溃(Mode Collapse),导致生成的因子高度同质化,相关性急剧上升至接近1,失去多样性[2][17][43] 量化因子与构建方式 1. 因子构建框架:GFlowNet因子挖掘系统 [2][32] * 构建思路: 设计一个允许程序自动组合数学算子、时间窗口和基础特征,以系统化生成和筛选有效因子的框架[1][32] * 具体构建过程: * 状态表示: 由两部分构成:一是对由operator/window/feature构成的表达式历史序列进行Transformer编码;二是3个手工状态特征:当前深度、已用算子比例、已用节点比例[32] * 动作空间: 定义为包含三类操作的扁平离散空间:1) operator(算子),共51个,涵盖一元、时序一元、二元、时序二元及截面算子;2) window(窗口),给时序算子选择窗口,共5个可选值;3) feature(叶子特征),数量根据具体设计变化[32][35] * 表达式组织: 以ExprNode树结构组织生成的表达式,并应用交换律排序、双重neg折叠等简化方法,使等价表达式归一为同一字符串,降低缓存重复[33] * 语法约束: 每一步仅允许执行“语法合法+不超复杂度上限”的动作。初始步强制选择算子(op);若当前节点等待窗口,则只能选择window;其他情况下可选择feature,且在不超限时可继续选择op[32] 2. 基础特征集(日频) [2][36] * 特征名称:原始OHLCV特征 [2][36] * 构建思路: 直接使用后复权的开盘价(Open)、最高价(High)、最低价(Low)、收盘价(Close)、成交量(Volume)数据作为基础特征输入[2][36] * 特征名称:无量纲相对特征 [2][36] * 构建思路: 对原始OHLCV数据进行处理,生成一系列无量纲的相对变化或比率特征,以降低价格和成交量水平以及拆分复权带来的尺度差异干扰[2][36] * 具体构建过程(部分举例): * ret_gap = open / pre_close - 1 (隔夜跳空幅度)[37] * ret_cc1 = close / pre_close - 1 (日收益)[37] * ret_co = close / open - 1 (日内涨跌)[37] * ret_hl = high / low - 1 (日内振幅比率)[37] * ret_range = (high - low) / pre_close (归一化振幅)[37] * ret_vol_chg1 = volume / delay(volume,1) - 1 (成交量日变化率)[37] 3. 基础特征集(分钟频) [4][68] * 特征名称:基于分钟量价数据构造的日频特征 [4][68] * 构建思路: 首先从日内分钟数据中计算约40个刻画价格动量、波动、价位关系、成交量分布等信息的指标,然后将这些日内指标降维聚合为日频特征,再输入到日频挖掘框架中进行因子搜索[4][65][68] * 具体构建过程(部分举例): * amihud_intraday:日内Amihud非流动性(收益/成交额)[69] * close_position = (close - low)/(high - low):收盘价在当日高低区间的位置[69] * intraday_trend:日内趋势斜率(回归slope)[69] * realized_vol:日内实现波动率[69] * ret_first30:开盘后30分钟收益[69] * ret_last15:收盘前15分钟收益[69] * vwap_close_dev:收盘价相对VWAP偏离[69] 4. 奖励函数设计 [2][37] * 构建思路: 为避免生成的因子过度暴露于小市值风格,对因子进行市值中性化处理后再计算其预测能力作为奖励[37] * 具体构建过程: 奖励(Reward)设定为因子经过市值中性化后的绝对值信息系数(abs(IC))[2][37] 5. 复合因子:等权合成因子 [4][76] * 构建思路: 将GFlowNet挖掘出的多个单因子,按照各自的因子方向(正负号)进行等权加权合成,形成一个综合因子[4][76] * 具体构建过程: 报告中将基于不同基础特征集(原始OHLCV、相对特征、分钟频特征)挖掘出的因子分别进行等权合成[76][77] 6. 复合模型:GRU+Mamba+GFlowNet集成模型 [5][90] * 构建思路: 在已有的基于GRU和Mamba2模型的深度学习选股框架中,额外加入GFlownet挖掘出的150个因子作为特征输入,以提升模型表现[5][90] 模型的回测效果 1. GFlowNet模型(对比RL) * Batch内因子相关性中位数: 低于 0.04 [2][43] 2. PPO强化学习(RL)模型(对比GFlowNet) * Batch内因子相关性中位数: 上升至 1 [2][43] 因子的回测效果 (测试区间:2018-2025年,全A市场,10日调仓)[38] 1. 基于原始OHLCV挖掘的单因子 [3][47] * IC均值中位数: 4.54% [3][47] * IC均值最大值: 8.56% [3][47] * 多头超额收益中位数: 3.47% [3][47] * 截面相关性均值: 15.73% [54] * 时序相关性均值: 19.24% [54] * 表达式平均长度(复杂度): 7.22 [59] 2. 基于相对特征挖掘的单因子 [3][61] * IC均值中位数: 6.17% [3][61] * IC均值最大值: 9.40% [3][61] * 多头超额收益中位数: 4.75% [61][62] * ICIR中位数: 0.58 [62] * 多空收益中位数: 33.90% [62] * 多空夏普比率中位数: 2.42 [62] 3. 基于分钟频构造特征挖掘的单因子 [4][70] * IC均值中位数: 5.83% [4][70] * IC均值最大值: 9.46% [4][70] * 多头超额收益中位数: 7.43% [4][70] * ICIR中位数: 0.57 [71] * 多头夏普比率中位数: 0.74 [71] * 多空收益中位数: 36.34% [71] * 多空夏普比率中位数: 2.77 [71] 4. 等权合成因子 [76][77] * 基于原始OHLCV特征合成: * RankIC: 10.83% [77] * ICIR: 0.81 [77] * 多头年化超额收益率: 17.35% [77] * 多头信息比率: 2.05 [77] * 多空年化收益率: 88.67% [77] * 多空夏普比率: 5.16 [77] * 基于相对特征合成: * RankIC: 11.64% [77] * ICIR: 0.82 [77] * 多头年化超额收益率: 10.22% [77] * 多头信息比率: 1.15 [77] * 多空年化收益率: 84.51% [77] * 多空夏普比率: 3.91 [77] * 基于分钟频特征合成: * RankIC: 12.25% [77] * ICIR: 0.85 [77] * 多头年化超额收益率: 16.08% [77] * 多头信息比率: 1.85 [77] * 多空年化收益率: 109.12% [77] * 多空夏普比率: 5.84 [77] 5. GRU+Mamba+GFlowNet集成模型 [90][94] * RankIC: 13.67% [94] * ICIR: 1.27 [94] * 多头年化超额收益率: 32.88% [94] * 多头信息比率: 3.87 [94] * 多头超额最大回撤: 7.83% [94] * 多空年化收益率: 166.31% [94] * 多空夏普比率: 10.21 [94]

Alpha掘金系列之二十二:基于GFlowNet的低相关性量价因子挖掘策略 - Reportify