多层推进分析进分析通过先优化策略参数,然后将量化交易策略置于其后的数据进行检验的方法,可以较为有效地对策略所具有的过度拟合问题进行判断。但是值得注意的是,在进行推进分析的过程中,研究人员有时仍然会将一些参数固定从而方便研究。用第4章提到的自回归策略举例面言,当研究人员使用自回归模型预测下一个周期的收益率时,虽然自回归的具体回归系数会在逐次优化中不断地被估计出来,但是自回归的阶数设置往往会被研究人员在整个推进分析中固定为一个常数。这种固定阶数的做法对于推进分析的某次操作本身是没有任何影响的,但是问题在于,如果一个研究人员在试验了阶数为5的自回归择时策略,发现其推进分析的结果没有显著盈利能力之后,又试验了阶数为6、7、8、9、10的自回归择时策略,最后发现9阶自回归模型构建的择时策略具有一定的盈利能力, 并将其确定为实盘使用的交易策略,就会产生过度拟合检验不完全的情况。在这个例子中,阶数实际上可以被看作策略的一个具体参数,对不同阶数的自回归策略都进行测试并选择结果最优的一种, 也就可以被视为一次最优化的过程。但是直到决定使用9阶自回归策略进行实盘操作为止,研究者都没有针对这一参数分析其过度拟合的情况。
在大多数模型优化方式比较固定的情况下,这种模型设置类的参数都是难以和模型系数-起进行优化的, 因而常常会被研究人员在推进分析中设置为某一固定值。例如在上面所举的例子中,自回归模型的回归系数估计一般都会使用普通最小二乘法等计量经济学中常用的估计方法来完成,这些方法本身是不能用来同时优化自回归模型的阶数设置的。更为明显一些的例子,是采用诸如人工神经网络这样的机器学习算法进行构建的量化交易策略,这些算法的拟合技巧往往都较为复杂,而且在长时间的科学研究过程中会固化出一些公认的有效处理方法,甚至包括诸如模型预训练这样的复杂操作。不易变动。因此在绝大多数情况下,试图更改这些拟合方法进而同时优化人工神经网络隐层节点数之类的参数都是不切实际的。其他一些情况包括支持向量机中的核函数选择等,虽然不再是一个直接的参数,但是仍然能够通过人为控制来改变整个策略的实际效能,因此尝试多种核函数的做法同样等同于最优化的过程。或者更为隐敝的训练样本大小,也应该被看作一种参数,只不过这种参数来自对推进分析本身的设置。以图6-2所展示的推进分析为例,如果研究者分别在白色框长度为3、4, 5、6.7等设定的推进分析框架下测试了同一种量化交易策略,最后发现长度为5时策略收益最高,并在实际运行中也将优化期固定为5个周期,那么就同样缺乏对于白色框长度这一设置的过度似合程度判断。
这一节中将要介绍的多层推进分析,正是为了缓解这一问题而针对推进分析流程进行的改进。多层推进分析的原理叙述起来较为简单,就是在推进分析的基础之上,针对进行交易的灰色框序列再做新的推进分析,从而研究上一层推进分析中无法检验的参数过度拟合情况。但是实际上,在量化交易策略研究中,多层推进分析的逻辑其实较为复杂,如果不小心处理就有可能会出现细节上的错误。在研究人员较难驾驭这种复杂逻辑的情况下,作者建议最好避免使用这种方法,为了测试一些参数的过度拟合程度而导致整个回溯测试结果的不可信,其实是得不偿失的。当然,接下来依然要介绍这种方法的具体操作流程,读者可以在量化交易策略的研发过程中基现实情况来判断使用与否。
图6-4在图6-2所展示的推进分析的基础上,给出了一个两层推进分析的示例用以说明。在图6-2中,每一个灰色框都是所在行的样本外数据,而在图6-4中,一部分的灰色框除了作为第一层推进分析的样本外数据以外,同时还是第二层推进分析的样本内数据,用以优化在第一层推进分析中无法同时优化的参数。以第二层推进分析中的第-行为例, 在第二层参数固定为某定值的情况下,如同图6-2中所做的-样,基于周期1到周期5的数据进行优化得出一个最优策略,应用在周期6的数据上就可以得到该交易策略在周期6的收益率,同理,周期7可以根据周期2到周期6的数据优化出一个最优策略并得到相应的收益率,依此类推直到周期10为止。综合周期6到周期10的收益率结果,就可以得到第二层参数设为该定值时这5个周期上的策略收益情况,之后更换第二层参数的设置,重复上述过程,得到其他参数情况下的策略收益率。在获得第二层参数所有可能取值下的策略收益率后,就可以选出收益情况最好的一个或一组参数,这一轮操作可以看作是第二层推进分析中的样本内优化过程,如图6-4中的浅灰色部分所示。
在得到第二层参数的优化值之后,将策略中相应的设置固定为该优化值,然后回到第一层推进分析当中,基于周期6到周期10的数据,对第一层推进分析的参数进行优化并得到优化结果。这样,针对周期11而言,使用前期数据同时得到了最优的第一层参数值和第层参数值,将基于这此参数设置的策略应用到周期11的数据之上,就可以得到一个两层推进分析的样本外交易结果,如图6-4中的深灰色框所示。至此,针对第二层推进分析中第一行的操作全部完成。
然后将所有的时间窗向后推进一个周期进行同样的工作,可以完成第二行的操作。通过不断地向后推进一个周期直到整个数据样本结束,就可以得到多行的第二层推进分析结果,当然图6-4受空间所限只展示了三行。将深灰色框下最优策略的模拟交易结果进行综合,就可以得到该量化交易策略在两层推进分析下的策略净值走势和收益情况,从而判新出第二层参数的过度拟合程度,并更好地对整个策略的真实盈利能力加以判断。
上面介绍的是双层推进分析的具体流程,在第二层推进分析的基础之上,可以采用相似的方法进一步划分数据,进而形成第三层的推进分析。只要数据量足以应对复杂化的推进分析过程,这样的分层就可以持续地进行下去。但是需要注意的是,多层推进分析虽然可以解决一层 推进分析无法完全解决的参数优化与过度拟合判断的问题,但是同时会引入新的参数设置,增加整个研发流程的复杂程度。
举例而言,当一层的推进分析已经可以在样本内优化所有的策略参数和设置时,这个时候需要固定的参数只有推进分析本身的训练样本大小,即图6-2中的白色框长度。此时如果使用双层推进分析来判断训练样本量的设置是否存在过度拟合问题,那么检验的也只是第一层推进分析中的训练样本量参数,而第二层推进分析又会引入一个新的训练样本量设置,即图6-4中的浅灰色框长度,同时优化白色框长度时的取值范围也是一个新引入的设置,这些参数、设置依然是人为设定的,并有可能存在未来信息和过度拟合的双重问题。这样看来,不管多加多少层的推进分析,人为设置的参数总是存在的,多层推进分析不能从根本上解决这个问题。
不过即使是在这种情况下,多层推进分析的引入依然是有一定作用的。在交易资产特性、市场环境缓慢变化的前提假设下,多层推进分析中更高层的设定参数应该比低层的参数变化更加稳定,因此增加推进分析层数并对上一层推进分析的设置进行过度拟合判断是一个相对而言更为稳定、可信性更高的回溯测试流程。
但是与此同时,由于多层推进分析提高了整个回溯测试的复杂程度,因此也同时提高了对样本数据量的需求,层数越多,需要的样本数据就越多。而遗憾的是,中国的金融市场与资本市场由于历史较短,因此历史数据量相对而言是较少的,同时市场环境、政策法规的频繁变化使得可用的样本数据更为有限,在本书主要讨论的中低频量化交易策略的背景下,多层推进分析往往缺乏实际的使用基础。
因此,本节所介绍的方法虽然有其意义所在,但是实际使用需要结合具体情况认真分析,作者自已在应用时也会相当的谨慎。本节内容更重要的意义,其实是更进一步地挖掘推进分析框架的内涵、特性及其与现实交易环境的关联性,促使读者深入地理解推进分析。