量化择时——LSTM深度学习量化择时(第1部分—因子测算)

之前我们尝试使用SVM,将时序数据转为横截面的数据,使用机器学习的方法进行预测

量化择时——SVM机器学习量化择时(第1部分—因子测算):
https://blog.csdn.net/weixin_35757704/article/details/129909497

但是因为股票序列本身就是时序数据,因此在计量经济学中很早就以股票数据为例,讲解时间序列数据的分析的案例。这里我们使用LSTM,一种很常用的时间序列数据的分析模型,对股价进行预测。

文章目录

  • 时间序列数据处理的特点
  • LSTM量化建模
    • LSTM模型介绍
    • LSTM训练流程
    • 特征构造
    • LSTM建模代码
  • 模型训练/验证效果
    • 最终预测效果

时间序列数据处理的特点

时间序列的数据通常被认为是由以下几个因素构成的:

  • 趋势:长期的趋势
  • 季节性:存在固定且已知的周期变化趋势
  • 周期性:存在不固定的周期变化趋势
  • 噪声:一定的随机性

时序数据的基本假设称为“平稳时间序列假设”:

  • 平稳的时间序列数据需要满足以下三个条件:

    1. 滑动窗口内的序列值均值为固定常数: E x t = e E_{xt} = e Ext=e
    2. 滑动窗口内的序列值方差为固定常数: V a r x t = v Var_{xt}=v Varxt=v
    3. 序列存在自相关性,协方差只与时间间隔有关: C o v ( x t , x t + k ) = c ∗ k Cov(xt,xt+k)=c*k Cov(xt,xt+k)=ck

    其中,e,v,c都是常数;k代表时间间隔也是常数

  • 非平稳的时间序列数据:与平稳相对的,统计指标会随时间变化

传统的线性模型,由于需要使用最小二乘法与最大似然估计对数据进行拟合,因此前提假设需要满足“序列平稳”,而相对于使用截面数据,机器学习的前提假设是样本点之间“独立同分布”。而对于金融数据来讲,截面因子逻辑上讲其实并不满足独立同分布,序列想要满足相对平稳的要求往往要用到周线数据+2阶差分,因此在应用层面,无法满足我们细粒度的研究,尤其是在量化应用上,交易机会瞬息万变,研究粒度越小越好。

这里我们选择LSTM(等深度学习)模型来进行建模,原因是深度学习中类似LSTM结构与激活函数等非线性变化,可以很好的突破“平稳”的前提假设,用魔法打败魔法。但与之对应的,我们需要尽可能多的构造有效性较高的数据,以提升模型的效果。

LSTM量化建模

LSTM是一种逻辑结构,就像贪吃蛇首尾相连一样,LSTM可以尝试从不同的时序变化中找到共性特征,这篇博客中不过多的介绍,主要讲解在量化中的应用场景

Pytorch LSTM参考链接:https://pytorch.org/docs/stable/generated/torch.nn.LSTM.html
ps:有兴趣可以学习一下LSTM反向传播的计算方法,博主觉得反向传播是设计LSTM的精髓

LSTM模型这篇博客就不详细介绍了,大家可以参考下面的图,这篇博客主要讲解LSTM在量化中的应用

LSTM模型介绍

在这里插入图片描述

  • input_size:x的特征维度
  • hidden_size:隐藏层的特征维度
  • num_layers:lstm隐层的层数,默认为1

LSTM训练流程

使用全部的特征进行预测,预处理流程如下:

  1. 对全部数据进行标准化
  2. 切分数据:
    • 训练集:2015-2020年的后复权股票数据
    • 验证集:训练集中最后的10%的数据(留一验证)
    • 测试集:2020-2023年的后复权股票数据
  3. 优化器:Adam
  4. loss函数:MSE
  5. Batch size:64

特征构造

这里我们构造的特征简单一些,与使用SVM的特征一样:

  1. 过去5日换手率均值
  2. 过去10日换手率均值
  3. 过去5日涨跌幅
  4. 过去10日涨跌幅
  5. MACD指标DIF值
  6. MACD指标DEA值
  7. MACD值
  8. 阿隆指标(一种动量指标)DOWN值
  9. 阿隆指标UP值

LSTM建模代码

博主使用pytorch构造LSTM模型,模型代码如下:

在这里插入图片描述

模型训练/验证效果

训练150次

其中,训练集训练效果如下图所示:

在这里插入图片描述

验证集的效果如下图所示:
在这里插入图片描述

最终预测效果

预测之后,我们对测试集的结果与预测的结果分别进行等频的数据分箱,分为10个有固定数量的区间,然后绘制的胜率图效果如下:

在这里插入图片描述

我们发现,预测效果相对较好的地方呈现“X”的形状,产生这个原因的解释是:

  1. 中间部分的值相对密集,比如类别4与类别5之间差距不如类别0与类别1大,因此中间区域的效果相对边缘较为集中
  2. 主对角线是正确的结果,而副对角线的预测相对密集,说明在模型的视角下,相同的特征走势后续上涨或下跌区分度并不明显,同样的特征后续极有可能上涨,也同样极有可能下跌

基于模型构建的策略通常会选择模型预测最高的前N%买入,即上图中最右边一列是真正会用于交易的地方,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/11995.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DHCP及中继(UOS)

DHCP服务器 中继器 客户端 服务器 安装DHCP apt install isc-dhcp-server -y 编辑配置文件 vim /etc/dhcp/dhcpd.conf 重启服务 systemctl restart isc-dhcp-server 配置监听网卡 vim /etc/default/isc-dhcp-server 中继器 安装dhcp yum install dhcp -y nmtui 修改…

pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称,其可读性不高;当结合 pytest.mark.parametrize 参数化完成数据驱动时,如标题写死,其可读性也不高。 那如果希望标题可以动态的生成,采取的方案…

Hadoop 生态圈及核心组件简介Hadoop|MapRedece|Yarn

文章目录大数据时代HadoopHadoop概述Hadoop特性优点Hadoop国内外应用Hadoop发行版本Hadoop集群整体概述HDFS分布式文件系统传统常见的文件系统数据和元数据HDFS核心属性HDFS简介HDFS shell操作Map Reduce分而治之理解MapReduce思想分布式计算概念MapReduce介绍MapReduce产生背景…

[STM32F103C8T6]DMA

DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设 与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU,在这个时间中,CPU对于内存的工作来说就无法使用。 我自己…

JDBC概述三(批处理+事务操作+数据库连接池)

一(批处理) 1.1 批处理简介 批处理,简而言之就是一次性执行多条SQL语句,在一定程度上可以提升执行SQL语句的速率。批处理可以通过使用Java的Statement和PreparedStatement来完成,因为这两个语句提供了用于处理批处理…

BGP策略实验

实验要求: 1、使用PreVa1策略,确保R4通过R2到达192.168.10.0/24 2、使用AS_Path策略,确保R4通过R3到达192.168.11.0/24 3、配置MED策略,确保R4通过R3到达192.168.12.0/24 4、使用Local Preference策略,确保R1通过R2到…

公司新招了个腾讯拿38K的人,让我见识到了什么才是测试天花板···

5年测试,应该是能达到资深测试的水准,即不仅能熟练地开发业务,而且还能熟悉项目开发,测试,调试和发布的流程,而且还应该能全面掌握数据库等方面的技能,如果技能再高些的话,甚至熟悉分…

【失业即将到来?】AI时代会带来失业潮吗?

文章目录前言一、全面拥抱AIGC二、AI正在取代这类行业总结前言 兄弟姐妹们啊,AI时代,说抛弃就抛弃,真的要失业了。 一、全面拥抱AIGC 蓝色光标全面暂停外包? 一份文件截图显示,中国知名4A广告公司,蓝色光…

【GPT4】微软 GPT-4 测试报告(5)与外界环境的交互能力

欢迎关注【youcans的AGI学习笔记】原创作品 微软 GPT-4 测试报告(1)总体介绍 微软 GPT-4 测试报告(2)多模态与跨学科能力 微软 GPT-4 测试报告(3)编程能力 微软 GPT-4 测试报告(4)数…

基于AI分词模型,构建一个简陋的Web应用

文章目录前言1. 效果展示2. 应用设计3. 实现3.1. lac分词模型的服务化部署3.2 使用Flask构建app4. 小结前言 内容纯属个人经验,若有不当或错误之处,还请见谅,欢迎指出。 文中大致介绍了,如何快捷地使用PaddleHub服务化部署一个简…

九龙证券|昨夜,大涨!蔚来5.99%,小鹏15.22%,理想6.39%

当地时间周一,美股三大指数低开高走,尾盘小幅收涨。盘面上,银行股、航空股遍及上涨。 展望本周,包括美联储理事沃勒、鲍曼等官员将迎来下月会议沉默期前的最终说话,投资者需关注其对经济和货币政策前景的看法。此外&am…

如何在TikTok视频描述中提高用户参与度

鑫优尚电子商务:TikTok视频描述(包括话题标签)有150个字符的限制,因此卖家需要合理撰写出有趣且有实际意义的视频描述。可尝试将描述保持在140个字符以内,将最重要的信息放在前面,并通过多次修改文案以排除…

甘特图控件DHTMLX Gantt入门使用教程【引入】:dhtmlxGantt与ASP.NET Core(上)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术&am…

【获奖案例巡展】科技向善之星——中航电梯5G+大数据管理平台

为表彰使用大数据、人工智能等基础软件为企业、行业或世界做出杰出贡献和巨大创新的标杆项目,星环科技自2021年推出了“新科技 星力量” 星环科技科技实践案例评选活动,旨在为各行业提供更多的优秀产品案例,彰显技术改变世界的力量&#xff0…

会话跟踪技术

目录 Cookie基本使用 Cookie原理 Cookie使用细节 Session基本使用 Session原理 Session使用细节 案例 用户登录注册案例 用户注册功能 保存用户信息到数据库 验证码-展示 验证码-校验 会话跟踪技术的概述 会话:用户打开浏览器,访问web服务器的资源&…

ssm框架之SpringMVC:浅聊获得参数以及获得请求头参数

前面聊过了SpringMVC,以及通过实例演示了SpringMVC如何搭建,如果对环境搭建不太了解的话,可以看一下前面的文章(下面演示的例子,环境都是通过上面的例子进行演示的):传送阵 在使用javaweb项目原…

图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!

马斯洛的需求层次结构是心理学中的激励理论,包括人类需求的五级模型,通常被描绘成金字塔内的等级。 从层次结构的底部向上,需求分别为:生理(食物和衣服),安全(工作保障)…

stm32下载代码到单片机上需要调节BOOT为什么模式

一、BOOT模式选择图解 二、BOOT模式介绍 所谓启动,一般来说就是指下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。 A. Mai…

MongoDB 聚合管道中使用数组表达式运算符合并数组($concatArrays)

数组表达式运算符主要用于文档中数组的操作,接上一篇:MongoDB 聚合管道中使用数组表达式运算符($slice截取数组)https://blog.csdn.net/m1729339749/article/details/130130328本篇我们主要介绍数组表达式运算符中用于合并数组的操…

LMKD分享

背景 Android是一个多任务系统,可以同时运行多个程序,一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程…