深度学习9-使用强化学习进行股票交易
### 使用强化学习进行股票交易
▪ 实现自己的OpenAI Gym环境来模拟股票市场。
▪ 用第6章和第8章中的DQN方法来训练智能体进行股票交易以最大化利润
问题是:是否可以从RL角度看待这个问题?假设我们对市场有一些观察,并想做出一个决定:购买、出售或等待。如果在价格上涨之前买入,利润将为正;否则,将获得负奖励。我们要尝试的是获得尽可能多的利润。这样市场交易和RL之间的联系就非常明显了。
**观察将包括以下信息:**
▪ N个过去的bar,每个都有开盘价、最高价、最低价和收盘价。
▪ 表明该股票是在一段时间前购买的标识(同一时间只可能有一份股票被购买)。
▪ 根据当前价位(所买股票)计算的收益或损失。
智能体每一步(每个分钟bar)可以执行下面动作之一:
▪ 什么也不做:跳过此bar,不执行任何动作。
▪ 买入一支股票:如果智能体已经持有,则不会再购买;否则,支付佣金(通常是当前价格的一个小百分比)。
▪ 平仓:如果之前没有购买股票,则不会发生任何事情;否则,支付交易佣金。
**环境的构造函数接受许多参数以调整环境的行为和观察表示**:
▪ prices:作为字典包含一个或多个机构的一支或多支股票价格,其中键是机构的名称,值是容器对象data.Prices,保存价格数据数组。
▪ bars_count:在观察中经历的bar,默认情况下,为10个bar。
▪ commission:在买卖股票时必须支付给经纪人的股票价格的百分比,默认情况下为0.1%。
▪ reset_on_close:如果将此参数设置为True(默认情况下为True),则每当智能体要求平仓(即出售股票)时,都会停止该片段。否则,片段将持续到时间序列结束为止,也就是一年的数据。
▪ conv_1d:传递给智能体的观察中的价格数据的不同表示形式,能够通过此布尔参数进行切换。如果将其设置为True,则观察具有2D形状,bar中不同的价格和其后bar的同类型价格会被组织在同一行中。例如,最高价(bar中的最高价格)放在第一行,第二行是最低价,第三行是收盘价。此表示形式适用于在时间序列上进行一维卷积,其中数据中的每一行与Atari 2D图像中的不同颜色平面(红色、绿色或蓝色)有相同的含义。如果将此选项设置为False,则只有一个数据数组,每个bar的组件都放置在一起。该组织形式对于全连接的网络架构很方便。
▪ random_ofs_on_reset:如果参数为True(默认情况),则在每次环境重置时,将从时间序列的随机偏移开始。否则,将从数据的开头开始。
▪ reward_on_close:此布尔参数在前面讨论的两种奖励方案之间切换。如果将其设置为True,则智能体将仅在平仓动作产生时获得奖励。否则,将在每个bar给一个小额奖励,与该bar期间的价格变动相对应。
▪ volumes:此参数决定是否在观察中增加交易量,默认情况下处于禁用状态。
**使用RL创建完整且可以获利的交易策略是一个大型项目,可能需要专攻数月。但是,有些事情我们可以尝试一下,以更好地理解该主题:**
▪ 我们的数据表示绝对不完美。没有考虑重要的价格水平(支撑位和阻力位)、整数价格值和其他因素。将它们纳入观察可能是一个具有挑战性的问题。
▪ 通常需要针对多个不同时间范围来分析市场价格。像一分钟的bar这样的小范围数据比较嘈杂(因为它们包含许多由单个交易引起的小幅价格浮动),这就像使用显微镜观察市场一样。在较大的范围(例如一小时或一天的bar)下,可以看到数据浮动的长期趋势,这对于价格预测而言可能极为重要。
▪ 需要更多的训练数据。一支股票一年的数据只有13万个bar,可能不足以捕捉所有市场情况。理想情况下,应该在更大的数据集上训练更实用的智能体,例如采用过去10年中数百支股票的价格来训练。
▪ 实验更多网络架构。卷积模型的收敛速度比前馈模型快得多,但是还有很多要优化的方面:层数、内核大小、残差网络架构及注意力机制等。
深度学习9-使用强化学习进行股票交易相关推荐
- 机器学习深度学习加强学习_加强强化学习背后的科学
机器学习深度学习加强学习 机器学习 ,强化学习 (Machine Learning, Reinforcement Learning) You're getting bore stuck in lock ...
- 叶梓老师人工智能培训之强化学习与深度强化学习提纲(强化学习讲师培训)
强化学习与深度强化学习提纲(强化学习讲师培训) 第一天 强化学习 第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym,Te ...
- AI内训讲师叶梓-强化学习与深度强化学习提纲(强化学习讲师培训)
叶梓老师更多教程资料可点击个人主业查看 第一天 强化学习 第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym ...
- 强化学习q学习求最值_Q学习简介:强化学习
强化学习q学习求最值 by ADL 通过ADL Q学习简介:强化学习 (An introduction to Q-Learning: reinforcement learning) This arti ...
- 强化学习应用简述---强化学习方向优秀科学家李玉喜博士创作
强化学习 (reinforcement learning) 经过了几十年的研发,在一直稳定发展,最近取得了很多傲人的成果,后面会有越来越好的进展.强化学习广泛应用于科学.工程.艺术等领域. 下面简单列 ...
- 【强化学习知识】强化学习简介
文章目录 前言 1. Q learning 2. Sarsa 3. Deep Q Network(DQN) 4. 总结 前言 强化学习是机器学习中的一大类,它可以让机器学着如何在环境中拿到高分, 表现 ...
- 《强化学习周刊》第44期:RL-CoSeg、图强化学习、安全强化学习
No.44 智源社区 强化学习组 强 化 学 习 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<强化学习周刊>已经开启"订阅功能",以后我们会向您自动推送最 ...
- 学习笔记:强化学习与最优控制(Chapter 2)
Approximation in Value Space 学习笔记:强化学习与最优控制(Chapter 2) Approximation in Value Space 1. 综述 2. 基于Value ...
- 强化学习笔记-01强化学习介绍
本文是博主对<Reinforcement Learning- An introduction>的阅读笔记,不涉及内容的翻译,主要为个人的理解和思考. 1. 强化学习是什么?解决什么样的问题 ...
- 强化学习-什么是强化学习?白话文告诉你!
目录 1.强化学习简介 2.强化学习的概念: 3.马尔可夫决策过程 4.Bellman方程 5.Q-Learning基本原理实例讲解 1.强化学习简介 世石与AlphaGo的这场人机世纪巅峰对决,不但 ...
最新文章
- 算法----------找到 K 个最接近的元素
- linux 时钟同步 chrony 简介
- 与癌症作战的 12 家 AI 公司,八仙过海各显神通
- 声明和定义结构体需要注意的问题
- FPGA实现OV5640摄像头及RGB图像数据采集
- Z表数据EXCEL导入
- LeetCode 128. 最长连续序列 golang
- oracle列转行wm_concat,Oracle列转行函数wm_concat版本不兼容解决方案
- 苹果Mac全新的文件启动方式:Hapigo
- python+selenium 处理alert弹出框
- SQL查询中的笛卡尔积现象解决方法
- IOS逆向分析—终极详细(一)
- MySQL重复数据排序_排序数据以在MySQL中重复记录
- 《专业创新实践Ⅱ》大作业 LeNet在眼疾识别数据集iChallenge-PM上的应用
- 基于Golang设计一套微服务架构[转]
- 索尼新动作,联手Nolan推出AR摩托车头盔
- java线程池newfi_Java 线程池中的线程复用是如何实现的?
- Unraid启动后需要设置和注意的事项
- Apache Curator客户端的使用
- 是不正确的python语句_关于Python的if else语句,调用else不正确的问题