您当前的位置:首页 >> 量化交易

深度学习可以用于量化投资吗

时间:2017-08-06 00:06    来源: 对冲笔记   作者:Greg Harris

摘要: 深度学习在图像识别和语音识别领域已经取得重大成就,但是,它在金融投资领域的效果还并没有得到广泛验证,所谓“深度学习黑箱”,到底有多深多黑,本文做了一些不错的研究工作。

深度学习在图像识别和语音识别领域已经取得重大成就,但是,它在金融投资领域的效果还并没有得到广泛验证,所谓“深度学习黑箱”,到底有多深多黑,本文做了一些不错的研究工作。(文章内容略微学术)


文中缩写:

    DBN = 深度信念网络

    LSTM = 长短期记忆网络

    MLP = 多层感知器

    RBM = 受限玻尔兹曼机

    ReLU = 修正线性单元

 CNN = 卷积神经网络


一、限价委托单薄模型(LimitOrder Book Modeling


1. Sirignano2016提出一种预测限价委托单薄变化的方法。他开发了一个「空间神经网络(spatial neural network)」,该网络可以利用局部空间结构的优势,比标准的神经网络更具可解释性、也更具计算效率。他模拟了在下一状态变化时最好的出价和要价。


架构:每个神经网络有4 层。标准的神经网络每个隐藏层有250 个神经元,而该空间神经网络有50 个。他在隐藏层神经元上使用双曲正切激活函数。


训练:他在2014 年至2015 年的489 支股票的委托单薄上训练并测试了该网络(每支股票有一个单独的模型)。他使用了来自纳斯达克的  Level III 限价委托单薄数据,这些数据有着纳秒级别的十进制精度。训练包括了 50 TB 的数据,并且使用了50 GPU 组成的集群。他总结了200个特征:现价委托单薄在首个50 非零买入和卖出(bid/ask)水平的价格和大小。他使用dropout 防止过拟合,并在每个隐藏层之间使用批规范化(batch normalization)来防止内部的协变量转变(covariate shift)。最后,使用RMSProp 算法完成训练。RMSProp类似于带有动量的随机梯度下降,但它通过一个过去梯度的移动平均(running average)对梯度进行规范化。他使用了一个自适应学习速率——在任何时候,当训练错误率随着训练时间增加时,这个学习速率就会按一定的常数因子下降。他使用一个被一个验证集强加的提前停止(earlystopping)来减少过拟合。在训练时为了减少过拟合,他也用了一个  l^2 惩罚机制。


结果:他的结果显示限价委托单薄展现出了一定程度的局部空间结构。他能提前1 秒预测委托单薄,也能预测下一次买入/卖出变化的时候。这一空间神经网络超过了标准的神经网络和没有线性特征的逻辑回归。这两种神经网络都比逻辑回归的错误率低10%


二、基于价格的分类模型


1. Dixon 等人(2016使用一个深度神经网络预测43 种大宗商品和外汇期货在接下来5 分钟的价格变化。


架构:他们的输入层有9896 个神经元,输入由滞后的价格差别和合同间的协动构成的特征。网络中有5 层学习到的全连接层。4个隐藏层中的第一层有1000 个神经元,而且后面的每层逐次减少100 个神经元。输出层有129 个神经元(每一类{-1,0,1} 对应3 个神经元,乘以43个合同)。


训练:他们使用标准的带有随机梯度下降的反向传播方法进行训练。他们通过使用mini-batching(依次在数个训练样本上计算梯度,而非单个样本)加速训练过程。他们使用一个英特尔Xeon Phi 协处理器进行训练,而非使用英伟达GPU 


结果:总体上,他们报告在三类分类上实现了42% 的准确率。他们做了一些前行训练(walk-forward training),而非传统的回测(backtest)。他们的箱形图(boxplot)展示了一些来自每一合同mini-backtest 的普遍积极的夏普比率。他们没有把交易成本或者交叉买入/卖出差价考虑在内。他们所有的预测和特征都基于每5 分钟最后时刻的中间价位。


2. Takeuchi  Lee2013想要通过预测哪支股票将有比中值更高或更低的月度收益(monthly returns)来加强动量效应(momentum effect)。


架构:他们使用一个由堆栈RBM 组成的自动编码器提取来自股票价格的特征,然后他们将特征送入一个前馈神经网络分类器。每个RBM 包含由对称链(symmetric links)连接的可见单位层和隐藏单位层。第一层有33 个单位,用于输入来自某个时候一支股票的特征。对每个月t 而言,特征包括t-2月到t-13 12 个月份的特征,以及对应t 月的近似20 天的回报。他们通过计算关于所有股票每个月或每天的横切面(cross-section)的 z-得分,正则化每个回报特征。编码器最终层的隐藏单位的数量急剧缩减,强迫降维。输出层有2 个单位,对应股票是否低于或高于月度收益的中间值。最终层的大小依次为33-40-4-50-2


训练:在预训练期间,他们将数据集分割成更小的、非重叠性的mini-batches。然后,他们展开RBM 形成一个编码解码器,使用反向传播对其进行精调。他们考虑了所有在NYSEAMEX或纳斯达克上交易的价格高于5 美元的股票。他们在1965 年至1989 年的数据上进行训练(848,000支股票的每月样本),并在 1999 年至 2009 年的数据上进行测试(924,300支股票的每月样本)。一些训练数据被保留,作为层的数量和每层单位的数量的验证。


结果:他们总体的准确率大约是53%。但他们考虑到预测前面十分之一股票和后面十分之一股票之间的差别时,他们得到每月3.35% 的收益,或者每年45.93% 的收益。


3. Batres Estrada2015预测哪个标准普尔 500 指数的股票在哪天将有高于中值的回报,而且他的研究看起来受到了Takeuchi Lee2013)论文的影响。


架构:他使用一个3 DBN 结合到一个MLP。在每个隐层有400 个神经元,而且他使用到了S形激活函数。输出层是一个带有两个输出神经元的Softmax 层,进行的是二元分类(中值之上或之下)。DBN由堆栈RBM 组成,每个进行连续的训练。


训练:他首先预训练了DBN 模块,然后使用反向传播精调整个DBN-MLP。输入包括33 个特征:t-2t-13 月的月度对数收益率,20支股票在t 月的每日对数收益率,以及元月效应的指示变量。这些特征使用每个时间段的Z 得分进行正则化。他使用了1985 年至2006 年的标准普尔500 指数数据集,并按 70%15%  15% 的比例分开分别用作训练、验证和测试。他使用验证数据选择层数、神经元数和正则化参数,也是使用early-stopping 防止过拟合。


结果:他的模型有53% 的准确率,超过了正则化逻辑回归以及一些MLP 基线。


4. Sharang Rao2015使用一个在技术指标上训练的DBN 交易一系列美国中期国债期货。


架构:他们使用一个包含2 个堆栈RBM DBN。第一个RBM Gaussian - Bernoulli15个节点),第二个RBM Bernoulli20节点)。DBN产生隐藏的特征,他们尝试将这些特征输入进3 个不同的分类器:正则化逻辑回归、支持向量机以及一个有2 个隐层的神经网络。他们预测如果 5 天内投资组合上升则结果是1,反之是-1


训练:他们使用一个对比差异算法训练DBN。他们基于开仓、走高、走低、收盘利益和体量数据计算信号,这些数据最早的是1985 年的,2008年金融危机期间的一些点被移除了。他们使用20 个特征:在不同时间段计算得到的「日常趋势」,然后进行规范化。所有的参数使用一个验证数据集进行选择。当训练神经网络分类器时,他们提到在mini-batch 梯度下降训练期间使用一个动量参数将每次更新的系数收缩到一半。


结果:使用PCA 构建的投资组合对第一主成分没有什么影响。这种投资组合是对工具的人工延展,所以真正的交易是在ZF ZN 合同之间的差价完成的。所有的输入价格是中间价,意味着买卖差价被忽略了。结果看起来是有益的,三种分类模型的准确率比随机预测器高5%-10%


5. Zhu 等人(2016使用震荡箱理论(oscillation box theory)基于DBN 做交易决策。震荡箱理论表示,一个股票价格将在某个时间段在固定范围内震荡。如果价格超出了这个范围,然后它就进入了一个新的震荡箱。作者想要预测震荡箱的边界。他们的交易策略是当价格超出了上边界则买入股票,它低于下边界时则卖出股票。


架构:他们使用一个由堆栈RBM 构成的DBN 以及一个最后的反向传播层。


训练:他们使用block Gibbs sampling (块吉布斯采样)方法以一种无监督的方式贪婪地训练从低到高的每一层。然后,以监督方式训练反向传播层,它将精调整个模型。他们选择标准普尔500 指数中的400 支股票进行测试,而且测试集覆盖2004 2005 年间的400 天。他们使用了开仓、走高、走低、收盘价格,还有技术分析指标,作为全部的14个模型输入。一些指标通过使用灰色关联分析(gray relation analysis)或灰色关联度在预测中更具影响。


结果:在他们的交易策略中,每笔交易收取0.5% 的交易成本,并为stop-loss 和交易率增加了一些参数。我并未完全理解结果图,但报告称有极大的收益。


三、基于文本的分类模型


1. Rönnqvist  Sarlin (2016) 使用新闻文章来预测银行危机。具体来说,他们创造了一种分类器来评价一个给定的句子是否暗示了危机(distress)或安宁(tranquility)。


架构:他们在这篇论文中使用了两个神经网络。第一个用于语义的预训练,以减少维度。为了做到这一点,他们在文本上运行一个滑动窗口(sliding window),该窗口会取出一个包含5 个词的序列然后学习预测下一个词。他们使用了一种前馈拓扑(feed-forward topology),其中一旦学习到了连接权重,中间的投射层(projection layer)就会提供语义向量。他们也将句子的ID 包括到了该模型的输入中,以提供上下文语境和预测下一个词的信息。他们使用了二进制霍夫曼编码(binary Huffman coding)将句子ID 和词映射到输入层中的激活模式(activation pattern),这能依据频率粗糙地对词进行组织。他们说带有固定上下文大小的前馈拓扑在句子序列的建模上比循环神经网络更加高效。他们没有使用百万计的输入(一个词一个输入),而是使用了来自已经学到的语义模型的600 个输入。其第一层有600 个节点,中间层有50个修正线性隐藏节点,而输出层有两个节点(危机/安宁)。


训练:他们的训练使用了在2007-2009 年金融危机中在101 家银行上观察到的243 个危机事件。他们使用了71.6 万个提及银行的句子,这些句子选自危机期间或之后路透社(Reuters)的660 万篇新闻文章。


结果:他们使用一种自定义的「有用性(Usefulness)」度量来评估他们的分类模型。评估通过交叉验证完成,并为每一个分类都分配了N 家银行。他们将危机的数量聚集到了不同的时间序列,但却没有继续深入去考虑创造一种交易策略。


2. Fehrer Feuerriegel (2015)训练了一个基于新闻头条预测德国股票收益的模型。


架构:他们使用了一种递归自编码器,在每一个自编码器上都有一个用于估计概率的附加softmax 层。他们执行了三类预测{-1, 0, 1} 来预测下一天与新闻头条相关的股票的收益。


训练:他们使用高斯噪声(gaussian noise)对权重进行了初始化,然后通过反向传播进行更新。他们使用了一个英语的ad-hoc 新闻发布数据集,其覆盖了2004-2011 年之间关于德国市场的8359 个头条新闻。


结果:他们的递归自编码器有56% 的准确度,这比更传统的随机森林建模方法53% 的准确度更好。他们没有开发交易策略,公开发布了一个他们的代码Java 实施系统。


3. Ding 等人(2015) 使用从新闻头条中提取出的结构化信息预测每天标准普尔500 指数的运动。他们使用OpenIE 处理头条来获取结构化的时间表征(执行器、动作、对象、时间)。他们使用一个神经张量网络通过成倍地结合事件参数(event argument)来学习它们的语义组合性(semantic compositionality),而不是像标准神经网络那样只是绝对量地学习。


架构:他们结合了短期和长期的事件影响,使用了一个CNN 来执行输入事件序列的语义组合。他们在卷积层之上使用了一个最大池化层,这让该网络可以仅保留由卷积层生成的最有用的特征。他们有一个单独用于长期和中期事件的卷积层。这两个层与用于短期事件的输入层一起将信息馈送到一个隐藏层,然后再馈送到两个输出节点。


训练:他们从路透社和彭博社的新闻里提取出了1000 万个事件。为了进行训练,他们使用随机参数替换事件参数的方式来制造虚假的事件。在训练过程中,他们假设真实事件应该比受损的事件得分更高。当情况不是这样时,就更新模型的参数。


结果:他们发现结构化事件是比预测股市的词更好的特征。他们的方法的效果比基准方法好6%。他们预测了S&P 500 指数和15 支股票的情况,他们给出的表说明他们可以以65% 的准确度预测标准普尔500 指数。


四、波动预测


1. Xiong 等人(2015)通过对开盘价、走高、走低和收盘价的估计来预测标准普尔500 指数的日常波动。


架构:他们使用了一个包含一个LSTM 模块的单一LSTM 隐藏层。他们使用每日的标准普尔500指数的收益和波动作为输入。他们还囊括了25 个国内的谷歌趋势,覆盖了行业和经济的主要领域。


训练:他们使用了每次批处理(batch)带有 32 个采样器的Adam 方法,并使用平均绝对百分误差(MAPE)作为目标损失函数。他们设置了最大的LSTM 延迟以便涵盖10 个连续的观察。


结果:结果表明他们的LSTM 方法比GARCHRidgeLASSO 技术的效果都好。


五、投资组合优化


1. Heaton 等人(2016)尝试创造一种优于生物技术指数IBB 的投资组合。他们有一个目标:追踪少数股票和低验证误差的指数。他们也尝试在大规模下跌(drawdown)期间通过反相关(anti-correlated)来跑在指数的前面。他们没有直接对协方差矩阵建模,而是在深度架构拟合程序中进行训练,其允许出现非线性。


架构:他们使用了带有正则化和ReLU 的自动编码。他们的自动编码器有一个带有5 个神经元的隐藏层。


训练:他们使用了2012-2016 IBB 成份股的每周收益数据。他们自动编码了该指数中的所有股票,并评估了每只股票和它的自动编码的版本之间的不同之处。他们也关注了数量不断变化的其它股票,该数量是通过交叉验证选择的。


结果:他们发现追踪误差是包括在投资组合中的股票数量的函数,但似乎并没有和传统的方法进行比较。他们也使用正收益替代了指数下跌,并找到了追踪这种修改过的指数的投资组合。



参考文献:

Batres-Estrada, B. (2015). Deep learning for multivariate financialtime series. abstract

Ding, X., Zhang, Y., Liu, T., & Duan, J. (2015, June).Deep learning for event-driven stock prediction. In Proceedings of theTwenty-Fourth International Joint Conference on Artificial Intelligence (ICJAI)(pp. 2327-2333). abstract

Dixon, M. F., Klabjan, D., & Bang, J. H. (2016).Classification-based Financial Markets Prediction using Deep Neural Networks.Available at SSRN 2756331. abstract

Fehrer, R., & Feuerriegel, S. (2015). Improving DecisionAnalytics with Deep Learning: The Case of Financial Disclosures. arXiv preprintarXiv:1508.01993. abstract

Heaton, J. B., Polson, N. G., & Witte, J. H. (2016).Deep Portfolio Theory. arXiv preprint arXiv:1605.07230. abstract

Rönnqvist, S., & Sarlin, P. (2016). Bank distress in thenews: Describing events through deep learning. arXiv preprint arXiv:1603.05670.abstract

Sharang, A., & Rao, C. (2015). Using machine learningfor medium frequency derivative portfolio trading. arXiv preprintarXiv:1512.06228. abstract

Sirignano, J. A. (2016). Deep Learning for Limit OrderBooks. arXiv preprint arXiv:1601.01987. abstract

Takeuchi, L., Lee, Y. (2013). Applying Deep Learning toEnhance Momentum Trading Strategies in Stocks. abstract

Xiong, R., Nicholas, E. P., & Shen, Y. (2015). DeepLearning Stock Volatilities with Google Domestic Trends. arXiv preprintarXiv:1512.04916. abstract

Zhu, C., Yin, J., & Li, Q. (2014). A stock decisionsupport system based on DBNs. Journal of Computational Information Systems,10(2), 883-893. abstract


原作者:Greg Harris 

翻译:Richard_More

来源:对冲笔记


分享到:


©2011-2023 期投网 版权所有 粤ICP备16103419号-1   技术支持:一族网络

公安备案号:44060702000019

服务QQ:821456985    电话:13802435099

提示: 市场有风险,投资需谨慎,理性投资,风险自担。


期投网公众微信号:期研社

扫描二维码添加期投网公微(cnqhtz),我们将每日为您提供专业及时、有价值的信息及服务。