首页 > 其他分享 >MATLAB深度学习Transformer神经网络量化金融时间序列预测交易策略回测

MATLAB深度学习Transformer神经网络量化金融时间序列预测交易策略回测

时间:2024-11-22 20:18:58浏览次数:1  
标签:Transformer 架构 预测 训练 模型 回测 MATLAB 数据 我们

全文链接:https://tecdat.cn/?p=38337

原文出处拓端数据部落公众号

此文展示了如何在MATLAB®中使用Transformer网络对股票的每日价格进行建模。我们将预测三只个股的价格趋势,并使用预测的时间序列值对交易策略进行回测。

开始

在MATLAB R2023a和R2023b中引入了新的层,允许在使用深度网络设计器开发的网络架构中引入Transformer层。由于这些新的Transformer层能够捕获数据中的时间依赖性和长期依赖性,因此它们对于使用金融数据进行时间序列预测非常有用。

(一)positionEmbeddingLayer

positionEmbeddingLayer允许对序列中每个元素的位置信息进行编码。通过纳入位置嵌入,模型可以学习区分不同的时间步,并捕获数据中的时间依赖性。

(二)selfAttentionLayer

selfAttentionLayer允许模型权衡序列中不同元素的重要性。这使模型能够捕获序列中所有元素之间的依赖性,并学习它们之间的关系。自注意力机制在捕获数据中的长期依赖性方面也很有效,因为它们可以在遥远的时间步之间建立连接,理解可能对未来结果产生延迟影响的模式。

(三)indexing1dLayer

indexing1dLayer允许从输入数据的指定索引中提取数据。这使网络能够对selfAttentionLayer的输出进行回归。

导入和预处理数据


我们首先对数据进行预处理,根据日期将数据集划分为训练集和测试集。对于此数据集,训练数据和测试数据划分的截止日期是2021年初。在划分数据集后,我们基于训练数据的均值和标准差对训练数据进行标准化,并对测试数据进行归一化。
使用我们归一化后的数据,我们定义一个与数据集中每个价格相对应的30天价格数组,作为我们模型的顺序输入。每个30天的实际价格数据滚动窗口将用于预测下一天的价格。

定义网络架构和训练选项

现在我们已经预处理了数据,我们可以为我们的深度学习模型指定网络架构和训练选项。我们可以将网络架构指定为一系列层,要么使用深度网络设计器,要么在MATLAB中以编程方式指定。以下是我们架构的编程实现以及在深度网络设计器中所选网络架构的可视化。

 
  1.    
  2.   layers = [
  3.   sequenceInputLayer(numChannels,Name="input")
  4.   positionEmbeddingLayer(numChannels,maxPosition,Name="pos-emb");
  5.   additionLayer(2, Name="add")
  6.   selfAttentionLayer(numHeads,numKeyChannels,'AttentionMask','causal')
  7.   selfAttentionLayer(numHeads,numKeyChannels)
  8.   indexing1dLayer("last")
  9.   fullyConnectedLayer(numChannels)
  10.   regressionLayer];
 


在指定我们的网络架构后,我们还需要使用trainingOptions函数为我们的模型指定训练选项。以下是为此网络架构选择的训练选项。在这些训练选项中,我们可以指定执行使用GPU,而无需更改我们的任何模型架构。为了使用GPU或并行池进行训练,需要并行计算工具箱。

调整超参数

通过深度学习工具箱™中的实验管理器来测试我们网络架构和训练选项的不同超参数是一种很好的方法。有关使用实验管理器训练深度学习网络的教程可以在此处找到。以下是为调整此演示中网络架构的超参数而设计的实验的设置和输出。

训练模型并可视化性能

现在我们已经定义了我们的网络架构和训练选项,我们可以使用trainNetwork函数来训练我们的模型。以下是模型训练过程中途的训练进度图像。

使用训练好的模型,我们可以基于前30天的滚动窗口对每只股票的价格进行预测,并将它们与实际的历史股票价格进行比较。以下是将模型预测与实际股票价格进行比较的图,分为训练集和测试集。

除了可视化我们模型的性能外,我们还可以计算均方根误差(RMSE),以获得对我们预测质量的定量估计。RMSE衡量预测股票价格与实际股票价格之间的平均差异,提供了模型准确性的指示。对于股票A、B和C,基于训练期间每只股票平均价格的训练数据的百分比RMSE分别为1.05%、1.17%和2.30%。对于股票A、B和C,基于测试期间每只股票平均价格的测试数据的百分比RMSE分别为0.87%、0.97%和1.98%。

在市场数据上回测模型预测

虽然RMSE是量化一组预测性能的常用方法,但我们使用这些预测的目的是利用它们开发一种在测试数据上有利可图的策略。为了测试交易策略的盈利能力,我们可以使用金融工具箱™中的回测工具。实现的四种交易策略是:

(一)仅做多策略

将所有资本投资于具有正预测回报的股票,与预测回报成比例。

(二)多空策略

将资本投资于所有股票,包括正预测回报和负预测回报,与预测回报成比例。

(三)最佳选择策略

将所有资本投资于具有最高预测回报的单一资产。

(四)等权重策略

每天重新平衡投资资本,在股票之间进行等权重分配(基准)。
以下是显示这些交易策略在测试数据期间性能的净值曲线。

基于上述净值曲线,如果我们从2021年1月开始根据模型预测进行投资,我们可以看到我们的模型预测在仅做多策略下实现了24%的回报,在最佳选择策略下实现了22%的回报。等权重策略不考虑我们的模型预测,并作为基础股票的基线性能指标,在测试期间有13%的回报。这些结果表明,我们模型的预测可以帮助开发有利可图的交易策略。
虽然这些回测结果提供了关于使用模型预测实施的交易策略的盈利能力和有效性的见解,但模型和用于测试其预测结果的交易策略在实际交易场景中预计不会盈利。

 

标签:Transformer,架构,预测,训练,模型,回测,MATLAB,数据,我们
From: https://www.cnblogs.com/tecdat/p/18563681

相关文章

  • 基于PSO-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
    1.算法运行效果图预览(完整程序运行后无水印) pso优化SVM过程:  识别率对比:      2.算法运行软件版本matlab2022a 3.部分核心程序(完整版代码包含详细中文注释和操作步骤视频)x=rand(Num,D)/50;v=rand(Num,D)/50;%先计算各个粒子的适应度,并初......
  • matlab基础例题
    1.MATLAB命令窗口中可用____命令清除工作区中的变量;用____命令清除命令窗口中的内容。2.MATLAB中的运算包括________________。3.MATLAB中的M文件有_____________。4.MATLAB中的程序控制结构包括___________.5.已知矩阵A[123;456;789],A(6)__________A(1......
  • TOKENFORMER: RETHINKING TRANSFORMER SCAL- ING WITH TOKENIZED MODEL PARAMETERS 翻
    批量处理PDF文档,就选Doc2X支持大规模PDF转Word、Markdown、HTML,集成表格与多栏解析,提升工作效率。BatchProcessPDFswithDoc2XHandlelarge-scalePDFtoWord,Markdown,orHTMLconversionswithintegratedtableandmulti-columnparsingforbettereffi......
  • Matlab高光谱遥感、数据处理与混合像元分解技术
    原文:Matlab高光谱遥感、数据处理与混合像元分解https://mp.weixin.qq.com/s?__biz=MzUzNTczMDMxMg==&mid=2247629522&idx=7&sn=ae7a3957be501d71f7e7c8f9e4fc7f6c&chksm=fa8dbb35cdfa322358a34b591446c129dac64fee9521ebba64acead8f496b8e66be19c6e1098&token=358797745&......
  • 视觉顶会论文 | 基于Swin Transformer的轴承故障诊断
     往期精彩内容:Python-凯斯西储大学(CWRU)轴承数据解读与分类处理Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客三十多个开源数据集|故障诊断再也不用担心数据集了!......
  • 计算机视觉 | 注意力机制】12种即插即用涨点模块分享!含注意力机制、卷积变体、Transfo
    即插即用模块1.**GAM-全局注意力机制**2.**STN-空间变换网络**3.**SENet-挤压和激励网络**4.**DConv-动态卷积**5.**FAN-完全注意力网络**6.**CA-协调注意力**7.**ASFF-自适应空间特征融合**8.**CFNet-全新多尺度融合**9.**simAM-简单无参数......
  • 多目标优化算法:多目标伞蜥优化算法Multi-objective Frilled Lizard Optimization求解D
    一、伞蜥优化算法伞蜥优化算法(FrilledLizardOptimization,FLO)是2024年提出的一种新颖的元启发式算法,它模仿了伞蜥在其自然栖息地中独特的狩猎行为。该算法的核心原则被详细地描述并数学结构化为两个不同的阶段:(i)探索阶段,模仿蜥蜴对猎物的突然攻击;(ii)开发阶段,模拟蜥......
  • Transformer 模型全方位解析
    Transformer模型全方位解析引言Transformer模型自从在2017年被提出以来,已经成为了自然语言处理(NLP)领域的主流模型之一。它不仅在机器翻译、文本生成等任务中表现出色,还成为了许多先进模型(如BERT和GPT)的基础。本文将全面解析Transformer模型的概念、工作原理、优势、应用......
  • R语言统计分析与MATLAB数学建模书籍推荐
    文章目录一、《R语言统计分析与可视化》1.1内容核心1.2内容简介二、《MATLAB数学建模从入门到精通》2.1关键点2.2内容简介2.3作者简介一、《R语言统计分析与可视化》R语言统计分析与可视化从入门到精通。学R语言、练语法、取数据、预处理、可视化、回归分析......
  • Matlab 答题卡方案
    在现代教育事业的飞速发展中,考试已经成为现代教育事业中最公平的方式方法,而且也是衡量教与学的唯一方法。通过考试成绩的好与坏,老师和家长可以分析出学生掌握的知识多少和学习情况。从而老师可以了解到自己教学中的不足来改进教学的方式方法,提高教学的水平。学生也可以通过考试......