楼主: mingdashike22
794 27

[量化金融] CNNPred:基于CNN的股市预测,使用多个数据源 [推广有奖]

11
mingdashike22 在职认证  发表于 2022-6-10 23:28:00 |只看作者 |坛友微信交流群
因此,它们似乎适合于类似领域的市场预测,其中市场的历史行为在预测中具有重要作用。LSTM是最流行的RNN类型之一。在(Nelson等人,2017年)中,技术指标被输入LSTM,以预测巴西股市的股价方向。根据报告的结果,LSTM的准确率为55.9%,优于MLP。卷积神经网络是继MLP和LSTM之后应用于股市预测的另一种深度学习算法,其提取有效特征的能力在许多其他领域也得到了验证。在(Di Persio&Honchar,2016)中,CNN、LSTM和MLP被应用于标普500指数的收盘价历史数据。结果表明,CNN优于LSTMand MLP,准确率为53.6%,而LSTM和MLP的准确率分别为52.2%和52.1%。根据一些已报道的实验,CNN输入和处理数据的方式对提取特征集的质量和最终预测有着重要作用。例如,CNN被用于(Gunduz et al.,2017),其中BorsaIstanbul 100家公司的10天数据被用于生成技术指标和时滞特征。然后,应用CNN改进特征集。据报道,CNN和logistic回归之间的比较表明,这两种方法几乎没有差异。在另一次改进预测的尝试中,将特征聚集到不同的组中,并将相似的特征放在一起。实验表明,该预处理步骤提高了CNN的性能,实现了56%的F-测度。表1总结了从初始特征集、特征提取算法和预测方法方面解释的论文。

使用道具

12
可人4 在职认证  发表于 2022-6-10 23:28:03 |只看作者 |坛友微信交流群
可以看出,由于这些算法在从原始数据中自动提取特征方面的能力,在最近的出版物中有一种倾向于深入学习模型。然而,大多数研究人员仅使用一个市场的技术指标或历史价格数据进行预测,而有各种数据来源可以提高股票市场预测的准确性。在本文中,我们将介绍一种新的基于CNN的框架,该框架旨在聚合多个信息源,以便自动提取特征来预测股票市场的方向。背景在介绍我们建议的方法之前,在本节中,我们将回顾作为我们框架主要元素的进化神经网络。3.1. 卷积神经网络LeCun及其同事于1995年介绍了卷积神经网络(LeCun等人,1995;Gardner&Dorling,1998)。CNN有许多层,可分为输入层、卷积层、池层、完全连接层和输出层。3.1.1. 卷积层卷积层应该对数据进行卷积运算。事实上,输入可以被视为一个函数,应用于该函数的滤波器是另一个函数,卷积运算是一种用于测量对输入应用滤波器引起的变化的算法。过滤器的大小显示该过滤器的覆盖范围。每个过滤器利用一组共享的权重来执行进化操作。重量在训练过程中更新。让我们假设l层的输入- 1是一个N×N矩阵,使用F×F卷积滤波器。然后,根据等式1计算层l的输入。

使用道具

13
何人来此 在职认证  发表于 2022-6-10 23:28:06 |只看作者 |坛友微信交流群
图1显示了在作者/年目标数据特征提取预测方法(Kara et al.,2011)Borsa IstanbulBIST 100 Indexternational indicatorannansvm(Patel et al.,2015)4印度股票和指标技术指标SVMRF NB(Qiu et al.,2016)日经225指数财务指标宏观经济数据Annga+ANNSA+ANN(Qiu&Song,2016)日经225指数扩展技术指标ANN GA+ANN(Nelson et al.,2017)巴西Bovespa5股票技术指标LSTM LSTM(Di Persio&Honchar,2016)标准普尔500指数数据MLP RNN CNNwavelet+CNNMLPRNNN(Moghadam et al.,2016)NASDAQprice数据ANN-DNN ANN-DNN(Ar\'evalo et al.,2016)AAPL股份有限公司3提取特征DNN DNN(Zhong&Enke,2017)标准普尔500指数各种数据源PCA ANN(Yong等人,2017)新加坡STIprice数据DNN DNN(Chong等人,2017)韩国KOSPI38股票回报数据PCA RBMAEDNN(Gunduz等人,2017)Borsa IstanbulBIST 100股票技术指标时间特征聚类CNNCNNOUR方法。S、 5主要说明数据的各种来源。数据的3D表示+CNNCN表1:下一层解释文件的摘要。通常,每个过滤器的输出在进入下一层之前通过激活功能。Relu(公式2)是一种常用的非线性化函数。vli,j=δ(F-1Xk=0F-1Xm=0wk,mVl-1 i+k,j+m)(1)V1,1…V1,F…V1,N…VF,1…VF,F…VF,N…VN,1…VN,F…VN,NW1,1…W1,F…WF,1…WF,FInputFilterV1,1…V1,E…VE,1…VE,EOutputE=N-F+1图1:将过滤器(F×F)应用于输入数据(N×N),以获得方程式1下一层中V1,1的值,vli,jis层l,wk的第i行第j列的值,mis过滤器k行m列的权重,δ是激活函数。f(x)=最大值(0,x)(2)3.1.2。池层池层负责对数据进行二次采样。

使用道具

14
何人来此 在职认证  发表于 2022-6-10 23:28:10 |只看作者 |坛友微信交流群
这种操作不仅降低了学习过程的计算成本,而且还可以处理CNN中的过度匹配问题。过度拟合是指当一个经过训练的模型对训练数据太过拟合,以至于无法推广到未来看不见的数据时出现的一种情况。它与学习的参数数量和学习预测模型的数据量有关。深部模型,包括CNN,通常有许多参数,因此它们比浅部模型更容易过度拟合。已经提出了一些避免过度拟合的方法。在CNN中使用池层有助于降低过度匹配的风险。池窗口中的所有值仅转换为一个值。这种转换减少了以下层的输入大小,从而减少了模型必须学习的参数数量,从而降低了过度拟合的风险。Maxpooling是最常见的池类型,其中选择了某个窗口中的最大值。3.1.3. 全连接层在CNN的最后一层,有一个MLP网络,称为全连接层。它负责将前一层中提取的特征转换为最终输出。两个连续层之间的关系由等式3vji=δ(Xkvj)确定-1kwj-1k,i)(3)在式3中,vji是j层神经元i的值,δ是激活函数和j层神经元k之间连接的权重- 1和j层神经元i由wj表示-1k,i.3.2。DropoutIn除了池外,我们还使用了另一种称为DropoutIn的技术,该技术最初是为训练深层神经网络而开发的。退出技术背后的想法是避免模型从训练数据中学习太多。

使用道具

15
何人来此 在职认证  发表于 2022-6-10 23:28:13 |只看作者 |坛友微信交流群
因此,在训练阶段的每个学习周期中,每个神经元都有相当于某个退出率的机会,不在该周期中训练。这避免了模型过于灵活,因此有助于学习算法收敛到与训练数据不太匹配的模型,相反,可以很好地对未标记的未来数据进行预测(Hinton et al.,2012;Srivastava et al.,2014)。建议的CNN:CNNpredCNN有许多参数,包括层数、每层中的过滤器数量、退出率、每层中过滤器的大小、输入数据的初始表示等,应明智地选择这些参数以获得所需的结果。虽然3×3和5×5滤波器在图像处理领域非常常见,但我们认为,每个滤波器的大小应该根据特征及其特征的财务解释来确定,而不仅仅是遵循图像处理领域以前的工作。这里我们介绍CNNPred的体系结构,这是一个基于CNN的股市预测通用框架。CNNpred有两种变体,分别称为2D CNNpred和3D CNNpred。我们将该框架分为四个主要步骤:输入数据表示、日常特征提取、持续特征提取和最终预测。输入数据的表示:CNNpred从不同的市场获取信息,并使用这些信息预测这些市场的未来。正如我们提到的,2D CNNpred和3D CNNpred采用不同的方法构建预测模型。第一种方法的目标是找到一个通用模型,将市场的历史与其未来的变化进行映射,“通用模型”指的是对多个市场有效的模型。换句话说,我们假设从历史到未来的真实映射函数对于许多市场来说是正确的。

使用道具

16
可人4 在职认证  发表于 2022-6-10 23:28:16 |只看作者 |坛友微信交流群
为了实现这一目标,我们需要设计一个能够根据市场自身历史预测市场未来的单一模型,然而,为了提取所需的映射函数,该模型需要通过来自不同市场的样本进行训练。2D CNNpred遵循这种一般方法,但除了将市场历史建模为输入数据外,它还使用了各种其他信息源。在2D CNN pred中,所有这些信息都被聚合并作为二维传感器提供给专门设计的CNN,这就是为什么它被称为2D CNNpred。另一方面,第二种方法3D CNNpred假设在不同的市场中进行预测需要不同的模型,但每个预测模型都可以使用许多市场历史中的信息。换言之,3D CNNpred与2D CNNpred不同,3D CNNpred并没有训练一个单一的预测模型,该模型可以根据每个市场自身的历史数据预测每个市场的未来,而是从许多市场的历史信息中提取特征,并使用这些特征为每个市场训练一个单独的预测模型。这种方法背后的直觉是,决定每个市场未来行为的机制至少与其他市场略有不同。然而,一个市场未来会发生什么,可能取决于该市场内外的情况。基于这一直觉,3D CNNpred使用三维张量,聚合来自不同市场的历史信息,并将其提供给专门设计的CNN,以训练每个市场的预测模型。尽管所有市场的模型结构都是相同的,但用于培训的数据对于每个市场都是不同的。换句话说,在3D CNNpred中,每个预测模型都可以看到所有可用信息作为输入,但经过训练,可以根据输入预测特定市场的未来。

使用道具

17
kedemingshi 在职认证  发表于 2022-6-10 23:28:19 |只看作者 |坛友微信交流群
可以预期,3D CNNpred与2D CNNpred不同,在做出预测之前,3D CNNpred将能够将不同市场的信息结合到高级功能中。图2显示了如何在CNNpreds变体中表示和使用数据的模式。每日特征提取:历史数据中的每一天都由开盘价和收盘价等一系列特征表示。市场预测的传统方法是分析这些特征,例如以candlesticks的形式,可能是基于这些特征构建更高层次的特征,以便预测市场的未来行为。CNNpred第一层设计背后的理念来自于这一观察。在两个市场预测日的第一步中,功能预测日预测CNNProdicts market 1深度CNN预测所有市场…market 1市场k…3D-CNNpred2D-CNNPREDIFEATURESPast days…深度CNNProdicts market Kmarkets过去一天图2:CNNPREDICATES的两个变量中的输入数据结构,有一个卷积层,其任务是将每日特征组合成更高级别的特征,以表示历史上的每一天。持续特征提取:预测市场未来行为的一些其他有用信息来自于研究市场随时间的行为。这样的研究可以为我们提供有关市场行为中出现的趋势的信息,并找到可以根据这些趋势预测未来的模式。因此,将连续几天的数据特征与代表趋势或反映特定时间间隔内市场行为的高级特征相结合非常重要。

使用道具

18
mingdashike22 在职认证  发表于 2022-6-10 23:28:23 |只看作者 |坛友微信交流群
2D CNNpred和3D CNNpred数据都有层,这些层应该结合第一层中提取的特征,并产生更复杂的特征,在一定的时间间隔内汇总数据。最终预测:在最后一步,使用衰减操作将先前层中生成的特征转换为一维向量,并将该向量馈送至完全连接的层,该层将特征映射到预测。在接下来的两个部分中,我们将解释2D CNNpred和3D CNNpred的总体设计,以及它们是如何用于我们在本文进行的具体实验中使用的数据集的。在我们的实验中,我们使用了来自5个不同指数的数据。每个指数有82个特征,这意味着市场历史的每一天都有82个特征。收集的82个特征以形成完整特征集的方式进行选择,包括经济数据、技术指标、美国大公司、大宗商品、货币汇率、期货合约和世界股票指数。历史的长度为60天,即对于每个预测,模型可以使用过去60天的信息。4.1. 2D CNNpred输入数据的表示:如前所述,2D CNNpred的输入是一个二维矩阵。矩阵的大小取决于每天代表的特征数量,以及用于进行预测的历史回溯天数。如果用于预测的输入由d天组成,每个天由f特征表示,则输入张量的大小将为d×f。每日特征提取:为了在2D CNNpred中提取每日特征,使用1×个初始特征过滤器。

使用道具

19
mingdashike22 在职认证  发表于 2022-6-10 23:28:36 |只看作者 |坛友微信交流群
这些过滤器中的每一个都覆盖了所有的日常特征,并且可以将它们组合成一个更高级别的特征,因此使用该层,2D CNNpred可以构建主要特征的不同组合。通过将过滤器中的相应权重设置为零,网络也可以丢弃无用的特征。因此,该层用作初始特征提取/特征选择模块。图3表示对输入数据应用简单过滤器。持续性特征提取:虽然2D CNNpred提取的第一层特征来自主要的日常特征,但以下各层结合不同日期的提取特征来构建更高级别的特征,以聚合最近一天的特征V1、t-1…vj、t-1v1、t-i…vj、t-iw1…wjFiltervt-1vt-i1…jt-1…t-i图3:将1×个特征过滤器应用于2D输入张量。特定持续时间内的可用信息。与第一层一样,这些后续层使用过滤器将较低级别的特征从其输入组合到较高级别的特征。2D CNNpred在第二层使用3×1过滤器。这些过滤器中的每一个都是连续三天进行过滤的,这种设置的灵感来自于观察到的大多数著名的烛台图案,如三线打击和三只黑乌鸦,都试图在连续三天内找到有意义的图案(Nison,1994;Bulkowski,2012;Achelis,2001)。我们将此视为可以从历史数据中连续三个时间单位的时间窗口中提取的潜在有用信息的标志。第三层是执行a2×1最大池的池层,这是池层的常见设置。

使用道具

20
nandehutu2022 在职认证  发表于 2022-6-10 23:28:40 |只看作者 |坛友微信交流群
在这个池层之后,为了以更长的时间间隔聚合信息并构建更复杂的特征,2D CNNpred使用另一个卷积层,该卷积层具有3×1滤波器,然后是第二个池层,就像第一个池层一样。最终预测:由最后一个池层生成的生成的特征被转换为最终特征向量。然后通过完全连接的层将该特征向量转换为最终预测。Sigmoid(等式4)是我们为该层选择的激活函数。由于sigmoid的输出是一个[0-1]区间的数字,2D CNNpred对市场的预测可以被解释为该市场第二天价格上涨的可能性,这是一条有价值的信息。显然,在上涨概率较高的股票上投入更多资金是合理的。另一方面,上涨概率较低的股票是短期抛售的好选择。然而,在我们的实验中,我们将输出离散化为0或1,以更接近预测值的为准。f(x)=1+经验(x)(4)2D CNNpred的样本配置:如前所述,用于每个预测的输入包括60天,每个由82个特征表示。因此,2D CNNpred的输入是60 x 82的矩阵。第一个卷积层使用八个1×82滤波器,之后有两个卷积层,其中有八个3×1滤波器,每个卷积层后面有一个2×1最大池。最终衰减的特征向量包含104个特征,这些特征被馈送到完全连接的层以产生最终输出。图4显示了描述过程的图形可视化。4.2. 输入数据的3D CNNpred表示:3D CNNpred与2D CNNpred不同,它使用三维张量表示数据。原因是,每个提供给3D CNNpred的样本都包含来自多个市场的信息。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-17 18:43