朱雀基金量化组负责人章晓珏:再谈CTA策略,打开黑箱
1、量化投资的决策依赖于大样本下的统计显著性,所以量化投资者会以更长远的眼光来看待交易结果,不计较单笔交易的得失。
2、遗传规划的优势除了可以提升挖掘因子效率之外,更重要的是它可以突破人类的思维定式,挖掘出一些隐藏的、难以通过人脑构建出来的因子。
3、机器学习是量化CTA策略的新方向,相较传统线性模型提供了高维的非线性视角,可以更好地分类并提升拟合效果。而可视化可以打开机器学习的黑箱。
4、从大类资产配置的角度看,由于低相关性,在持有股票型基金获取阿尔法的同时,配置CTA产品可以在资产组合的层面起到风险分散化的作用。
量化CTA策略介绍
期望收益=胜率×盈亏比(赔率)
Step 1:因子挖掘
Step 2:因子筛选
Step 3:机器学习
Step 4:交易决策
第二个突破点是在机器学习做因子组合上。我们对机器学习的可视化做了一些努力。后面我们会展开来介绍下遗传规划因子挖掘和机器学习可视化这两方面的突破。
遗传规划:跳出人类思维定式
遗传规划所做的事情,其实就是模拟了自然界中物竞天择、适者生存的演化模式,通过优化迭代的手段逐渐生成契合优化目标的因子,优化的目标往往被设定为因子对价格走势的预测能力。
遗传规划的优势除了前面提到的可以提升因子挖掘的效率之外,更重要的是可以突破人类的思维定式,挖掘出一些隐藏的、难以通过人脑构建的因子。同时我们也可以通过算法控制因子间的相关性,从而得到两两低相关的因子池。因为因子间的高相关性会导致后续机器学习时模型的参数不稳定,所以低相关的因子池可以在一定程度上使我们的模型更加稳健。
接下来我们看看遗传规划的具体算法。首先,我们需要事先定义一个变量集和一个算子集,这里的变量往往是基础的行情指标,而算子集中包含常规的运算符,如加减乘除均值等等。然后我们会将变量和算子随机组合生成大量的个体样本,这里的每一个样本个体都可以被翻译成一个因子的公式表达式,从而得到初始种群。之后,我们会计算初始种群中每个个体对环境的适应度,并从中选出适应度高的个体作为下一代进化的父代。因为适应度是以因子对价格的预测效力衡量的,所以通过这一步我们就选出了对价格走势有一定预测效力的因子集作为父代种群。有了父代种群之后,下一步就是遗传变异。一部分父代个体可以直接进入子代,而一部分父代将通过变异的方式,将部分因子结构传递至下一代。
这里展示了几种常见的变异方式。第一种交叉变异类似人类的染色体交叉,两个适应度较高的父代个体会互相交换一部分因子结构生成子代,交叉变异较为保守,可以保留并传承父代中“好”的因子结构。第二种子树变异会随机替换父代树结构中的一个子树。第三种点变异则是随机替换父代树结构中的一个叶片。子树变异和点变异更像基因突变,是比较激进的变异方式,可以重新引入被淘汰的因子结构来维持种群的多样性。第四种提升变异可以理解为基因片段剪除,我们会随机地从父代中移除一部分树结构,这样做可以防止因子结构过于复杂而导致过度拟合。
可视化:打开机器学习的黑箱
我们的另一个新进展是机器学习的可视化。机器学习策略的优势,在于可以处理海量的历史数据,并且它的预测准确率更高。同时机器学习有一定的自适应性,可以不断学习新的数据来优化自身。但是因为机器学习特别是神经网络模型的决策流程是一个黑箱,所以这类模型一直以来也被批评可解释性太差。那我们现在做的就是想打开神经网络的黑箱,来看看它到底是如何做出价格预测的。
我们先以一个图像识别的例子来说明。假设我们已经有了一个训练好的神经网络,如果我们要识别一张图片里的动物是猫还是狗,最经典的做法就是把图片先转换成数字像素矩阵,然后输入给卷积神经网络,样本在经过若干层卷积层后,最后由softmax函数来给出这是一只猫或者狗的概率。
在深度学习模式下,图片从输入模型到输出结果中间可能要经过几百层的卷积层,整个神经网络的结构非常复杂,人脑很难解释清楚它的内部决策机制。而可视化可以告诉我们,在神经网络给出判断的时候,主要读取了图片里哪些局部区域的特征。
具体到算法层面,我们可以计算最后一层隐含层的激活函数值和它的梯度斜率,然后以热力图的形式来表征每个局部特征的重要性。这里热力图的颜色越红表示这块区域对图像识别越重要,反之颜色越偏蓝,表明该区域越不重要。我们可以看到神经网络在判断动物类别的时候,主要是读取了猫和狗的头部区域和身体花色的特征,这其实是非常明智的。
然后我们再来看在CTA策略中,神经网络模型在预测后市涨跌的时候,主要是基于了哪些特征因子。这里的热力图是对CTA神经网络模型可视化后的结果,图中每一列代表一个因子,从左到右逐渐从趋势因子过渡到反转因子。
我们可以看到在2015年6月的时候,热力图左侧区域更为明亮,也就是说神经网络在价格预测的时候更侧重于趋势因子,结合当时连续上涨的行情来看,神经网络这一选择是正确的。而在2015年8月,此时市场已经经历了股灾、上行趋势被打破,这时热力图的右侧区域更亮,也就是说此时神经网络在做预测的时候,给了反转指标更多权重。由此可以得出神经网络在做训练的时候,可以通过不断吸纳学习新的数据来调整模型自身,并且它在实盘做出价格预测的时候也较好地适应了市场环境的变化。
在CTA之外,我们今年也对阿尔法策略做了升级改造。阿尔法策略可以分为两类:一类用量化手段选出可以战胜基准指数的股票组合,也就是指数增强策略,另外是在指数增强的基础上叠加相应股指期货的空头头寸来对冲市场风险从而获得绝对收益,也就是量化对冲策略。所以阿尔法策略的核心还是在于选股,下图对量化选股的流程做了拆解,可,分为因子挖掘、因子组合和组合优化这三步。
第一步,因子挖掘的目的是找出一些可以预测股票未来相对强弱的选股因子,数据源包括个股的基本面、量价特征、资金流、分析师对个股的一致预期等等。第二步会把因子放入机器学习模型做因子组合。最后通过对股票流动性的筛选确定选股范围,再用组合优化的手段,使得所选股票组合在风格和行业上的分布尽可能贴近基准指数,从而得到一个跟踪误差低,但同时又可以跑赢基准指数的股票组合。
明年我们就会推出全新的量化产品,用的策略是CTA+阿尔法策略,用机器学习的手段,挖掘股票和期货里面的机会,也请大家关注。