AI时代,我们在金融投资方面做了这些尝试…

作者: 李涛
2017-01-11
1707
原创

金融科技的到来,不仅代表着技术上的飞跃,更是对金融服务模式的颠覆和创新。随着AI的发展和普及,量化交易也步入了智能交易的新高度。金融投资的核心在于追求收益,而人工智能的分析和预测能力恰如其分地满足了投资的要求。


让我们就AI在金融投资方面的应用进行设想:

证券长短期价格区间的预测

量化策略模型的研发(高/低频)

证券的择股和择时的优化

大类资产的配置

证券投资组合的优化

证券风险特征识别

……
机器学习分为浅层机器学习和深度学习,传统的浅层学习中决策树、朴素贝叶斯、支持向量机和浅层神经网络等等也都是金融工程中常用的一些方法。作为金融科技的开拓者,恒生研究院就人工智能在量化交易领域进行了一系列的创新尝试。




【尝试一:基于小波神经网络对时间序列进行预测】


人工智能有监督机器学习的模式中,有两大类学习模型:分类和回归预测,而在金融投资或者说量化交易中,对于时间序列的预测最为直观。
小波分析是指通过高低频通道来将时序数据分解为高频部分和低频部分,进行多尺度细化分析,目前对于时序/频域的预测已经取得了一些有意义的成果。将小波分析和神经网络结合起来,构建小波神经网络(Wavelet Neural Network,WNN),可以对时序数据进行预测分析。WNN是将神经网络隐节点的激活函数由小波函数来替代,相应的输入层到隐含层的权值及隐含层的阈值分别由小波函数的尺度伸缩因子和时间平移因子所代替,这是应用最广泛的紧致型结合。
如下图所示我们用小波神经网络做的HS300的预测,使用2010.1~2015.8沪深300指数的日行情数据进行模型训练,使用2015.9~2016.8的日行情数据进行测试验证。

有监督的学习要取得较好的应用效果,其和机器学习的训练过程直接相关。这一过程中还是要投资者较深地介入数据的预处理,进行培训数据样本的特征标签标定或对训练规则给出方向性指引。通常量化交易的团队资源要更深入地去发掘更好的特征。因此,人工设计样本特征,不是一个容易的可扩展的途径。上面我们判别市场短期走势的案例中,所定义的特征是否合适?我们也比较难评判,也许会有更好的特征可以刻画证券市场的走势。



【尝试二:让机器学习帮我们找到合适的量化策略】


市场千变万化,很难找到合适的特征去进行机器学习,那么是否我们能通过机器学习的方法去寻找合适的量化策略,替代自己总结的方式呢?
技术指标千差万别,股票市场价、量、时、空的数据也是海量的,在这样庞大的数据基础上,寻找和优化量化技术指标也是比较困难的。基于进化理论的遗传算法可以较好地针对预定问题,用解决全局最优解的方式寻找性能瓶颈,在对传统技术指标因子和基本面因子进行交易信号的整合上,也可以发挥很好的作用。通过遗传算法可以获得在训练集上较好表现的量化技术模型,虽然遗传算法得到的是类似黑箱的量化技术模型,但模型背后隐含着关于时间序列的深刻的数学含义。


上面这个就是机器通过遗传规划的方法,寻找出来的模型。训练集我们采用了2006~2010的数据——深100ETF,通过机器训练,系统能够找到胜率在70%、盈亏比接近6的策略,策略的年化夏普率超过了1.5。
为了考察策略的泛化能力,我们采用2014.1~2016.8的深100ETF数据进行测试验证。下图是在2014~2016的测试集上的效果,发现测试能力还是具备一定的可验证性。在测试集上的年化夏普率甚至超过了2。




【通过机器学习能否找到合适的量化策略?】

如果市场很难预测,或者是可预测,那么我们很难找到合适的特征去进行机器学习,那么是否我们能通过机器学习的方法去寻找合适的量化策略,替代自己总结的方式呢?


技术指标千差万别,股票市场价、量、时、空的数据也是海量的,在这样庞大的数据基础上,寻找和优化、量化技术指标也是比较困难的。基于进化理论的遗传算法可以较好地针对预定问题,寻找性能瓶颈,找到最优解。在对传统技术指标因子和基本面因子进行交易信号的整合上,也可以发挥很好的作用。通过遗传算法可以获得在训练集上较好表现的量化技术模型,虽然遗传算法得到的是类似黑箱的量化技术模型,但模型背后隐含着关于时间序列的深刻的数学含义。



上面这个就是通过遗传规划的方法,机器寻找出来的模型。训练集我们采用了2006~2010的数据——深100ETF,通过机器训练,系统能够找到胜率在70%,盈亏比接近6的策略,策略的年化夏普率超过了1.5。

为了考察策略的泛化能力,我们采用2014.1~2016.8的深100ETF的行iqngshuju进行测试验证。下图是在2014~2016的测试集上的效果,发现测试的能力还是具备一定的可验证性。在测试集上的年化夏普率甚至超过了2。


为了进一步考察模型的泛化能力,我们使用50ETF的数据进行验证,50和深100在走势上还是有较大的差异的。


上面是50ETF的测试效果,虽然比100ETF要差,但还是可以接受的一种模型。

后续,我们希望将“遗传算法在量化技术指标的优化”这一应用成果形成智能策略服务平台,为广大投资者提供适合自己投资风格的量化技术模型。


【尝试三:从图像中识别证券发展趋势 】

图形属于非结构化数据,传统的金融工程很难运用非结构数据。利用图像识别的方法,将图形数据应用于CNN学习网络是否是一个可行的量化分析方法?盘感好的高手可以通过看K线图,用较难量化的模糊模式识别出证券未来的走势可能。
围棋为什么难?因为它需要人类通过直观判断盘面而进行行动,和投资者根据K线图进行投资行为很相像。那么,是否也可以通过CNN的方法,让机器自己从这张图中提取出有用的特征?为此,我们应用了标普500从1962年到现在的13768个日K线数据,生成120根K线加20、60、120、240的均线,和成交量的1366张图片以及20根K加各均线的6000多张图片,对CNN进行训练。最终,120天K线数据图片识别未来10日收益率的10分类胜率只有30%左右,20天较短周期的K线图识别胜率在40%左右。虽然top5的胜率是接近95%了,但如果简单做成2分类,目前看没有比传统的金融工程方法更优,或许几千张图片对于深度学习来说数据量也还是欠缺。



【心得:那些在机器学习训练中的技巧】

人工智能应用于预测和分类中最棘手的问题就是对于历史数据的“过拟合”。“过拟合”的表现是模型在训练集上表现得非常好,但在不同于训练集的测试数据上则表现较差。如果把模型在训练集和测试集上的模型精度画一个图,会发现随着模型训练的迭代,在训练集上的精度会不断提高,但在测试集上的精度是先逐渐提高,后来却随着训练的进展而不断下降。

解决模型训练的过拟合,首先就是early stopping,即在每一个epoch结束时计算测试集的模型精度,当精度不再提高时,就停止训练。这是很自然的做法,因为精度不再提高,训练下去也没用;

其次是数据的扩充,避免过拟合最根本的还是需要海量的训练数据,数据能够覆盖各种各样的场景。并通过随机洗牌来减少数据之间的自相关性。当然海量数据本身的获取和特征化提取,也是一个非常困难的事情;

再者是模型连接和惩罚项参数的调整,如正则化和Drop Out/Drop Connect,这两者其实本质上是简化深度神经网络模型的复杂程度,为使模型具备一定的稀疏性,刻意地将代价函数加上惩罚项,以及减少深度神经网络模型的连接。通过简化机器学习的模型,的确可以避免模型过分依赖于训练集上的数据表现;

最后则是学习速率和梯度下降参数。关于梯度下降,这方面有Momentum、NAG、AdaGrad等各种优化模型,实践中基本采用Mini-Batch的随机梯度下降方法。另外,怎么粗略地确定一个比较好的学习速率呢?好像也只能通过尝试。可以先把学习速率设置为较小值,然后观察training cost的走向,如果cost在减小,那你可以逐步地调大学习速率,如果cost在增大,那就得减小学习速率.经过一番尝试之后,可以大概确定学习速率的合适值。通常在训练时可以采用变学习速率的方式,即在训练的初期采用较大的学习速率,随着训练的迭代,模型的精度提高则逐渐减少学习速率。

恒生的使命就是“让金融变简单”,我们也会在高频交易等方面不断进行尝试,实现“投资者人人享有自己的量化交易模型”的梦想,助力恒生搭建智能策略服务的PaaS平台!


作者:



版权所有 侵权必究

如需转载请联系

0571-28829811