金融工程专题 2023年08月06日 遗传算法赋能交易行为因子 金融工程研究团队 ——市场微观结构研究系列(20) 魏建榕(首席分析师) 魏建榕(分析师)盛少成(分析师) 证书编号:S0790519120001 张翔(分析师) weijianrong@kysec.cn 证书编号:S0790519120001 shengshaocheng@kysec.cn 证书编号:S0790523060003 证书编号:S0790520110001 傅开波(分析师) 证书编号:S0790520090003 高鹏(分析师) 证书编号:S0790520090002 苏俊豪(分析师) 证书编号:S0790522020001 胡亮勇(分析师) 证书编号:S0790522030001 王志豪(分析师) 证书编号:S0790522070003 盛少成(分析师) 证书编号:S0790523060003 苏良(分析师) 证书编号:S0790523060004 何申昊(研究员) 证书编号:S0790122080094 陈威(研究员) 证书编号:S0790123070027 蒋韬(研究员) 证书编号:S0790123070037 相关研究报告 《因子切割论—市场微观结构研究系列(10)》-2020.9.16 《A股反转之力的微观来源—市场微观结构研究系列(1)》-2019.12.23 开源金工特色遗传算法简介 在算子部分,我们引入了4大类算子,第一大类为横截面算子,其中除了较为常见的基本运算符,我们考虑了“回归算子”,这个算子是大小单残差因子的来源;第二类为时序算子,我们创新性的引入了“切割算子”,其是我们的招牌因子理想反转、理想振幅等的来源;第三大类是横截面和时序算子的结合,这一类组合算子的加入可以减少公式长度的同时涵盖更多信息;第四大类为逻辑判断,其可以进行变量的状态转化。 在变量部分,我们引入了日内量价、日间量价以及资金流相关指标,细分指标里除了基本统计指标,我们也融入了些特色指标,部分指标进行了标准化处理。在遗传算法的具体流程上,我们从个体初始化到初始种群的生成,再到选择、交叉、变异,每一步都做了对应的针对性改写,使其更加高效的进行因子挖掘。 遗传算法挖掘出的因子结果展示 经过一轮完整的迭代,我们得到了近200个有效因子,进一步地,我们选取样本内RankICIR大于3.5的个体,并将其合成,综合因子全区间RankICIR为5.52,效果非常亮眼。除此之外,我们在挖掘出的因子中进一步精筛,选取了8大因子进行后续的逻辑解释和衍生测算,对我们已有的人工因子库为有效的补充。 沙里淘金:部分因子的再探究 1、我们解决了超大单好看不好用的痛点,发现“小单切割”是其关键的因素, 其中在小单强度较高处,超大单强度呈现正IC,而在小单强度较低处却呈现出负IC。针对于这一现象,我们从行为金融学角度出发,引出了超大单关注度效应,是对我们以往资金流研究的重要补充,该因子RankICIR为2.88,5分组多空收益波动比为2.63,月度胜率为82.4%; 2、针对于理想反转和理想振幅而言,我们发现了替代的形式,丰富了收益率和振幅改进的手段,其中将振幅替换为日内分钟收益波动,绩效有进一步的提升,RankICIR由-3.58提升至-4.08; 3、我们利用日内分钟特征如分钟收益波动、分钟量价相关性、分钟标准成交量波动,并结合算子“日间时序极差”定义了交易情绪不稳定性因子,该因子表现 较为出色,RankICIR为-3.43,5分组多空收益波动比为3.35,月度胜率为84.2%,是对传统振幅波动率因子很好的改进; 4、类似于散户羊群效应中“时序相关性”算子,我们发现振幅与分钟收益波动以及分钟标准化成交量波动的相关性因子效果较好,将两个因子合成后定义了主力控盘能力因子,该因子的绩效为RankICIR为2.82,5分组多空收益波动比为2.46,月度胜率为80.7% 风险提示:本报告模型基于历史数据测算,市场未来可能发生重大改变。 金融工程研究 金融工程专题 开源证券 证券研究报 告 目录 1、开源金工特色遗传算法框架4 1.1、算子的赋予:创造性引入切割算子4 1.2、变量的遴选:大小单资金流、日内分钟特征、日间特征5 1.3、遗传算法流程:针对性的改写5 2、遗传算法的因子挖掘成果举例6 2.1、遗传算法优选综合因子表现优异6 2.2、沙里淘金:遵循“可解释”理念7 3、因子3的精细化讨论8 3.1、主动超大单强度效果不佳8 3.2、“小单强度”切割“主动超大单强度”敏感性分析8 3.3、“小单强度”切割“全部超大单强度”敏感性分析9 4、因子4的精细化讨论11 4.1、切割算子部分的讨论11 4.2、时序极差算子14 5、因子8的精细化讨论15 6、风险提示16 图表目录 图1:开源金工特色遗传算法整体流程6 图2:遗传算法优选综合因子回测曲线较为优异7 图3:主动超大单强度5分组年化收益不单调8 图4:不同�值下𝐸𝑋𝐿𝐴𝐶𝑇_ℎ𝑖𝑔ℎ(𝜆)和𝐸𝑋𝐿𝐴𝐶𝑇_𝑙𝑜𝑤(𝜆)的RankICIR绩效9 图5:主动超大单关注度因子多空收益波动比为2.089 图6:主动超大单关注度因子5分组年化收益单调9 图7:不同�值下𝐸𝑋𝐿_ℎ𝑖𝑔ℎ(𝜆)和𝐸𝑋𝐿_𝑙𝑜𝑤(𝜆)的RankICIR绩效10 图8:超大单关注度因子多空收益波动比为2.6310 图9:超大单关注度因子5分组年化收益单调10 图10:因子4原始公式的拆分11 图11:日内分钟收益波动5分组年化收益不单调12 图12:不同�值下𝑉𝑀_ℎ𝑖𝑔ℎ(𝜆)和𝑉𝑀_𝑙𝑜𝑤(𝜆)的RankICIR绩效12 图13:𝑉𝑀_𝑑𝑖𝑓�因子多空收益波动比为2.8313 图14:𝑉𝑀_𝑑𝑖𝑓�因子5分组年化收益单调13 图15:在多空IR值上𝑉𝑀_𝑑𝑖𝑓�略胜于理想振幅13 图16:交易情绪不稳定因子多空收益波动比为3.3514 图17:交易情绪不稳定因子5分组年化收益单调14 图18:主力控盘能力因子多空收益波动比为2.4616 图19:主力控盘能力因子5分组年化收益单调16 表1:四大类算子列示(部分)5 表2:3大类变量列示(部分)5 表3:遗传算法优选综合因子在不同股票域的测试结果皆较为优秀7 表4:遗传算法精筛因子明细7 表5:超大单关注度因子在其他样本空间依然具有一定选股能力10 表6:超大单关注度因子与传统Barra因子相关性不高11 表7:超大单关注度因子与已有资金流因子相关性也不高11 表8:因子4的公式定义11 表9:相较于理想反转,标准化的分钟成交量波动也可改进传统反转因子13 表10:时序极差ts_max_to_min的应用14 表11:交易情绪不稳定性因子在其他样本空间依然具有一定选股能力15 表12:交易情绪不稳定性因子与传统Barra因子相关性不高15 表13:时序相关性算子ts_corr的应用15 表14:主力控盘能力因子在其他样本空间依然具有一定选股能力16 表15:主力控盘能力因子与传统Barra因子相关性不高16 相较于传统人工挖掘因子而言,遗传算法和神经网络是当下较为流行的挖掘因子的机器学习模型。其中遗传算法的优点在于公式的可视化,每个因子均可用算子树的形式展现,供我们在有一定变量和算子储备的前提下,最大程度的找到蕴含在背后的有效因子。本篇报告以遗传算法为基础,结合我们已有的特色变量和算子,尝试了量价因子的挖掘,具体从如下3大部分展开。 在第一部分,我们介绍了遗传算法框架。其中在算子部分,我们创新性地引入了切割算子,其是我们的招牌因子理想反转、理想振幅等的来源;在变量部分,我们引入了日内量价、日间量价以及资金流相关指标;在遗传算法的具体流程上,我们从个体初始化到初始种群的生成,再到选择、交叉、变异,每一步都做了对应的针对性改写,使其更加高效的进行因子挖掘。 在第二部分,经过一轮完整的迭代,我们得到了近200个有效因子,进一步地,我们选取样本内RankICIR大于3.5的个体,并将其合成,综合因子全区间RankICIR为5.52,效果非常亮眼。除此之外,我们在挖掘出的因子中进一步精筛,选取了8大因子进行后续的逻辑解释和衍生测算,对我们已有的人工因子库为有效的补充。 在第三部分,我们把目光聚集在了第二部分筛选出的8大因子,尝试从逻辑对其进行了一定程度的解释。第一,我们解决了超大单好看不好用的痛点,发现“小单切割”是其关键的因素,定义了超大单关注度因子,是对我们以往资金流研究的重要补充;第二,针对于理想反转和理想振幅而言,我们发现了替代的形式,丰富了收益率和振幅改进的手段;第三,我们利用日内分钟特征如分钟收益波动、分钟量价相关性,并结合算子“日间时序极差”定义了交易情绪不稳定性因子,是对传统振幅波动率因子很好的改进;第四、类似于散户羊群效应中“时序相关性”算子,我们发现振幅与分钟收益波动、以及分钟标准化成交量波动的相关性因子效果较好, 进一步发现了时序相关性的更多可能。 1、开源金工特色遗传算法框架 1.1、算子的赋予:创造性引入切割算子 这里我们引入了4大类算子,第一大类为横截面算子,其中除了较为常见的基本运算符,比如加、减、乘、除等之外,也引入了“回归算子”,这个算子在《大单与小单资金流的alpha能力》中帮助挖掘出了大小单残差因子。 第二类为时序算子,这里我们引入了“开源金工特色切割算子”,该算子已经用在了我们很多的独家因子发掘上了,比如理想反转、理想振幅等,该算子最核心的思想即:面对分布不均匀的市场信息,切割是剖析精细结构、寻找最优变量的有效方法。 第三大类是横截面和时序算子的结合,这一类组合算子的加入有两点好处:1、减少公式长度的同时涵盖更多信息;2、丰富算子多样性。 第四大类为逻辑判断,例如sign函数,该类算子和前三类都有所不同,其将某种变量转化为某种状态。除此之外,我们自定义了diff_sign算子,相较于sign衡量的绝对状态,其更多衡量的是相对状态。 大类例子说明 表1:四大类算子列示(部分) 横截面 时序 切割算子 基本运算符add、sub、mul、div等 ols(x,y)使用y回归x取残差 基本运算符ts_sum、ts_mean、ts_median、ts_corr、delay等rolling_selmean_btm(x,y,d,n)在过去d日上,根据y的值对x进行排序,取最小n个x的平均值rolling_selmean_top(x,y,d,n)在过去d日上,根据y的值对x进行排序,取最大n个x的平均值 在过去d日上,根据y的值对x进行排序, rolling_selmean_diff(x,y,d,n) 取最大n个x的平均值与最小n个x的平均值的差值 横截面和时序结合 逻辑判断 资料来源:开源证券研究所 ts_max_to_min(x,d)在过去d日上,对变量x时序求最大值和最小值,并做差 ts_meanrank(x,d)先对变量x横截面排序,然后在过去d日上取均值 sign(x)x>0,返回1;x<0,返回-1;x=0时,返回0diff_sign(x,d)先计算x与过去d日均值的差,再使用sign函数 1.2、变量的遴选:大小单资金流、日内分钟特征、日间特征 对于变量而言,我们选取了3大类变量,第一大类为大小单资金流,包含全部和主动的超大单、大单、中单、小单,为了消除量纲的影响,这里我们对其进行了时序标准化处理;第二大类为日内分钟特征,基本统计指标如分钟收益波动等,除此之外我们也加入了一些衍生特色指标,比如分钟极端收益、分钟聪明度等;第三大类为日间特征,基本统计指标如行情数据,在此基础上我们也对其进行了一定加工,形成比如隔夜及日内收益、单笔成交金额等。 大类例子说明 表2:3大类变量列示(部分) 大小单资金流日内分钟特征 日间特征 资料来源:开源证券研究所 时序标准化的全部资金流含有超大单、大单、