因子发掘-单多机器学习因子测试
单因子构建
- 自然对话AI助手工作流生成提示词:帮我生成一个股票单因子工作流,因子构建使用动量因子,用公式输入,需要包含因子结果分析
指标分析:
因子方向为1,对应分组测试的第5组。因子方向为0,则应对第1组。
IC_mean=-0.0719,截面 IC 的平均值代表因子和未来收益的平均相关性,
绝对值越大越好,正代表 “因子大→未来涨”,负代表 “因子大→未来跌”
IC_IR = -0.4766:负向 IC_IR,代表因子不仅无效,还会稳定地给出反向信号;>0.5 合格,>1 优秀;
IR=-5.1419多空组合(组 5 - 组 1)的信息比率,衡量多空策略的风险收益比>0.5 合格,>1 优秀;负数代表多空策略亏钱;
分组解读,
组 1(因子最小)年化收益率28.38%,超额收益率17.35%,说明过去 120 天跌最多的股票,未来涨得最好;
组 5(因子最大)年化收益率-6.22%,超额收益率-17.24%,说明过去 120 天涨最多的股票,未来跌得最惨;
本意做一个动量因子,但是从目前回测结果来看,实际上是一个趋势反转因子。
验证指标变化及优化过程
1-因子方向改变,刚刚回测指标已经表面是负向因子,所以把因子方向改为0,特别注意一下IC为负,如果只改变因子方向只会影响分组排序。如果需要让IC变成正需要将因子构建里面的公式/代码加上“-”号。
2-调整调仓周期,增加分组测试
3-根据回测结果,在A股市场中RANK(RETURNS(CLOSE,120))已经不具备动量趋势延续作用,缩减周期
4-测试不同构建时间影响,考虑市场周期变化
验证结果反馈
1-IC_mean=由-0.0719变成0.0730变为正了,改变因子方向,分组因子值从由小到大,改为由大致小。
2-增加了3组分组,调仓周期改为10,RANK(RETURNS(CLOSE,120))改为RANK(RETURNS(CLOSE,60)),其结果60日动量因子是正向有效、分层干净、统计显著的
3-因子构建时间由2401-2412改为2501-2512,回测结果如下:
2025 年样本下,60 日动量因子从「纯动量」变成了「中强动量 + 弱反转」,最优组从组 8 变成了组 7,整体收益更高但预测稳定性下降。
多因子构建
提示词-提示词结构详细学习了酥派大神的设定
- 帮我生成一个股票多因子工作流框架,要求完整可运行、无未来函数、无因子共线性,具体细节如下:
- 品种范围:A股;
- 回测频率:日线级
- 因子配置:构建线性多因子组合,包含 4 类核心因子 —— 动量因子、波动率因子、趋势因子,风险因子,输入支持公式或 Python 代码(优先公式输入,避免 Python 报错),需明确各因子的计算逻辑,禁止使用非线性因子、避免因子功能重复(防止共线性);
- 工作流节点:必须包含完整节点,按顺序排列 —— 公式输入→ 线性因子构建→ 权重节点→ 相关性分析→ 因子分析→ 核心要求:避免未来函数、避免因子共线性,工作流运行无报错(适配平台规则,避免出现 10028、10070 等报错)
多因子输出构建-无加权工作流节点,这里补充上去默认都是1平权,权重分配因子组合,
使用上图这个工作流会有一个问题,在相关性分析中全是1,没办法细分因子
所以又重新把公式拆分为4个因子单独构建,最总回测结果如下
相关性分析
factor1 与 factor3 的相关性约 0.24,
factor1 与 factor2 约 0.09、factor2 与 factor3 约 0.04,基本接近弱相关;
factor4 与前三个因子相关性都在 |0.06| 以内,可视为相对独立维度。”。
指标分析:
IC_mean≈-0.053、Rank_IC≈-0.07,且 P(IC<-.02)≈52%,P(IC>0.02)≈27%。也就是说,高因子值往往对应未来“更差”的收益,因子本身是“负向有效因子”。
IC_mean|>0.05、|Rank_IC|>0.05,IC_IR 绝对值约 0.44,说明这个因子组具有比较稳定且显著的预测能力,只是方向应该取反,高组做空/低组做多才合理。
IR 约 -3.78,说明在长期回测窗口上,超额收益的 t 统计显著为负,也间接印证了“方向反了”。
综合来看,这是一个收益显著为负但非常稳定的反向因子
验证指标变化及优化过程
- 与文章内单因子同类问题,改变因子方向,改变公式。这个因子组合由4个因子组成,分别进行IC值测试,查看每个因子收益反向。
- 调整调仓周期,增加分组测试
- 改变权重占比
- 拉长因子构建时间
验证结果反馈
- 通过对4个因子分开独立分析,“factor1-factor3”IC_mean为负,“factor4”IC_mean为正。IC_mean提升为正0.046
- 调整调仓时间,回撤大幅收敛,回测从36.78%降低至14.04%
- 增加短期动量,波动权重,降低趋势及风险
- sharp提高
机器学习因子组合多因子
工作流构建-偷懒了个懒在多因子的基础上冲了向量机SVM模型如下添加ML因子
验证结果反馈
收益 / 风险几乎无损失,用小幅样本内显著性下降,换取更强的样本外泛化能力,更适合实盘。
添加因子大赛节点
注意调仓周期与因子方向
本次测试bug汇总
- 工作流自动生成的节点,在逻辑正常的时候也会报错。但是如果把报错相关节点删除,重新从节点库里拉取则可以运行正常
- 专家模式自定义节点名字超长,导致节点库编辑界面被遮挡无法操作
- 超参节点运行时间过长,被迫手动取消,之前测试还都是正常的。