下面是小编为大家整理的机器因子库相对人工因子库增量(完整文档),供大家参考。
一、机器学习在 Alpha 模型中的应用
..................................................................... 4 二、遗传算法介绍
..................................................................................................... 5 三、技术类因子挖掘测试
......................................................................................... 6 1. 测试数据
............................................................................................................................... 6 2. 因子表达式
........................................................................................................................... 6 3. 适应度指标
........................................................................................................................... 7 4. 遗传规划参数设置
............................................................................................................... 8 5. 因子挖掘
............................................................................................................................... 8 6. 组合回测
............................................................................................................................. 12 四、财务类因子挖掘测试
...................................................................................... 15 1. 测试数据
............................................................................................................................. 15 2. 因子表达式
......................................................................................................................... 15 3. 适应度指标
......................................................................................................................... 17 4. 遗传规划参数设置
............................................................................................................. 17 5. 因子挖掘
............................................................................................................................. 17 6. 组合回测
............................................................................................................................. 20 五、总结
.................................................................................................................. 21 风险提示
.................................................................................................................. 22
图表目录
图 1:Alpha 模型框架
.............................................................................................................................. 4 图 2:公式树示例(depth=3,length=7)
............................................................................................ 6 图 3:叶子变量列表(技术类因子挖掘)
.............................................................................................. 7 图 4:节点函数列表(技术类因子挖掘)
.............................................................................................. 7 图 5:gplean 中 SymbolicRegressor 函数参数(技术类因子挖掘)
................................................. 8 图 6:技术类因子挖掘过程
..................................................................................................................... 8 图 7:遗传规划挖掘过程的公式进化情况(2019.12.31,技术类因子挖掘)
................................... 9 图 8:遗传规划挖掘出的技术类因子表现示例(2020.06.30)
....................................................... 10 图 9:传统技术类因子(22 个)
.......................................................................................................... 11 图 10:遗传规划挖掘出的技术类因子与人工技术因子的相关性分布情况
...................................... 11 图 11:组合回测步骤
............................................................................................................................ 13 图 12:随机森林模型参数调优(score = neg_mean_squared_error)
......................................... 13 图 13:Alpha 模型效果对比(2010.06.30-2020.06.30,技术类因子)
......................................... 14 图 14:节点函数列表(财务类因子挖掘)
........................................................................................ 15 图 15:叶子变量列表(财务类因子挖掘)
........................................................................................ 16 图 16:gplean 中 SymbolicRegressor 函数参数(财务类因子挖掘)
............................................ 17 图 17:财务类因子挖掘过程
................................................................................................................ 17 图 18:遗传规划挖掘出的财务类因子表现示例(2020.06.30)
..................................................... 18 图 19:传统财务类因子(21 个)
....................................................................................................... 19 图 20:遗传规划挖掘出的财务类因子与人工财务因子的相关性分布情况
..................................... 19 图 21:Alpha 模型效果对比(20100630-20200630,财务类因子)
............................................. 20
一、机器学习在
Alpha
模型中的应用
国内量化发展已有十余年,各家机构投资者的 A lp ha
因子库已有较大规模,这时面临的问题是,继续花时间和精力进行因子挖掘扩充因子库是否划算,还能带来多少增量收益。我们尝试将近年来兴起的机器学习算法应用到 A lp ha
模型上,进行低频层面的因子挖掘,考察机器因子库相对人工因子库的增量。
A lp ha
模型主要包括 A lp ha
因子库构建和 A lp ha
预测两部分,模型框架如图 1
所示。
A lp ha
因子库构建:
(1)
传统做法是从逻辑出发,寻找逻辑合理、IC 高、IR 稳定、长期表现优秀的因子,例如常见的估值、盈利、成长、波动率等,这种做法优点是因子逻辑清晰,有一定的理论支撑,缺点是因子数量有限,且存在失效的可能; (2)
机器学习做法是从数据出发,运用遗传规划等机器学习算法对原始股票数据进行特征挖掘,建造一个大型 Alpha
因子库。这种做法的优点是:
1 .将因子挖掘完全交给机器,简单易行; 2 .挖掘出的因子数量众多,只要计算机硬件资源支持,便可以源源不断产生有效因子。虽然挖掘出的因子逻辑较难解释,但大量能贡献独立有效 Alpha
信息的因子组合在一起,仍可以帮助我们获得一个比较稳定的组合收益。缺点是存在数据过拟合的风险,因子在样本外可能失效。
A lp ha
预测:
(1)
传统做法是采用线性预测的方法,从初始 Alpha
因子库开始,需要经历因子分类、大类因子加权和 ZSCO RE
转收益率三个步骤; (2)
机器学习做法是采用随机森林等非线性模型,直接对初始 Alpha
因子库进行训练,得到预期收益率。相对于线性工具,机器学习模型的非线性模型最大的优势在于对抗多重共线性问题,可以容纳较多数量的因子参与训练生成模型,且模型拟合度高,有助于提升预测性能。
图 1:Alpha 模型框架
Alpha因子库构建
Alpha
预测
数据来源:东方证券研究所
初始 Alpha 因子库 因子分类 因子加权 线性转换 预测收益率 随机森林模型 大类 Alpha因子 多因子 zscore 算法挖掘 投资逻辑 初始数据库 数据处理 因子构建 选股指标 备选因子库 IC 检验 情绪因子财务因子技术因子 ……
本文首先利用遗传规划算法进行因子挖掘,再将机器因子库与人工因子库通过随机森林模型转换为预测收益率,从组合层面进行因子库效果的整体比较。
(1)
比较的是整体因子库得到的预期收益率:从单个因子层面对比机器因子和人工因子的表现意义不大,我们的做法是采用随机森林模型,将两个 A lpha
因子库分别转化为预期收益率,再进行组合构建回测,从组合层面来比较整体机器因子库和人工因子库的表现。
(2)
将技术类因子库和财务类因子库分开对比:由于技术因子和财务因子的历史表现差别比较大,技术因子整体更强一点,所以如果将技术因子和财务因子合在一起,放入 机器学习模型中进行 Alpha
预测的话,机器会明显偏好技术类因子,我们将这两类因子的挖掘和对比分开进行。
(3)
机器因子库实行动态更新:由于机器挖掘出的因子存在样本内过拟合的可能,所以我们采用动态更新机器因子库的方式,每半年进行一次因子挖掘,更新因子库,使得样本外使用的因子保持最新的状态。
二、遗传算法介绍
机器学习挖掘选股因子时,最常用的做法是借助遗传规划算法。遗传规划是一种启发式的进化策略算法,主要想法是模拟自然界中生物遗传进化过程,从随机生成的公式种群开始,通过不断变异优化,逐渐生成适应度更优的公式群。下面简单对遗传算法和遗传规划的概念进行介绍。
遗传算法(G enetic
A lgorith m , GA )是进化算法的重要分支,最早是由美国密歇根大学的 J ohn hol la nd 教授于 20
世纪 70
年代提出,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法以生物学的遗传和进化理论为基础,用二进制字符串表示所研究的问题,运用一系列复制、交换、突变等遗传操作,通过迭代逐步搜索最优解。
为了克服遗传算法不能描述层次结构、不能描述计算机程序等缺陷,美国斯坦福大学的 J ohn R.
Koz a
教授于 1992
年提出了遗传规划(G e n etic
Programm ing,
GP)算法。遗传规划用层次化的计算机程序(算法树)代替字符串表达问题,具有动态可变的结构和大小,可以用于求解最优的解结构,是遗传算法的推广和更一般地形式。有关算法的原理和细节在此不多赘述,下面仅介 绍算法基本流程。
基于遗传规划算法进行选股因子挖掘的基本流程如下:
(1)
初始化种群:将因子的计算公式表示成树形结构,预先设置函数集和指标集,进行随机组合生成一系列因子表达式,作为第一代种群集合; (2)
计算适应度:按照一定的目标函数评估种群中个体的适应度; (3)
选择:从第一代种群集合中,选出适应度较优的一群个体作为下一代进化的父代; ( 3 )进化:被选择出的父代,通过表达式树结构的剪枝、交叉和叶节点突变等操作实现进化,生成子代表达式,然后继续选择子代中适应度较优的一群个体作为父代继续进化。重复选择与进化 步骤,经历 N
代后,最终寻找出适应度更优的公式群。
三、技术类因子挖掘测试
首先,我们基于原始日频量价数据进行月频技术类因子的挖掘测试。
P y thon
中的 gpl earn
是目前最成熟的遗传规划包之一。但 gplearn
存在不能直接处理多维面板数据、不能进行时间序列运算等问题,所以不能直接运用于选股因子的挖掘,为此,我们将 gplearn的底层代码进行了修改,使其可以进行选股因子挖掘。如需要修改后的 gplearn
代码包,可以与报告作者联系。
1. 测试数据 股票池:剔除上市不满 6
个月及所有 ST、 *S T、PT、暂停上市等特别处理股票后的全部 A 股,剔除停牌股当天数据。
回测区间:
2010 . 06 . 30
– 2020 . 06 . 30
预测目标:个股未来 20
个交易日的收益率。
2. 因子表达式 遗传规划中的因子表达式一般表示成二叉树的形式,如图
2
所示。公式的输出值可以用递归的方法求得。二叉树的内部节点是函数,叶子是变量或者常数,具体取决于函数设置。
(1)
叶子变量:个股日频的量价数据,共 7
个,如图 3
所示。量价数据需要进行量纲调整。
(2)
节点函数:分为元素运算函数和自定义的截面运算函数两类,共 21
个,如图 4
所示。元素运算函数例如加减乘除运算,直接取两个变量对应位置上的元素进行计算即可,而截面运算函数需要在同一个截面上计算,部分截面函数还需要进行时间序列滚动运算。滚动运算的截面函数需要在变量中添加一个常数,常数取值从 1
到 20 ,即最多使用过去 20
天的信息进行运算。此外,需要注意函数的可容性问题,避免运算结果溢出或出错。
图 2:公式树示例(depth=3,length=7)
数据来源:东方证券研究所
&
gplearn ( https://gplearn.readthedocs.io )
图 3:叶子变量列表(技术类因子挖掘)
adjopen 个股日频复权开盘价 adjclose 个股日频复权收盘价 adjhigh 个股日频复权最高价 adjlow 个股日频复权最低价 adjvwap 个股日频复权成交量加权平均价
adjvolume ...