PandaAI 第五周内测体验:因子挖掘功能让量化研究更高效
  user3190 16天前 228 0

前言

作为一名量化交易的爱好者和学习者,我一直在探索如何能够更高效地进行因子研究和策略开发。通过这次内测,我从一个完全不了解因子分析的小白,到现在能够独立搭建因子分析工作流,这个过程让我收获颇丰。今天想在这里分享我的完整体验过程和一些心得体会,希望能给同样对量化感兴趣的朋友们一些参考。


一、什么是因子挖掘?为什么重要?

在正式分享体验之前,我想先聊聊我对因子挖掘的理解。因子挖掘是量化投资中的核心环节之一。简单来说,因子就是能够预测股票未来收益的某种指标或特征。比如我们常说的「动量因子」,就是基于股票过去一段时间的涨幅情况来预测其未来表现。

一个好的因子可以帮助投资者:

  • 选股:从几千只股票中筛选出最有潜力的标的
  • 配置:决定不同股票应该分配多少权重
  • 择时:判断市场整体走势,做出买卖决策

传统的因子研究需要编写大量代码、处理数据、回测验证,门槛较高。而PandaAI提供的因子挖掘功能,通过可视化的方式让这个过程变得简单许多。


二、初识工作流界面

打开PandaAI的工作流编辑器,第一感觉是界面很清晰。左侧是节点库,分类做得很好:

  • 01-基础工具:包含公式输入、Python代码输入等
  • 02-特征工程:特征工程构建
  • 03-机器学习:LightGBM、XGBoost、CNN、LSTM等11种模型
  • 04-因子相关:这是本次的重点,有12个节点
  • 05-回测相关:股票回测、期货回测等

我注意到因子相关节点特别丰富,包括:

  • 线性因子构建
  • 因子分析
  • 因子大赛参赛节点
  • 多因子合并
  • 因子相关性分析
  • 因子构建(机器学习)

不仅支持股票还有专门的「因子分析(期货)」.

image.png


三、我的实操体验

第1步:构建基础工作流

我先创建一个空白工作流,然后向AI助手描述了我的需求:

“请帮我创建一个因子分析工作流:公式输入节点使用 rank(close)/rank(volume) 作为动量因子,然后连接线性因子构建节点,标的为沪深全A,时间范围近1年,最后连接因子分析节点进行分析”

等待一会,就能生成一个完整的工作流了,非常简单,最终成功生成了完整的工作流:公式输入 → 线性因子构建 → 因子分析 → 因子分析.结果如下图:
image.png

1. 公式输入节点
这是起点。我在这里输入因子计算公式,比如 rank(close)/rank(volume)。这个公式的逻辑很直观:计算收盘价的排名除以成交量的排名,本质上是考察「价升量涨」的股票是否还有上涨动力。

2. 线性因子构建节点
这个节点负责将公式计算的因子值转化为可分析的格式。需要设置:

  • 标的池:沪深全A(约5000只股票)
  • 时间范围:近1年

3. 因子分析节点
这是核心节点。我设置了三个关键参数:

  • 调仓周期:设置为5天,表示每5天重新计算因子并进行分组调仓
  • 分组数量:设为5组,每组约1000只股票
  • 因子方向:这个参数比较关键,后面会详细说

image.png

4. 因子分析结果节点
点击左上角的[启动工作流],没一会就能运行完整个工作流,点击查看因子分析结果,可以查看很多内容,比如展示了分层收益曲线和IC指标等。

image.png

第2步:理解三大参数

在实际操作中,我逐渐理解了这三个参数的含义:

调仓周期

就是多长时间调整一次持仓。设置5天意味着每5天会根据最新因子值重新分组并调仓。这个周期:

  • 越短,交易越频繁,成本越高
  • 越长,可能错过短期机会
  • 需要在成本和收益之间找平衡

分组数量

把股票分成多少组。这里设的是5组,每组大约1000只。分组数量的意义:

  • 分组越多,每组差异越明显
  • 分组越少,每组股票越多,差异可能被平均

因子方向

这是一个新手容易忽略的参数。它影响结果展示:

  • 选择0:展示第一组(因子值最小)的表现
  • 选择1:展示最后一组(因子值最大)的表现

它还会影响IC值的符号,所以设置错了方向,分析结果可能完全相反。


第3步:解读分析结果

工作流运行后,我学会了看两个关键指标:

分层曲线

这是我判断因子好坏的主要依据。如果各组曲线从高到低排列清晰(比如第一组收益最高,第五组最低),说明因子有很好的分层能力,选出来的股票确实有差异。

IC均值

IC(Information Coefficient)衡量的是因子预测能力:

  • IC > 0:因子为正向(因子值越大,未来收益越高)
  • IC < 0:因子为负向(因子值越小,未来收益越高)

如果发现IC为负,曲线走势也不对,可以调整因子方向。

调整因子方向

有两种方法:

  1. 在公式前加负号,如 -rank(close)/rank(volume)
  2. 修改因子分析节点的「因子方向」参数

我一般用第一种方法,直接在源头调整更彻底。


第4步:构建多因子组合

单因子往往只能捕捉市场的一部分特征,所以我尝试了多因子组合,继续跟AI助手沟通,让其给我修改工作流,

1. 准备多个单因子

“给我改为多因子:- 动量因子:rank(close)/rank(volume) 再给我增加两个因子,你给我向下,反正要稳定的,请注意3个因子作为3个输入.不是一个公式输入,而且每个因子后面接一个权重节点,自定义权重:动量因子:0.5 价值因子:0.3 质量因子:0.2,后面要接入合并因子,将所有带权重的因子连接至因子合并节点,生成复合因子值。同时也要有因子相关性分析:将合并前的多个单因子值连接至因子相关性分析节点,查看因子间的相关系数矩阵,避免多重共线性.将合并后的因子值连接至因子分析节点进行回测,得到复合因子的表现”

新生成的多因子工作流如下图:
image.png

注意哈,如果不接权重节点,默认等权相加。

2. 相关性分析

这是我觉得很实用的功能!把各单因子接到「因子相关性分析节点」,可以看到相关系数矩阵。

为什么要做这个?因为如果两个因子相关性很高(比如都反映市场流动性),放在一起没什么额外价值,还增加复杂度。通过这个分析可以避免无效的因子堆砌。


第5步:尝试机器学习

平台支持LSTM、XGBoost等机器学习模型挖掘非线性因子,这让我很感兴趣。

这个我是克隆了官方的XGBoost的示例工作流,如下图:
image.png
基本流程

  1. 准备基础数据:输入 closevolumeturnover 等特征
  2. 连接因子构建节点作为特征工程,指定训练集时间范围
  3. 接机器学习模型节点,设置参数
  4. 模型自动训练,输出预测值作为非线性因子
  5. 最后接因子分析节点评估

我从节点上修改不同的参数,然后进行多次回测.结果不错,如下图:
image.png

非线性因子可以捕捉线性方法难以发现的规律,比如特征之间的交互效应。虽然这次还没深入尝试,但已经列入学习计划。


第6步:参加因子大赛

完成了以上步骤后,如果发现自己的因子收益以较好,还可以把我们的因子提交到因子大赛,可以赢取丰厚的大奖哦.

首次提交需要提交个人信息(需要审核),之后就可以提交自己的因子了.需要注意,要在工作流中添加一个[因子大赛参赛节点],具体请看下面步骤:

images111.png

参赛流程

  1. 选择表现最好的分组(夏普比率最高的)
  2. 在[线性因子构建]节点后连接「因子大赛参赛节点」
  3. 确保参赛节点的参数与[因子分析]节点的参数一致
  4. 运行确保无报错
  5. 在因子大赛页面提交

images2222.png
每人最多可提交3个工作流。第三届大赛已经开启,我也打算试试水。


四、心得总结

做得好的地方

  1. 界面直观:节点分类清晰,拖拽操作符合直觉
  2. AI助手实用:大幅提升效率,减少重复工作
  3. 流程完整:从单因子到多因子,从线性到非线性,覆盖全面
  4. 机器学习集成:内置主流ML模型,门槛不高

可以改进的地方

  1. 文档不好找:希望官方的文档可以集中到知识库,并丰富教程.
  2. 节点错误不好修复:运行工作流的时候节点报错,不好修复,希望在报错日志那里添加一个一键修复,点击后,直接可以跟AI助手沟通.

结语

这次内测让我对因子挖掘有了全新的认识。PandaAI的工作流方式让量化研究变得简单许多,即使是新手也能快速上手。AI助手的加入更是让整个过程变得轻松高效。

如果你对量化投资感兴趣,强烈推荐试试这套系统。相信你也会发现,因子研究也可以很有趣。

最后,第三届因子大赛已经开启,欢迎大家一起参与,说不定下一个获奖的就是你!

最后一次编辑于 16天前 0

暂无评论

推荐阅读