论文阅读_股票预测强化学习_StockFormer

devtools/2024/9/19 20:46:25/ 标签: 论文阅读

1 StockFormer

PLAINTEXT

1
2
3
4
5
6
7
中文名称:StockFormer: 混合交易机与预测编码
英文名称:StockFormer: Learning Hybrid Trading Machines with Predictive Coding
作者:Siyu Gao, Yunbo Wang∗, and Xiaokang Yang
机构:MoE Key Lab of Artificial Intelligence, AI Institute, Shanghai Jiao Tong University
发表时间:IJCAI-23
代码:https://github.com/gsyyysg/StockFormer
地址:https://www.ijcai.org/proceedings/2023/0530.pdf

2 读后感

这里采用了预测编码模型与强化学习的结合方法。三个独立的预测编码模型分别用于预测短期(1 天)和长期(5 天)的回报率,以及各股票间的动态相关性。在训练预测编码模型的过程中,可获取有价值的潜在状态,并将这些状态组合成一个状态空间,用于训练强化学习模型。

论文带来一些启发:可以将复杂的问题分解为多个简单的部分进行求解,股票数据的特性使得我们可以获得中间过程的目标数据,用于分别训练模型。此外,采用强化学习的方法也消化了股票交易的复杂性,尤其适用于状态空间和动作空间不断变化的情况。

另外,作者开源的代码逻辑清晰,长短适中,也是股票 + 强化学习算法很好的入门工具。

3 摘要

  • 目的:传统的基于强化学习的金融解决方案直接在嘈杂的市场数据上优化交易策略,而没有明确考虑不同投资资产的未来趋势和相关性
  • 方法:提出了一个混合交易机器,它整合了预测编码和强化学习的优势。该模型通过三个修改过的 Transformer 分支来提取长期和短期未来动态以及资产关系的有效潜在状态
  • 效果:在三个公开的金融数据集上,StockFormer 在投资组合回报和夏普比率方面显著优于现有方法。

4 方法

  • 预测编码:通过自监督学习方式训练三个 Transformer-like 网络分支,分别学习关系、长期和短期隐藏表示(图中灰色和橙色模块)。
  • 策略优化:在第二阶段,StockFormer 将三种类型的潜在表示集成到一个统一的状态空间中,并通过 actor-critic 方法学习交易策略(图中绿色模块)。

RL 通过与环境的交互来优化决策,在给定的状态下选择最佳的行动(买入、卖出或持有),以最大化长期回报。

5 实验

实验数据集使用了:使用 CSI-300(沪深 300:China Securities Index 300)、NASDAQ-100(美国)和加密货币市场的数据集。请注意 2019-2021 年是个牛市阶段,所以模型效果可能好于一般情况。

6 代码分析

  • 作者已将算法在 github 上开源,链接如下:https://github.com/gsyyysg/StockFormer。
  • 整个项目代码由约 12000 行 Python 组成,其中包含了强化学习工具包 stable-baseline3 的代码,若剔除此部分,剩余约 4000 行代码。
  • 项目中的数据涵盖了从 2010 年到 2022 年,总共 88 支 A 股股票的数据。
  • 项目中使用开源项目 yfinance(YahooFinance)下载股票数据,支持 A 股数据下载。
  • 项目中包含了四个模型的训练代码,对应的入口文件分别是 train_xx.py。

http://www.ppmy.cn/devtools/24471.html

相关文章

React面试题(一)

react的优缺点 优点 虚拟DOM:减少对真实DOM的操作,提高性能。组件化:将代码分成一个个小的、可复用的组件,利于管理、维护。使用JSX:在React中可以嵌入HTML和JavaScript。单向数据流:React的单向数据流使得…

发那科FANUC机器人R-2000iB平衡缸维修攻略

在发那科机器人中,平衡缸扮演着稳定机械臂运动的关键角色。它通过内部的压力调节来平衡负载,保证机器人的精准定位和平稳操作。一旦出现法兰克机械手平衡缸故障或损坏,机器人的性能可能会大打折扣,因此及时且正确的FANUC机械手平衡…

【Python】如何使用Python和keyboard库解决内网字符无法复制到外网的问题

但我的心每分每刻仍然被她占有 她似这月儿仍然是不开口 提琴独奏独奏着明月半倚深秋 我的牵挂我的渴望 直至以后 🎵 李克勤《月半小原夜曲》 在一些特定的工作环境中,可能会存在内网与外网隔离的情况,这意味着直接的数据…

基于深度学习的SAR图像舰船检测方案设计

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 项目简介:基于深度学习的SAR图像舰船检测方案设计 本项目旨在设计一种基于深度学习的SAR图像舰船检测方…

深入理解Python多进程:从基础到实战

title: 深入理解Python多进程:从基础到实战 date: 2024/4/29 20:49:41 updated: 2024/4/29 20:49:41 categories: 后端开发 tags: 并发编程多进程管理错误处理资源调度性能优化异步编程Python并发库 引言 在Python编程中,多进程是一种重要的并发编程…

Kafka 3.x.x 入门到精通(03)——Kafka基础生产消息

Kafka 3.x.x 入门到精通(03)——对标尚硅谷Kafka教程 2. Kafka基础2.1 集群部署2.2 集群启动2.3 创建主题2.4 生产消息2.4.1 生产消息的基本步骤2.4.2 生产消息的基本代码2.4.3 发送消息2.4.3.1 拦截器2.4.3.1.1 增加拦截器类2.4.3.1.2 配置拦截器 2.4.3…

FreeBSD安装Miniconda,python启动core dumped的问题

综述: 学会在FreeBSD安装Miniconda后,在一台服务器上安装却碰到问题,安装好后,执行python报错:Segmentation fault (core dumped) 。 以前成功的是在FreeBSD13版本,报错的这个是FreeBSD14版本&#xff0c…

22 - Hadoop HA 高可用集群搭建、手动模式、自动模式以及HA模式集群

目录 1、HA 概述 2、HDFS-HA 集群搭建 2.1、HDFS-HA 核心问题 3、HDFS-HA 手动模式 3.1、环境准备 3.2、规划集群 3.3、配置 HDFS-HA 集群 3.4、启动 HDFS-HA 集群 4、HDFS-HA 自动模式 4.1、HDFS-HA 自动故障转移工作机制 4.2、HDFS-HA 自动故障转移的集群规划 4.…

ThreeJs模拟工厂生产过程八

这节算是给这个车间场景收个尾,等了几天并没有人发设备模型给我,只能自己找了一个凑合用了。加载模型之前,首先要把货架上的料箱合并,以防加载模型之后因模型数量多出现卡顿,方法和之前介绍的合并传送带方法相同&#…

用OpenCV先去除边框线,以提升OCR准确率

在OpenCV的魔力下,我们如魔法师般巧妙地抹去表格的边框线,让文字如诗如画地跃然纸上。 首先,我们挥动魔杖,将五彩斑斓的图像转化为单一的灰度世界,如同将一幅绚丽的油画化为水墨画,通过cv2.cvtColor()函数的…

Photoshop前言

Photoshop前言 分辨率图像格式工具界面组件 分辨率 分辨率是指单位长度内包含的像素点的数量,其单位通常为像素/英寸(ppi),300ppi表示每英寸包含300个像素点。对于1英寸1英寸大小的图像,若分辨率为72ppi,则…

【 深度可分离卷积】

深度可分离卷积 深度可分离卷积(Depthwise Separable Convolution)是一种在卷积神经网络中减少计算量和参数数量的技术。这种技术将标准的卷积操作分解为两个更简单的操作:逐通道卷积(Depthwise Convolution)和逐点卷…

Xshell不能使用(版权原因不能使用),通过ip连接虚拟机CentOS7系统拷贝文件

一、使用SSH服务 1.确保 CentOS 7 虚拟机安装了 SSH 服务。 systemctl status sshd 如果没有安装,您可以使用以下命令来安装: sudo yum install openssh-server 2.启动 SSH 服务(如果尚未启动): sudo systemctl …

自动驾驶中的深度学习和计算机视觉

书籍:Applied Deep Learning and Computer Vision for Self-Driving Cars: Build autonomous vehicles using deep neural networks and behavior-cloning techniques 作者:Sumit Ranjan,Dr. S. Senthamilarasu 出版:Packt 书籍…

LXC的原理及应用详解(二)

本系列文章简介: 在信息化时代,虚拟化技术以其独特的优势,正逐渐成为推动信息技术发展的重要力量。其中,Linux容器(Linux Containers,简称LXC)作为一种轻量级的虚拟化技术,正日益受到…

深度学习面试总结(上岸版~)

2024/04/29面试 问题1:支持向量机理解 支持向量机(Support Vector Machine,SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifie…

Django模板查找顺序

Django模板查找顺序 首先看django项目的settings.py文件中是否定义DIRS 如果有定义,首先去这个目录下面查找(根目录下templates),找到了后续就不找了;如果没有,就顺着app的注册顺序进行查找

docker学习笔记1:什么是docker

目录 什么是dockerDocker 的主要组件学习 Docker 的步骤资源和教程什么是docker docker官网:https://www.docker.com Docker 是一个开源的应用容器引擎,它允许开发者打包应用以及应用的运行环境到一个可移植的容器中,然后发布到任何支持 Docker 的平台上运行。这种打包方式…

PaddlePaddle与OpenMMLab

产品全景_飞桨产品-飞桨PaddlePaddle OpenMMLab算法应用平台

elementui的el-select+el-tree+el-input实现可搜索的下拉树组件

部分实现代码如下 <template> <div><el-selectv-model"item.TableName"placeholder"请选择":disabled"!item.disabled"visible-change"handleVisible"ref"TableName"><el-input placeholder"请输…