AI量化策略开发第三步:找因子


(小Q) #1

导语:在第一步中我们通过证券代码列表模块确定好训练集和预测集的股票范围以及数据起止时间,本文介绍如何获取和计算因子数据。

如下图所示,找因子的步骤大致需要两个小步骤:一是先确定符合自己需求的特征组合列表,二是进行特征的抽取计算。

一、 特征列表模块

确定了股票集后和目标条件之后,现在需要通过特征列表模块把策略的关注的数据指标输入到策略中,下面我们就介绍如何添加特征列表并传入其他关联的模块中。

第一步: 在模块列表的 数据输入输出 下找到“ 输入特征列表 “ 模块并拖入画布。

第二步:点击选中输入特征列表,在属性栏特征数据文本框中编辑特征公式。


我们默认封装好的模块里初始化了13个特征条件:

  • return_n-表示“近n日收益率”;
  • avg_amount_0/avg_amount_5-表示“当日平均成交量和5日平均成交量比值”;
  • rank_avg_amount_0/rank_avg_amount_5-表示“当日平局成交量排名和5日平均成交量排名比值”;
  • rank_return_0-表示“当日收益率排名”;
  • rank_return_0/rank_return_5-表示“当日收益率和5日收益率比值”;
  • pe_ttm_0-表示“当日市盈率”。
    更多特征条件的表达式见文档-数据字典-因子库

第三步:通过模块之间的连线,将输入特征列表模块中的因子列表传入到训练集和预测集的特征抽取模块中,如下图示。

二、基础特征模块和衍生特征模块

这两个模块之间可直接进行串联,作为一组特征抽取模块。基础特征模块会解析特征列表模块中传入的基础因子并进行数据抽取,而衍生特征抽取模块则会根据抽取的基础因子对复杂的表达式进行运算求值。例如,我们在输入特征列表中输入’return_0+1’这个因子,那么首先会由基础特征模块解析并抽取return_0这个因子的数据,随后由衍生特征抽取模块计算return_0+1这个表达式的值作为因子值,最终返回列名为‘return_0+1‘的因子数据。

对于训练集与测试集而言,由于证券代码列表模块的时间段设置不同,因此各需要一组特征抽取模块。以训练集因子数据抽取流程为例:

第一步: 在模块列表的 特征抽取 下找到“ 基础特征抽取 “ 模块并拖入画布。

第二步: 将“输入特征列表”模块和“证券代码列表”模块的输出端与“基础特征抽取”模块的输入端连接,“基础特征抽取”模块和“输入特征列表”的输出端与“衍生特征抽取”模块的输入端连接。

第三步:点击选中“基础特征抽取”,在属性栏中对相应的配置进行编辑。

  • “开始日期”与“结束日期”,保持与前面对应的训练集一致;
  • “向前取数据天数”,可根据自己需求更改天数,例如:
    要计算5日的收益率之和因子sum(close_0,5)那我们至少要有5个交易日的close_0基础数据才能计算这个因子的值,考虑到这里填入的是自然日天数,可能会跨假期,那么这里可以填入20以保证因子计算能够得到有效的结果。

第四步:点击选中“衍生特征抽取”,在属性栏中保持默认配置即可。

image

结语:因子的构建在机器学习中也称为特征工程,对模型构建的效果至关重要。根据定义目标的不同,因子的选择与组合是各不相同。在金融市场中,单个的因子统计量也被认为是市场的一个信息流,根据因子值的变化进行投资也看做为一个投资策略。市场中能够持续稳定获取超额收益的因子也称为alpha因子,而无法产生持续稳定超额收益的因子一般也称为风险beta因子。优秀的因子通过组合可以实现预测效果的提升,因此说找到优秀的因子是AI策略质量的关键。

AI量化策略开发入门系列文章请查看:

1.AI量化策略开发第一步:设置训练集、测试集数据范围
2. AI量化策略开发第二步:数据标注
3. AI量化策略开发第三步:找因子
4. AI量化策略开发第四步:数据连接+缺失数据处理
5. AI量化策略开发第五步:模型训练+股票预测
6. AI量化策略开发第六步:回测
7. AI量化策略开发第七步:查看、分析结果
8. AI量化策略开发第八步:模拟实盘


AI量化策略开发第四步:数据连接+缺失数据处理
AI量化策略开发第五步:模型训练+股票预测
AI量化策略开发第二步:数据标注
AI量化策略开发第一步:设置训练集、测试集数据范围
AI量化策略开发第八步:模拟实盘
AI量化策略开发第六步:回测
【宽客学院】因子预处理