【论文速读】【未完成】【金融】Deep learning with long short-term memory networks for financial market predictions

本文仅仅为个人快速阅读记录。

😄 😆 😊 😃 😏 😍 😘 😚 😳 😌 😆 😁 😉 😜 😝 😀 😗 😙 😛 😴 😟 😦 😧 😮 😬 😕 😯 😑 😒 😅 😓 😥 😩 😔 😞 😖 😨 😰 😣 😢 😭 😂 😲 😱

LSTM


Abstract

部署了LSTM网络,用于预测1992年至2015年标准普尔500成份股的样本外方向运动。

1. Introduction

使用LSTM研究all S&P 500 constituents from 1992 until 2015。

2. Data, software, hardware

2.1. Data

对于实证应用,我们使用来自汤森路透的标准普尔500指数成分股。为了消除幸存者偏差,我们首先从汤森路透(Thomson Reuters)获得1989年12月至2015年9月标准普尔500指数(S&P 500)的月末组成名单。我们将这些列表合并到一个矩阵中,表示该股票是否为随后一个月的指数组成部分。因此,我们能够大致重现1989年12月至2015年9月间任何给定时间点的标普500指数。

第二步,我们下载从1990年1月到2015年10月的每日总回报指数(daily total return indices)。回报指数是股息价格(cum-dividend prices),反映了所有相关的公司行为和股票分拆,使其成为计算回报最合适的指标。根据Clegg和Krauss(2016)的数据,我们在表1中报告了按行业划分的平均汇总数据。它们基于每个行业的等权重投资组合,按月生成,并仅限于标普500指数的组成部分。

3. Methodology

3.1. Generation of training and trading sets

定义了一个"study period" 作为"training-trading set",其中training period 为750天,trading period为250天。将从1990年到2015年的全部数据集划分为23个不存在重叠交易的研究时期。令 n i n_i ni表示"study period" i i i的最后一天的标准普尔500成分股的股票数量。

对于训练集,我们考虑所有的 n i n_i ni股票及其历史。有些股票展示了整整750天的训练历史,有些只是这个时间框架的一个子集,例如,当它们在稍后阶段上市时。交易集也是由所有 n i n_i ni股票组成。如果某一成分在交易期内某一天之后没有显示价格数据,则认为该成分在该天之前一直在交易。

3.2. Feature and target generation

3.2.1. Features - Return sequences for LSTM networks

P s = ( P t s ) t ∈ T P_s=(P_t^s)_{t\in T} Ps=(Pts)tT为“股票 s s s t t t时刻的价格”。其中 s ∈ { 1 , . . . , n i } s\in \{1,...,n_i\} s{1,...,ni} R t m , s R_t^{m,s} Rtm,s m m m时间段后的simple return。

R t m , s = P t s P t − m s − 1 (1) R_t^{m,s} = \frac{P_t^s}{P_{t-m}^s}-1 \tag1 Rtm,s=PtmsPts1(1)

m = 1 m=1 m=1时即 R R R P t P_t Pt P t − 1 P_{t-1} Pt1的比值减 1 1 1。我们以 m = 1 m=1 m=1计算每只股票 s s s在第 t t t天的 R R R值,然后装入维度为 n i × T s t u d y n_i \times T_{study} ni×Tstudy的向量 V V V,其中 T s t u d y T_{study} Tstudy为天数。我们结合序列的均值 μ t r a i n m \mu_{train}^{m} μtrainm与方差 σ t r a i n m \sigma_{train}^{m} σtrainm得到下式:

R ~ t m , s = R t m , s − μ t r a i n m σ t r a i n m (2) \tilde{R}_{t}^{m,s}=\frac{R_t^{m,s}-\mu_{train}^{m}}{\sigma_{train}^{m}} \tag2 R~tm,s=σtrainmRtm,sμtrainm(2)

m = 1 m=1 m=1并选择序列长度为 240 240 240。每隔一天就形成一个新的序列,如下图:

这样study period总共包括了 380 , 000 380,000 380,000条序列,取 250 , 000 250,000 250,000条用于样本内训练, 125 , 000 125,000 125,000条用于样本外预测。

3.2.2. Targets

为了可比性,本文遵循Takeuchi and Lee (2013)定义的一个二元分类问题。即每个股票 s s s和日期 t t t的响应变量 Y t + 1 s Y^s_{t+1} Yt+1s可以取两个不同的值。为了定义这两个类别,我们按升序排列所有一期收益 R t + 1 1 , s R^{1,s}_{t+1} Rt+11,s,在 t + 1 t+ 1 t+1期所有股票 s s s,并把它们分成两个大小相等的类别。

如果股票 s s s的一期收益率 R t + 1 1 , s R^{1,s}_{t+1} Rt+11,s小于所有股票在 t + 1 t+1 t+1期间的截面收益率中值,则实现类别 0 0 0。类似地,如果 s s s的单周期返回值大于或等于截面中值,则实现第 1 1 1类。

3.3. LSTM networks

在这里插入图片描述

使用交叉熵作为目标函数。

对于LSTM网络的培训,我们通过keras应用了三种先进的方法。

  • 首先,我们使用RMSprop作为优化器,RMSprop是rprop的一个mini-batch处理版本(Tieleman ans Hinton, 2012)。RMSprop“通常是循环神经网络的好选择”(Chollet, 2016)。
  • 其次,在Gal和Ghahramani(2016)之后,我们在递归层中应用dropout正则化。因此,在训练期间,在输入门和循环连接处,每次更新时都随机丢弃一部分输入单元,从而降低了过拟合的风险,提高了泛化能力。
  • 第三,我们利用早期停止作为进一步的机制,以防止过拟合。

在此,我们将训练样本分为两个集合,一个是训练样本,一个是验证样本。第一个集合用于训练网络,反复调整网络的参数,使损失函数最小化。在每个历元(一次通过第一组样本)之后,网络预测验证集中未见的样本,并计算验证损失。一旦验证损失在耐心期间没有减少,训练就会停止,并且恢复验证损失最低的模型的权重(参见Chollet中的ModelCheckpoint回调(2016))。Granger(1993)建议保留大约20%的样本作为“样本后”数据,之后我们使用80%的训练样本作为训练集,20%作为验证集,最大训练持续时间为1000个epoch,早期停止patience为10。

3.4. Benchmark models - random forest, deep net, and logistic regression

选用随机森林、深度神经网络(DNN)和逻辑回归方法对LSTM进行基准测试。

3.5. Forecasting, ranking, and trading

对于所有模型,我们只利用时间t之前的信息,预测每只股票在 t + 1 t + 1 t+1期间表现超过/低于横截面中位数的概率 P ~ t + 1 ∣ t s \tilde{P}^s_{t+1 | t} P~t+1ts。然后,我们按照该概率的降序对每个 t + 1 t+1 t+1期间的所有股票进行排名。排名最高的对应的是最被低估的股票,这些股票在 t + 1 t + 1 t+1中的表现有望超过横截面中位数。因此,对于由 2 k 2k 2k股组成的多空投资组合,我们对每个排名的顶部 k k k股进行多头,对翻牌 2 k 2k 2k股进行空头—见Huck(2009,2010)。

4. Results

4.1. Performance review

4.1.1. Overview

4.1.2. Details on predictive accuracy

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值