量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W 关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云 社区评选为“年度最佳作者”。
机器学习是当前金融建模、预测和决策的最先进技术。然而,实现这一潜力需要克服许多复杂的挑战。在本次演讲中,Two Sigma的Justin Sirignano——他也是牛津大学数学副教授——讨论了金融领域机器学习的机遇和挑战。Justin介绍了用于高频数据的机器学习模型的例子,并涵盖了包括训练深度学习模型来尝试预测价格波动,以及使用强化学习来尝试确定最优执行策略。我们今天先分享第一个案例,使用RNN预测股票高频价格。
Sirignano首先介绍了深度学习模型在高频价格预测中的应用。订单簿数据反应的是股票当前的供需,每个时间点买卖量价订单流数据是一个高维序列。
作者使用了1000个NASDAQ股票的高频价格数据,只选取了原始数据中价格发生变化的数据点,这样能有效降低数据量。预测的目标是下一时间点股价涨跌的方向。模型的训练一共使用了500张GPU。
为了更清晰的评估深度学习模型(这里使用的是RNN模型)的效果,作者选用了VAR模型作为对比。
在训练过程中,由于高频序列的长度非常长,RNN反向传播梯度计算非常耗时。于是作者采用了TBTT的梯度计算法,TBPTT对于一个目标序列,每次处理一个时间步(timestep),当处理到k1个时间步时,使用TBPTT后向传播k2个时间步。如果 k2 比较小,那么其计算开销就会降低。这样,它的每一个隐层状态可能经过多次时间步迭代计算产生的,也包含了更多更长的过去信息。在一定程度上,避免了上面方法中无法获取截断时间步之外信息的问题。
最终RNN模型的效果显著优于VAR模型的效果,如下图所示,作者使用了2015年6月至8月共计500只股票的数据作为样本外数据进行测试。右图蓝色的直方图是线性VAR模型的500支股票预测准确率的分布,红色直方图是RNN模型的预测准确率分布。可以明显看出红色表示RNN模型效果更好。
在模型训练的时候,我们通常面临这样的选择:比如一共有1000个股票,我们应该是针对每个股票训练一个模型,总计1000个模型;还是使用1000个股票的所有数据训练一个通用模型?这样的选择实际上很大程度取决于这1000个股票数据平稳性的差异。
但实证表明,训练一个通用模型至少有以下优点:
- 更少的过拟合
- 更高的准确度
- 当某只股票数据较少时,可以作为迁移学习使用的模型
- 更低的计算成本
实证测试也表明,通用模型在不同股票不同板块的表现都非常稳定,而且在一年样本外的表现也很稳定。
以下是通用模型相对于500个特定模型的准确率优势分布图,是左偏的。也就是说对于大部分股票,通用模型的效果更好。
当使用样本外的数据(不同的股票),我们发现模型在两个样本外时间段,在训练时未曾使用的股票上的表现也很稳定。
在具体训练过程中,500块GPU中每块GPU都是独立训练。也就是说,从所有数据中随机抽取一部分数据,随机放到某块GPU中,该GPU基于这些数据独立完成前向后向的计算,此时通用模型是异步同步的。
本案例来自作者论文《Universal features of price formation in financial markets: perspectives from Deep Learning》。
下载地址:https://arxiv.org/abs/1803.06917?context=q-fin