策略专题研究:机器学习与遗传算法策略信号在期货量化交易的应用_顶尖财经网
  您的位置:首页 >> 基金频道 >> 基金学校 >> 文章正文

策略专题研究:机器学习与遗传算法策略信号在期货量化交易的应用

加入日期:2020-1-10 10:17:12

  顶尖财经网(www.58188.com)2020-1-10 10:17:12讯:

  文  |  量化组  天风期货研究所

  经授权发布

  期货人工智能策略专题

  1

  文章主旨

  ◆ 思考:传统量化策略通常以单个信号作为交易信号,但通常面临不适用的行情表现很差。对遗传算法产生的因子进行多信号机器学习建模,是否可以帮助我们在一定程度上提升策略的表现?

  ◆ 系列第三篇,主要讨论对遗传算法挖掘的因子进行机器学习建模从而验证是否有效。

  ◆ 结论:通过对遗传算法挖掘出的2000个因子进行筛选后,对其中86个因子进行机器学习建模的效果是显著的。

  2

  简介

  个人并非是传统CTA出身,并没有进行大量的编写量化策略的过程,但是量化策略的编写其实本质上也是用数学做出一些规则,并通过对规则中的参数在某段样本上进行回测,并选择最符合要求的某个参数。至于这些规则有些基于统计的方法,有些是人常年交易积攒的经验,但这些其实本质上都是反映了概率。

  对于我自己来说,一些CTA的策略其实并不容易理解指标的内在逻辑,但是由于这些策略在某些行情是有效的,或者长时间都是有效的,于是这些策略就有了逻辑。有的时候有了好的结果,人才会反推出他的含义,很多事物都是这样,我不知道这是否合理,但是这符合人的天性。或许这是我作为一个非传统CTA出身的人的思考方式,个人认为并非需要所有的东西都有明显的金融逻辑,才可以作为一个策略,于我个人而言,只要这个因子是可以有收益的,那我并不一定非要深究他的逻辑是什么。

  由于经典的一些CTA策略往往都会出现特定行情表现不错,但在其他时间的行情表现亏损,那不可能永远只用一个策略去进行交易,太容易出现亏损的情况。如果使用多个因子,每个因子都适应不同的行情,某些适应震荡,某些适应趋势,那么在我进行多个信号叠加产生最终信号的时候,最理想的情况就是震荡的时候,模型将主要依靠震荡的因子而忽略趋势因子,在趋势的时候,模型主要依靠趋势因子而忽略震荡因子。如果机器学习确实能够在一定程度上帮助达到上述理想状况的效果,那么机器学习已经达到目的了,并且证明了机器学习对多因子建模在期货量化交易的有效性。

  3

  建模验证

  为了证明这一假设,我们需要一些数量的因子来进行机器学习建模。那么使用什么因子,这是一个很重要的问题。在本文中,我们主要讨论使用遗传算法挖掘的因子。一个原因是因子数量有一定要求,另外是因为个人相信使用机器学习产生因子并进行量化交易是有优势的。

  首先使用遗传算法对MA进行因子挖掘,至于如何挖掘在本文中就不再赘述了,有兴趣的朋友可以看之前的遗传算法挖掘因子。在本文中我们讨论挖掘出的2000个因子,但我们并非要对2000个因子同时建模,我们首先对这些因子进行筛选。2000个因子分别进行单因子测试从而挑选在样本外表现好的部分因子。主要选取回撤较小,收益可观,并在样本外的表现比较稳定的因子,在这里我们的样本外的时间段是2016-12-01----2017-12-01以及2019-01-01---2019-12-31。可以注意到几乎所有因子在样本内的表现都比较好,但在样本外只有小部分的因子表现较好,这也符合我们的预期,在遗传算法的规则下,样本内的表现一定是比较好的,因此我们需要着重通过因子是否在样本外表现依旧稳定来筛选。由于篇幅有限,本文只选取MA作为讨论品种。

  当然大部分挖掘的因子并不好,例如:

  在进行筛选后,我们从2000个挖掘出来的因子中得到86个相对符合我们要求的因子进行接下来的机器学习建模。在本文中,我主要使用随机森林进行对86个因子进行建模。(由于要留出训练样本,所以回测的开始日期是2018-03-29)

  对比单因子的测试结果,通过机器学习建模后的效果明显有了较大的提升,原先单因子的收益年化收益大部分在40%-80%之间,回撤在25%-50%之间,在进行机器学习建模后,效果是很明显的。年化收益提升至112.15%,回撤下降至13.74%,收益以及最大回撤也得到了明显的提升。

  使用初始参数随机森林建模得到了明显的提升效果后,为了保证结果是可信的,我们需要继续尝试其他的参数是否也能取得较好的结果。尝试其他参数建模,我分别测试1000,2000,300来测试,最终我们得到对比结果:

  1000棵树回测结果:

  2000棵树回测结果:

  300棵树回测结果:

  在使用1000棵树建模时,从夏普率和收益来看效果比400棵树的效果更好一些,但是回撤也相对增加了近3%。在使用2000棵树建模时,结果没有1000的效果好,回撤下降至13.53%,夏普率从4.1下降至3.59,年化收益从148.99%下降至121.74%。但依旧比我们初始的400棵树效果要略微好一些。值得注意的是300棵树的效果也和400棵树的效果基本相同,甚至比400棵树要稍好一些。从回测结果上看,总体上这些参数都在同个水平,差异并不大。

  在机器学习建模中,数据量大小是比较关键的因素,因此在本文中我也测试了除8000以外的12000,以及5000的训练样本量,通常来说样本量大的情况应当好于样本量小,(因为样本量大训练效果更好)但是如果由于样本量的改变导致模型结果差异巨大,这并不是我们所希望见到,这可能说明模型并不具有鲁棒性,很可能是过拟合的结果。预想的结果是在样本量增大时逐步提升,但提升幅度是稳定的,即模型是健壮的,并不会对某一个参数极其敏感。结果如下:

  5000样本训练量的结果:

  12000样本训练量的结果:

  结果基本符合设想的预期,年化收益逐步递增,回撤也是逐步递减,可以注意到5000的样本量的回撤相对较大,8000样本量的回撤下降了接近5%,而从12000的样本量继续增加,回撤的下降将越来越小,甚至可能出现小幅度增长,但我们并不是要找到一个最优的参数,我们只需要证明模型是稳定的,并不对某个参数过于敏感,大部分的参数的结果都是在同一个层面的就可以说明模型是有效的,是健壮的。

  4

  感想

  本文从量化策略信号面临的普遍问题对量化进行思考,是否可以通过机器学习对大量因子进行建模,从而更准确预测期货的涨跌。而大量因子的获取在之前写过的遗传算法中已经介绍了生产方式,因此这个思考对我来说是可验证的。在使用遗传算法产生的2000个因子中筛选的86个遗传算法因子通过随机森林的建模后,模型的回撤以及年化收益都得到了显著的提升,并且通过对不同参数的验证,我们证明了模型的健壮性,并非是过拟合的结果。

本文首发于微信公众号:对冲研投。文章内容属作者个人观点,不代表和讯网立场。投资者据此操作,风险请自担。

(责任编辑:王治强 HF013)

编辑: 来源: