摘要:
本文利用遗传规划算法在商品期货上挖掘了5个具有较好选期能力的截面alpha因子,并回测了其在全样本上的表现。回测结果如下: Alpha1:年化收益:9.32%,年化波动:5.42%,夏普:1.72,最大回撤:4.15%,卡玛比率:2.25; Alpha2:年化收益:11.07%,年化波动:7.00%,夏普:1.58,最大回撤:6.05%,卡玛比率:1.83; Alpha3:年化收益:10.24%,年化波动:7.74%,夏普:1.32,最大回撤:9.86%,卡玛比率:1.05; Alpha4:年化收益:9.35%,年化波动:7.41%,夏普:1.26,最大回撤:8.16%,卡玛比率:1.15; Alpha5:年化收益:8.40%,年化波动:7.11%,夏普:1.18,最大回撤:9.00%,卡玛比率:0.93; 回测下来,由遗传规划算法挖掘出来的因子在样本内外均具备一定的有效性,表明利用遗传规划可以帮助我们归纳并总结出具有一定alpha能力的因子。 风险提示:本报告中所涉及的资产配比和模型应用仅为回溯举例,并不构成推荐建议 研究报告全文:中信期货研究金融工程专题报告2023-03-13利用遗传规划挖掘商品期货截面因子投资咨询业务资格证监许可2012669号期货多因子系列七中信期货商品数中信期货年期期货数中信期货期货数中信期货商品数报告要点本文详细介绍了遗传规划算法的原理以及如何使用它进行因子挖掘具体到实操流程上我们使用到了内Python中专门实现遗传规划的gplearn包进行代码容实现XXXX在对gplearn包进行修改优化后我们以2016至2022年作为输入数据在商字号五号品期货上挖掘了5个具有较好选期能力的截面alpha因子并回测了其在全样本上的表现中文统回测结果表明遗传规划挖掘出的因子在样本内外均具备一定的有效性一为黑体金融工程研究团队摘要英文数字研究员周通统本文一为利用遗传规划算法黑在商品期货上挖掘了5个具有较好选期能力的截面alpha因子010-80401733体字体从业资格号F3078183并回测了其在全样本上的表现回测结果如下投资咨询号Z0018055颜色Alpha1年化收益932年化波动542夏普172最大回撤415卡RGB000段前玛比率0225行段后0Alpha2年化收益1107年化波动700夏普158最大回撤605卡行多倍行玛比率183距115Alpha3年化收益1024年化波动774夏普132最大回撤986卡玛比率105Alpha4年化收益935年化波动741夏普126最大回撤816卡玛比率115Alpha5年化收益840年化波动711夏普118最大回撤900卡玛比率093回测下来由遗传规划算法挖掘出来的因子在样本内外均具备一定的有效性表明利用遗传规划可以帮助我们归纳并总结出具有一定alpha能力的因子风险提示本报告中所涉及的资产配比和模型应用仅为回溯举例并不构成推荐建议重要提示本报告难以设置访问权限若给您造成不便敬请谅解我司不会因为关注收到或阅读本报告内容而视相关人员为客户市场有风险投资需谨慎中信期货研究金融工程专题报告目录摘要1一因子挖掘方法论4一遗传算法与遗传规划简介4二适应度函数5三公式树的进化方式51杂交变异52子树变异63Hoist变异64点变异7四gplearn的使用与改进71参数说明与设置72gplearn的改进9二截面选期因子挖掘流程与结果10一截面选期因子挖掘流程101样本选择与回测细节102使用gplearn进行因子挖掘11二截面选期因子挖掘结果及整体回测结果12三截面选期因子回测表现及简单归因131Alpha1因子132Alpha2因子143Alpha3因子154Alpha4因子165Alpha5因子17三总结与思考18四附录20图表目录图表1遗传算法图解4图表2公式树图解5图表3杂交变异示意图6图表4子树变异示意图6图表5Hoist变异示意图7图表6点变异示意图7图表7SymbolicTransformer参数说明与设置8图表8简单交叉验证示意图10图表9商品品种选择11图表10Alpha因子挖掘结果12图表11Alpha因子回测结果样本内12图表12Alpha因子回测结果样本外12图表13Alpha因子回测结果全样本12图表14Alpha1分层回测净值13图表15Alpha1RankIC表现13请务必阅读正文之后的免责声明222中信期货研究金融工程专题报告图表16Alpha1多空组合净值13图表17Alpha2分层回测净值14图表18Alpha2RankIC表现14图表19Alpha2多空组合净值14图表20Alpha3分层回测净值15图表21Alpha3RankIC表现15图表22Alpha3多空组合净值15图表23Alpha4分层回测净值16图表24Alpha4RankIC表现16图表25Alpha4多空组合净值16图表26Alpha5分层回测净值17图表27Alpha5RankIC表现17图表28Alpha5多空组合净值17图表29算子函数集20请务必阅读正文之后的免责声明322中信期货研究金融工程专题报告一因子挖掘方法论在我们之前的期货多因子系列报告中各类因子往往是基于一定的经济学逻辑或是历史经验人工构造出来的如经典的截面动量因子就是我们认为资产之间的相对强弱关系会延续动量效应那么依据强者恒强弱智恒弱的逻辑我们就可以构造出动量因子这样的构建因子的方式属于先有逻辑后有公式的演绎法在因子构建过程中还有一种方式即我们可以先通过机器学习的方法将大量的历史数据与收益率序列相拟合生成海量因子再从中归纳总结出背后的逻辑这种方式就属于先有公式后有逻辑的归纳法在归纳法法中遗传规划作为一种仿生启发式算法在我们对目标因子知之甚少的情况下可以帮助我们挖掘因子它的优在于通过启发式的搜索可以挖掘出人工难以构造复杂的因子本节我们将重点介绍遗传规划算法以及如何使用Python的gplearn包进行因子挖掘一遗传算法与遗传规划简介遗传算法GeneticAlgorithm最初由美密歇根大学的JHolland提出是一种通过模拟自然界生物进化过程物竞天择适者生存搜索最优解的算法其本质上也是一种监督学习算法对于一个最优化的问题它借鉴了生物学中的现象遗传突变杂交等使一定数量的初始解按照适应度的方向进化为更优的解进化过程从完全随机生成的个体种群开始一代代进化每一代中会基于个体的适应度筛选出较优个体并在个体中发生变异进化进而生成新的种群新种群则继续进行迭代直至生成最优适应度最高种群图表1遗传算法图解资料来源中信期货研究所请务必阅读正文之后的免责声明422中信期货研究金融工程专题报告遗传规划遗传编程GeneticProgamming是遗传算法中的一个分支相较于遗传算法它最大的不同在于将进化对象编码成树而不是简单的线性串得益于此遗传规划可以表达更为复杂的语义下图简单展示了在遗传规划算法中22可以作为进化个体的公式树0110999图表2公式树图解资料来源gplearn中信期货研究所我们沿着公式树从下往上即可还原整个公式其中红色的节点表征函数其他的粉红色叶子则表征变量和常数在因子挖掘过程中公式树也可以视作我们的因子表达式所以公式树的进化过程实际上就是挖掘因子二适应度函数适应度函数用来计算每一代种群中个体的适应度适应度则衡量了个体与最终的目标个体的相符程度每一代进化过程中只保留适应度较高的个体作为后续进化的种群适应度较低的个体则被淘汰从因子挖掘的角度来说我们可以使用用来评判因子有效程度的标做为个体适应度如使用因子的RankICRankICIR可以挖掘与未来收益率相关程度较高的线性因子互信息Mutualinformation可以用来挖掘与识别非线性的因子或是直接使用因子回测后的夏普率sharperatio作为适应度三公式树的进化方式1杂交变异杂交变异是遗传规化中的主要变异方式是将两个个体中的遗传物质进行混合交换在公式树进化过程中杂交变异需要选择两个种群其中一个种群中的最高适应度个体作为父代从父代中随机挑选一个子树以待替换并从另一个种群中随机挑选一个个体作为捐赠者也从捐赠者中随机挑选一请务必阅读正文之后的免责声明522中信期货研究金融工程专题报告个子树用以替换父代中的子树最终生成的公式树用以后续进化图表3杂交变异示意图资料来源gplearn中信期货研究所2子树变异子树变异是一种更为激进的变异方式称它更激进是因为子树变异如同对公式树进行移植手术般直接将公式树中的子树替换成最初生成的随机子树这样做可以将已经淘汰的子树重新引入进化过程中以增强遗传物质的多样性图表4子树变异示意图资料来源gplearn中信期货研究所3Hoist变异Hoist抬升变异也是一种较为激进的变异方式主要是为了防止公式树过于臃肿庞大而对公式树中的随机子树进行截断并保留子树中的一小部分用以替换原子树请务必阅读正文之后的免责声明622中信期货研究金融工程专题报告图表5Hoist变异示意图资料来源gplearn中信期货研究所4点变异点变异是遗传规划中最常见的变异方式与子树变异类似都是为了增添遗传物质的多样性而将过去淘汰的节点重新引入进化过程中不同于子树变异激进的变异方式点变异较为温和仅仅只替换公式数中的随机某个节点而不是整个子树图表6点变异示意图资料来源gplearn中信期货研究所以上即为公式树的主要变异方式它们四者的概率之和应小于1从因子的可解释性角度来说我们应该尽量减少因子挖掘过程中子树变异Hoist变异与点变异的概率而提升杂交变异概率这么做的目的也是为了防止因子表达式过于难以解释四gplearn的使用与改进1参数说明与设置本文主要通过Python中的专门实现遗传规划的gplearn包进行商品期货的截面因子挖掘有关gplearn的详细介绍感兴趣的读者可以查阅官方文档httpsgplearnreadthedocsioenstable请务必阅读正文之后的免责声明722中信期货研究金融工程专题报告gplearn中的特征转化器SymbolicTransformer可以将初代种群的原始特征通过公式树转换为适应度最优的新特征因此可以用于因子的挖掘其中SymbolicTransformer模型的主要参数说明与设置如下图表7SymbolicTransformer参数说明与设置参数定义取值说明openclosehighlow我们输入开盘价收盘价最高价volumeamount最低价成交量成交额成交均avgpricefeaturename定义输入特征的名称默认为X0X价持仓量当日收盘价收益率openinterest仓单数仓单变化数作为初代种群returnclose且未经其他特征工程warehousewarehousechg通过测试公式进化2代或者3代种群适应度已较高继续进化不仅公式进化的世代数量世代数量越多消耗算力generation2消耗大量算力且因子可解释性较越多公式的进化次数越多默认为20低出于节省算力的考虑本文选择进化2代公式数量越大消耗算力越多公populationsize每一代公式群体中的公式数量默认为10001000式之间组合的空间越大这里使用默认值公式树中用于遗传和进化时所使用的函数集合原始函数集functionset详细自定义函数集请见附录可自定义更多函数自定义函数集树的初始度在mindepth与公式树的初始化度initdepth是一个二元组maxdepth之间最大度越可initdepth14mindepthmaxdepth默认为26能得出越复杂的因子但是因子的意义更难解释在每一代的所有公式中随机选择数值越小随机选择范围越小选torunamentsizetorunamentsize个公式其中适应度最高的公50择的结果越不确定式能进行变异或繁殖生成下一代公式默认为20适应度标如pearson皮尔逊相关系数自定义适应度metricspearman斯皮尔曼秩相关系数可自定义更多详细自定义适应度标请见下小节标标默认为pearson交叉变异是最有效的进化方式可pcrossover父代进行交叉变异进化的概率默认为0905以设置为较大概率子树变异的结果不太稳定概率不psubtreemutation父代进行子树变异进化的概率默认为001001宜过大这里使用默认值Hoist变异的结果不太稳定概率不phoistmutation父代进行Hoist变异进化的概率默认为001001宜过大这里使用默认值点变异的结果不太稳定概率不宜ppointmutation父代进行点变异进化的概率默认为001001过大这里使用默认值父代每个节点的点变异的概率已经即点变异中父代每个节点进行变异进化的概率ppointreplace04很小了可设置为较大概率保证点默认为005变异的执行请务必阅读正文之后的免责声明822中信期货研究金融工程专题报告参数定义取值说明ncomponents选定最后的ncomponents个公式默认为1010这里使用默认值parsimonycoefficient节俭系数默认为00010001惩罚过于复杂的公式使用默认值比率越大使用到的数据越多考虑到输入变量带有时序性质随机采maxsamples最大采样比例默认为11样不能很好的区分样本内与样本外因此默认使用全样本显示运行过程中的进化代数适应verbose显示运行日志默认为11度花费时间等等于-1时表示使用cpu里的所有njobs并行计算使用的核心数量默认为1-1的核进行工作以提高运行速度randomstate随机状态默认为None666随机种子数为了提高因子的可解释性我们不constrange公式树中常数节点的取值范围默认为-11None希望因子公式中出现常数因此设置为None适应度标的阈值满足相应条件stoppingcriteria早停标默认为110即停止训练本文为了适应自定义适应度标更改为10资料来源gplearn中信期货研究所2gplearn的改进直接使用gplearn挖掘截面选期因子是无法实现或者效果往往是不尽人意的其原因有三点gplearn原始模型输入变量只能是2维数据即NumPy中的2维数组对应到因子挖掘过程中输入变量只能是包含时间序列以及各项特征的单一资产无法扩充到截面上多个资产gplearn所提供的原函数集加减乘除开方取对数取绝对值等较为简单且无法考虑时间序列上的运算滚动窗口运算gplearn自带适应度函数ICRankIC较为简单且出来的挖掘因子往往样本内的效果较好样本外效果较差即过拟合程度较高针对第一点我们将输入的训练变量更改为3维数组3Darray增添截面这一维度修改过后的3维数组的shape为xyz其中x表征OHLC成交量持仓量仓单数等变量y表征时间序列z表征截面上的品种个数我们通过修改原包中的大量函数用以适配3维数组的运算请务必阅读正文之后的免责声明922中信期货研究金融工程专题报告针对第二点我们对gplearn源代码进行修改后引入了一系列可以进行时间序列运算的函数以及Ta-lib包中的函数并将之汇总扩充到原函数集中用以提高因子挖掘的能力具体算子函数表请见附录最后我们针对第三点自定义了适应度函数用以提升因子挖掘效果在初步尝试中我们直接使用单因子回测后策略的夏普比率作为个体额适应度标但多次测试下来因子也存在样本外失效较快的情况对于此我们进行简单的交叉验证即将样本内的训练集进一步划分为80训练集20验证集并分别计算训练集与验证集的夏普率得出两者值后再根据以下条件筛选因子训练集夏普率绝对值大于1取绝对值为了考虑因子方向验证集夏普率训练集夏普率取值较高者继续进化图表8简单交叉验证示意图资料来源中信期货研究所以上便是我们对于gplearn的改造与优化下一节我们将展示具体的因子挖掘流程与回测结果二截面选期因子挖掘流程与结果一截面选期因子挖掘流程本节我们将遵循以下步骤进行因子挖掘1样本选择与回测细节商品期货池我们从内期货市场筛选出历史流动性较好的41个品种具体如下表所示请务必阅读正文之后的免责声明1022中信期货研究金融工程专题报告图表9商品品种选择类别具体品种黑色类螺纹钢热轧卷板焦炭焦煤铁矿石玻璃纯碱有色类铜铝锌镍锡不锈钢能源类原油石油沥青低硫燃料油LPG燃料油化工类PTA乙二醇短纤甲醇聚乙烯聚丙烯PVC苯乙烯尿素软商品类棉花白糖纸浆橡胶农产品类豆粕菜粕棕榈油豆油菜油玉米生猪鸡蛋豆一玉米淀粉资料来源中信期货研究所交易价格我们使用各个商品期货品种中主力合约的复权收盘价计算收益回测区间我们使用201611-202211作为样本内训练集202212-2023310作为样本外测试集总回测区间为201611-2023310交易成本暂不考虑任何交易中产生的费用杠杆倍数一倍杠杆输入变量初代种群如上文图表7所提各个品种开盘价收盘价最高价最低价成交量成交额成交均价持仓量当日收盘价收益率仓单数仓单变化数11个原始因子目标变量各个品种2个交易日后收益率我们回测时在T日收盘计算因子T1日做入T2日产生收益单因子回测方法五组分层回测法默认使用因子排序前20品种与排序后20品种构建多空组合并计算收益等权调仓周期每日调仓2使用gplearn进行因子挖掘将我们的训练集与测试集输入模型使用SymbolicTransformerfit方法即可开始训练模型在训练过程中首先通过我们图表7中的算子函数集随机生成大量公式因子表达式通过自定义适应度函数计算每个个体的适应度值并按照图表1中的遗传规划流程循环进化在上一节自定义适应度函数中已经提到我们会将样本内数据进一步拆分并进行简单交叉验证以对抗过拟合对挖掘出来的因子进行单因子分层回测考察因子在样本内与样本外的表现尝试对回测效果较好的因子内在含义进行归因解释请务必阅读正文之后的免责声明1122中信期货研究金融工程专题报告二截面选期因子挖掘结果及整体回测结果经过多次挖掘我们总结出了以下5个在全样本上都表现较好的截面选期Alpha因子图表10Alpha因子挖掘结果因子名称因子表达式因子方向tsmidpointtspctchangetsinversecvtsAlpha1正向AROONOSCvolumeavgprice10105486Alpha2tssumtsmaxmintsmaxminwarehouse12612663负向tsematssumtsrsitskamaopeninterest48663243Alpha3负向63Alpha4tsematsinversecvtscorrvolumeavgprice2142105负向Alpha5tsdematsmediantscovopenvolume212115负向资料来源中信期货研究所下面是Alpha因子在样本内样本外以及全样本上的单因子回测结果图表11Alpha因子回测结果样本内样本内年化收益率年化波动率夏普比率最大回撤Calmar比率Alpha1913522175415220Alpha21252709177605207Alpha31103833132986112Alpha4844732115816103Alpha5937709132584161资料来源中信期货研究所图表12Alpha因子回测结果样本外样本外年化收益率年化波动率夏普比率最大回撤Calmar比率Alpha1997609164329303Alpha2431640067459094Alpha3834633132337247Alpha41419782181710200Alpha5422721059900047资料来源中信期货研究所图表13Alpha因子回测结果全样本全样本年化收益率年化波动率夏普比率最大回撤Calmar比率Alpha1932542172415225Alpha21107700158605183Alpha31024774132986105Alpha4935741126816115Alpha5840711118900093资料来源中信期货研究所请务必阅读正文之后的免责声明1222中信期货研究金融工程专题报告三截面选期因子回测表现及简单归因1Alpha1因子Alpha1的因子表达式为tsmidpointtspctchangetsinversecvtsAROONOSCvolumeavgprice10105486该因子属于量价相关性类因子它描述了短期量价相关性趋的波动的变化率的长期该因子为正向因子则表明量价相关性趋的波动的变化程度越高越好下面是该因子在全样本上的具体回测结果其中样本线以左表明样本内样本线以右表明样本外图表14Alpha1分层回测净值图表15Alpha1RankIC表现第5组第4组第3组第2组RankICRankICcum右轴第1组样本线062525042020215015-0210-0415-06050-080-1-5资料来源中信期货研究所资料来源中信期货研究所图表16Alpha1多空组合净值回撤右轴TMB样本线1700016200154006001480013100012120011140011600091800082000资料来源中信期货研究所回测下来该因子分层的单调性虽不明显但是在时序上整体的RankIC累请务必阅读正文之后的免责声明1322中信期货研究金融工程专题报告计值与净值的都比较流畅稳定性强回测基本上小于42Alpha2因子Alpha2的因子表达式为tssumtsmaxmintsmaxminwarehouse12612663该因子属于基本面仓单类因子的衍生物图表17Alpha2分层回测净值图表18Alpha2RankIC表现第5组第4组第3组第2组RankICRankICcum右轴第1组样本线35085306004-52502-1020-1515-02-201-04-2505-06-30-08-350-1-40资料来源中信期货研究所资料来源中信期货研究所图表19Alpha2多空组合净值回撤右轴BMT样本线22000200240018600800161000141200121400160011800082000资料来源中信期货研究所回测结果表明该因子分层的单调性强RankIC累计值与净值也呈现出强稳定性样本外选期能力虽有所衰减但仍然具备一定的有效性请务必阅读正文之后的免责声明1422中信期货研究金融工程专题报告3Alpha3因子Alpha3的因子表达式为tsematssumtsrsitskamaopeninterest4866324363它描述了持仓量的库夫曼移动均线在过去一段时间内的相对强弱程度之和的平均水平该因子为负向因子表明品种长期持仓量的均线持续高时倾向于做空该品种图表20Alpha3分层回测净值图表21Alpha3RankIC表现第5组第4组RankICRankICcum右轴第3组第2组第1组样本线0802506-204-42-602-8150-10-02-121-04-14-0605-16-08-180-1-20资料来源中信期货研究所资料来源中信期货研究所图表22Alpha3多空组合净值回撤右轴BMT样本线150002001440013600800121000111200114001600091800082000资料来源中信期货研究所Alpha3因子在整个时序上分层的单调性较为一般从RankIC累计值来看样本内该因子预测方向也发生过较长时间的反转但其在样本外的表现较为稳定回测幅度较小请务必阅读正文之后的免责声明1522中信期货研究金融工程专题报告4Alpha4因子Alpha4的因子表达式为tsematsinversecvtscorrvolumeavgprice2142105它反映了回看期21日一个月的成交均价与成交量的相关性变化程度的数移动平均根据因子回测结果该因子为负向因子表明品种过去一个月的量价相关性在过去一段时间的变化程度越低越好图表23Alpha4分层回测净值图表24Alpha4RankIC表现第5组第4组RankICRankICcum右轴第3组第2组5第1组样本线08545060404-535-10023-15250-202-02-2515-04-301-06-3505-08-400-1-45资料来源中信期货研究所资料来源中信期货研究所图表25Alpha4多空组合净值回撤右轴BMT样本线200020018400600168001410001200121400160011800082000资料来源中信期货研究所从回测结果来看Alpha1因子不仅在分层回测中表现出来较好的单调性分请务必阅读正文之后的免责声明1622中信期货研究金融工程专题报告层明显且整个时序上保持了较好的负向选期能力RankIC累计值稳定下行在样本外Alpha1因子也保持了较强的alpha能力且整体的回撤水平较低5Alpha5因子Alpha5的因子表达式为tsdematsmediantscovopenvolume212115它同样可以归属为量价相关性类因子它描述了开盘价与成交量的相关性中枢的移动平均水平图表26Alpha5分层回测净值图表27Alpha5RankIC表现第5组第4组RankICRankICcum右轴第3组第2组085第1组样本线40603504-5302250-102-02-1515-04-201-06-2505-080-1-30资料来源中信期货研究所资料来源中信期货研究所图表28Alpha5多空组合净值回撤右轴BMT样本线180001720016400156001480013100012120011140011600091800082000资料来源中信期货研究所请务必阅读正文之后的免责声明1722中信期货研究金融工程专题报告回测结果表明该因子可以很好的区分截面上品种的强弱关系且RankIC累计值在全样本上能维持稳定的下行Alpha5虽在样本外发生了最大回撤但回撤时间不长且近期仍维持了较好的三总结与思考本文详细介绍了遗传规划算法的原理以及如何使用它进行因子挖掘具体到实操流程上我们使用到了Python中专门实现遗传规划的gplearn包进行代码实现在因子挖掘的过程中我们对gplearn包中的源代码进行了改进与优化扩充了原始用于进化的算子函数集使因子在进化过程中可以进行时间序列上运算修改了输入变量的维度使其适配于截面因子的挖掘自定义了适应度函数以对抗过拟合程度并提高因子的可解释性在完成了以上修改后我们利用了遗传规划算法以2016至2022年作为输入数据在商品期货上挖掘了5个具有较好选期能力的截面alpha因子并回测了5个因子在全样本上的表现Alpha1年化收益932年化波动542夏普172最大回撤415卡玛比率225Alpha2年化收益1107年化波动700夏普158最大回撤605卡玛比率183Alpha3年化收益1024年化波动774夏普132最大回撤986卡玛比率105Alpha4年化收益935年化波动741夏普126最大回撤816卡玛比率115Alpha5年化收益840年化波动711夏普118最大回撤900卡玛比率093回测下来由算法挖掘出来的因子在样本内外均具备一定的有效性表明利用遗传规划可以帮助我们归纳并总结出具有一定alpha能力的因子但这种方法仍然存在着许多缺点第一因子的挖掘过程中具有很强的随机性不同的输入特征变量模型的超参数算子函数适应度函数都会影响最终的因子挖掘结果第二很容易产生过拟合的问题即挖掘出来的因子往往在样本内表现较好而样请务必阅读正文之后的免责声明1822中信期货研究金融工程专题报告本外失效较快即使本文使用了简单的交叉验证以对抗过拟合但也无法保证样本外因子表现持续较好第三遗传规划挖掘的因子复杂程度普遍较高绝大部分并不具有明确的经济意义因此在后续的研究中可以从两方面进行改进以提升我们因子挖掘的效果首先对输入特征变量进行特征工程使其转变成有一定的经济含义的因子再进行挖掘缩小挖掘的随机性并提高因子的可解释性其次是可以在挖掘过程中加入时序交叉验证的步骤以更好地对抗因子过拟合的问题请务必阅读正文之后的免责声明1922中信期货研究金融工程专题报告四附录我们在遗传规划挖掘因子的过程中使用到了以下算子函数其中X1X2为表征不同特征变量openclose的2维数组每行对应每一个交易日每列对应每一个品种d为时序中的回看天数图表29算子函数集类型函数名定义原函数集addX1X2返回X1X2相加后的2维数组原函数集subX1X2返回X1X2相减后的2维数组原函数集mulX1X2返回X1X2对应元素相乘后的2维数组原函数集divX1X2返回X1X2对应元素相除后的2维数组原函数集absX1返回取绝对值后的X1数组原函数集sqrtX1返回取开方后的X1数组原函数集logX1返回取对数后的X1数组原函数集invX1返回取倒数后的X1数组时间序列函数tsdelayX1d滞后d日的X1数组时间序列函数tsdeltaX1dX1数组减滞后d日的X1数组时间序列函数tsmeanX1dX1数组过去d日移动平均时间序列函数tspctchangeX1dX1数组过去d日的变化率时间序列函数tsmeanreturnX1dX1数组过去1日的变化率的d日移动平均时间序列函数tsmaxX1dX1数组过去d日最大值时间序列函数tsminX1dX1数组过去d日最小值时间序列函数tssumX1dX1数组过去d日之和时间序列函数tsproductX1dX1数组过去d日乘积时间序列函数tsstdX1dX1数组过去d日标准差时间序列函数tsmedianX1dX1数组过去d日中位数时间序列函数tsmidpointX1dX1数组过去d日最大值与最小值的均值时间序列函数tsskewX1dX1数组过去d日偏度时间序列函数tskurtX1dX1数组过去d日峰度时间序列函数tsinversecvX1dX1数组过去d日变异系数的倒数时间序列函数tscovX1X2dX1数组与X2数组过去d日的协方差时间序列函数tscorrX1X2dX1数组与X2数组过去d日的相关系数X1-tsminX1dtsmaxX1d时间序列函数tsmaxminX1d-tsminX1d时间序列函数tszscoreX1dX1数组过去d日的z-score值时间序列函数tsregressionbetaX1X2dX1数组与X2数组过去d日的回归系数时间序列函数tslinearslopeX1dX1数组与时序t12d的回归系数时间序列函数tslinearinterceptX1dX1数组与时序t12d的回归截距时间序列函数tsargmaxX1dX1数组过去d日的最大值索引值时间序列函数tsargminX1dX1数组过去d日的最小值索引值时间序列函数tsargmaxminX1dtsargmaxX1d-tsargminX1d时间序列函数tsrankX1dX1数组过去d日的从小到大排序值Ta-lib函数tsemaX1dX1数组过去d日的数移动平均请务必阅读正文之后的免责声明2022
|
相关研报
|
||||||||||||||||||||||
