什么情况下使用强化学习
1.
深度学习与深度强化学习的核心区别
深度学习与深度强化学习的“核心”都是用神经网络,通过训练调整参数,让模型对输入数据
X 有更好的输出
Y。而它们本质上的区别主要在于:数据来源、训练目标、反馈方式。
深度学习更像是在“背标准答案”,用现成的数据直接学;深度强化学习更像是在“玩游戏”,通过不断试错、和环境互动,自己摸索什么行为最优。
2.
从预测到决策:金融中的两种学习方式
如果只预测股票涨跌幅度,那是深度学习或者机器学习;而学习通过择时选择不同动作,以获得收益最大化,则是强化学习。
方面
深度学习(DL)
深度强化学习(DRL)
数据来源
预先准备的静态数据
交互环境中动态产生的数据
目标
预测已知标签
最大化长期累计奖励
反馈
明确的标签/损失
间接的奖励/反馈
训练过程
直接优化损失
需探索 - 收集 - 利用经验
数据分布
固定(i.i.d.)
不断变化,依赖策略
3. 连续决策:强化学习的真正难点
与深度学习的“单次预测”不同,强化学习关注的是连续决策过程:一个动作会影响后续状态与奖励。模型不仅要考虑当前结果,更要权衡“现在做什么” ...
围棋经典算法与股票市场预测
一谈到强化学习,脑子里第一个出现的就是 AlphaGo 和 AlphaZero
的“围棋神话”。但现实是,它并不是所有 RL
应用的通用范本。下面,我们就来讨论一下为什么围棋中的经典强化学习算法无法应用于股票市场预测,以及在现实中有没有更好的方法可供推荐。
1 蒙特卡洛树搜索
蒙特卡洛树搜索(Monte Carlo Tree Search,
MCTS)是一种用于决策和规划的搜索算法,经常用于下棋
AI(如围棋、国际象棋)等需要“选最优动作”的场景。
1.1 基本思想
核心思想:在一个决策树中,通过不断模拟(随机走子)和回溯统计,估计每个动作/路径的优劣,从而指导实际的决策选择。
适用于:环境模型已知、可以模拟、状态和动作是有限/可枚举的场景。
1.2 树的结构
节点(Node):代表一个状态(比如棋盘某一局面)。
边(Edge):代表一个动作(从当前状态采取的一个可能操作)。
根节点是当前的实际状态。
从根出发,每走一步棋(做一个动作)就往下生成一个新节点,连一条边。
1.3 搜索过程(四大步骤)
选择(Selection)
沿着树从根节点开始,按照某种策略(如
UCB,上置 ...
强化学习工具及优化方法
1 说明
在量化交易或金融强化学习项目中,很多人会好奇到底需要关注算法本身,还是环境建模和数据处理。实际上,绝大多数场景下,重点是如何设计环境和构造特征,而不是修改
RL 算法。只有在算法研究、论文复现或特殊需求时,才需要动手改算法。
本文将以 stable-baselines + gym
为例,介绍强化学习在股票策略训练中的实践重点和流程。
2 stable-baselines
stable-baselines3(简称 SB3)是一个基于 PyTorch
的强化学习库,专注于实现和优化主流深度强化学习算法。它的目标是让用户能够方便地训练、评估和部署
RL 智能体。
2.1 主要特点
易用性:API 设计简洁,类似
scikit-learn,便于上手。
主流算法:内置 PPO、A2C、DQN、SAC、TD3
等常用算法。
可扩展性:支持自定义环境(如 gym
环境)、网络结构和回调。
社区活跃:文档完善,支持良好。
2.2 适用场景
股票/量化交易
游戏智能体
机器人控制
其他序列决策问题 ### 2.3 基本用法
定义环境(如 gym 或自定义环境)
选择算法并初始化模型 ...
强化学习的核心概念与实践应用
核心:价值与奖励、策略与动作、价值与状态之间有什么关系?
1 核心概念
状态(State):环境的某个完整描述,比如“现在是周一上午 10
点,账户余额 10 万,持有 A 股 1000 股”。
动作(Action):在当前状态下可以做出的选择,比如“买入、卖出、持有”。
奖励(Reward):环境在每一步给你的“即时反馈”或“即时得分”。
策略(Policy):是一个“状态→动作”的映射规则,也可以是一个概率分布,决定你在每个状态下选什么动作。
价值(Value):给定当前状态(或状态 +
动作),在当前策略下未来总奖励的期望。
12状态 --(执行 策略)--> 动作 --(环境反馈)--> 奖励 ↘-------------- 价值 ------------↗
状态、策略和动作决定了你怎么走
奖励是每步的即时反馈,价值是“展望未来”的累计总奖励
2
价值(Value)和奖励(Reward)的区别
奖励(Reward):是环境在每一步给你的“即时反馈”或“即时得分”。
比如:每走一步路时地上的小金币。
价值(Value):是“从某个状态(或状态 +
...
金融相关的强化学习工具
在金融强化学习中,我们既可以自己实现环境,也可以利用现有工具快速搭建实验平台。本文重点介绍如何使用现成工具来简化金融
RL 实践。
1 选择金融的 RL 库
方式
代码量
学习成本
复用性
回测功能
适用场景
FinRL / gym-anytrading
低
低
高
完善
教学、快速实验、科研
自写 gym.Env 极简环境
中
低
低
需自写
简单实验
完全自研环境和回测
高
高
低
需自写
高度定制的金融研究
现成工具推荐:
gym-anytrading:适合快速上手和教学实验,带示例数据(如
Open/High/Low/Close/Volume)。
FinRL:适合多资产、真实市场数据回测、科研和产业应用。
quantgym:适合专业衍生品市场建模,需要金融衍生品基础。
新手建议使用 gym-anytrading,快速完成实验,降低开发成本。
2 gym-anytrading 简介
gym-anytrading (https://github.com/AminHP/gym-anytrading) 2.3k
star,主要支持股票和外汇市场,提供三 ...
XYStock 1.2.0新功能解析
1 引子
行情好的时候更容易赚钱,有时候等待一波行情可能需要十年。我最近开始开发股票分析相关工具。现在是个不错的时间点,也有足够的动力,加上关注这方面的人越来越多。
七月中参加一个股票相关的大数据比赛,在之后的学习会上,我想分享自己在建模比赛中的收获,又觉得所用的方法过于单一。然后开始系统地阅读相关论文,并试用
GitHub
上高星级的股票工具,最终决定自己动手做工具,一两周后,我完成了一个版本并开源,同时写了简要介绍。没想到,收到了很多老友的反馈,好像中年人都在玩这个。
在开发过程中,我也在操作自己的账户,产生了很多疑问,关注了一些公众号和
UP
主,听他们的实盘分析,同时读一些经典书籍,涉及长线短线、背后逻辑和具体方法等。为了每次分享都能增添一些亮眼的内容,不断寻找更前沿的方向。在与朋友的讨论中,一次次的质疑,反驳,也激发出更多的思路和激情。
于是继续更新,将更多的理解融入工具中。制作工具时添加的每个功能都旨在解决具体问题,不因他人有此功能而盲目跟风。接下来介绍的是我对这些数据的理解,也是当前版本的新增的功能。
先对工具做个简要介绍:XYStock 开源工具支持对 A 股市场全部股 ...
用游戏心态看待生活
原来我总是以累积的方式看问题,
所以很难接受犯错。
仿佛一旦有了失误,或者让别人不高兴,
就被钉上耻辱柱,永世不得翻身。
后来发现,还有另一种思考方式:
就像超级马里奥里的那个“我”——
世界只有屏幕那么大,
过去的就过去了,既无历史,也无未来。
过关与否,只与当下的操作有关。
经验会沉入肌肉记忆,
而得分与失误,都只是临时的失血。
即使“死了”,也不过是重新开始游戏。
也许人生该像游戏,不惩罚失败,只奖励继续。
没有自我,没有过去,也没有未来,只有现在,就是游戏的过程。
Yan
人的可预测性和延续性似不是这么理解,对吧!不是说我之前什么样,我之后就必须怎么样。
5
我们习惯把“我是怎样的人”当作一个定语句,好像确定后就得维持一致。但实际上,“人”的延续性更像是流动中的连贯,不是静态的重复。
别人能预测我们的一部分——比如偏好、反应模式——那是基于统计意义上的倾向,而不是宿命。
而真正的成长,恰恰是当你自己都意外地,选择了不同于以往的反应。那一刻,旧的剧本就被打破了。
Yan
所以我命由我不由天(虽然那个电影我也没看过),有一部分讲的是人的可塑性,不需要接受“命定”或者别人期待的 ...
七日阿勒泰喀纳斯旅行指南
我只有一个人,整个过程差不多都是公交和拼车,路径不是最优的哈~
第一天: -
乌鲁木齐到布尔津,全程约700公里,无火车,需自驾或乘巴士,至少需7小时。 -
或先坐火车到阿勒泰/北屯,再转汽车去喀纳斯(包车/拼车)。
第二天: -
从布尔津到喀纳斯。单程约2小时,景区内排队等车1小时起,景区通勤车程1小时。
- 喀纳斯核心区内各景点间需再次排队换乘,但时间较短。 -
我住在景区内的白哈巴村(我的阿勒泰在那儿拍的),喀纳斯核心区到白哈巴村需1小时。
- 喀纳斯门票需提前预约。
第三天: -
玩白哈巴->玩喀纳斯,晚上返回布尔津。
第四天: - 布尔律->五彩滩->布尔津。 -
因天气预报山上下雨,在布尔津逗留,实在无聊去了五彩滩,游客不是很多,但建议提前预约门票。
第五天: - 从布尔律去禾木,当天返回。 -
禾木门票需提前预约。 -
禾木小木屋紧俏,需要预订。如在禾木住宿,建议次日沿阿禾公路直接去阿勒泰。
第六天: - 从布尔律返回乌鲁木齐。
第七天: - 乌鲁木齐博物馆,需提前预约门票。 -
如果游客不多,参观体验极佳。 -
逛和田二街或二道桥,买特产,晚上返家。
...
强化学习在股票预测中的应用
1 项目介绍
项目地址:https://github.com/wangshub/RL-Stock
我修改后的地址:https://github.com/xieyan0811/RL-Stock-XY
我修改的内容:
更新了工具链和相关 API
添加参数以支持只下载指定的股票
对空数据进行了插补
为强化学习部分添加了更多注释
2 代码说明
代码只有几百行,比我想象中简单得多,没想到强化学习工具如此易用。
下载数据:get_stock_data.py
训练模型入口:main.py(stock_trade 函数),包括训练和测试功能。
逻辑核心:StockTradingEnv0.py,负责处理股票数据、定义状态空间和动作空间等。
3 用后感
股票数据集来源于 baostock,可直接下载 1990 年起的数据,无需注册,K
线数据除了开盘、收盘、最高、最低,还包含 市盈率、市争率等等。。
使用强化学习的方法并不复杂,项目中使用的是 stable_baseline
强化学习库,无需深入 PPO
和深度学习库,仅需几句代码即可训练。只需定义状态、动作、奖励,进行数据转换,并实现
ste ...
AI在股票决策中的应用_开源项目XYStock
1 摘要
用 AI
辅助做股票相关决策,原理很简单:首先获取你关注的股票相关数据,然后提取一些特征,结合用户的需求交给
AI。AI
会充当投资经理的角色,进行分析和决策。用户说“我不懂资产负债表、利润表、蜡烛图、筹码分布,也不会看财报研报……”。而有一定能力的大模型,基本具备普通投资经理的素质,可以帮你解释和决策。
这东西没什么门槛,谁都能做,关键在于工具是否好用,比如:抓取哪些信息、如何处理、怎样交给大模型,以及如何呈现出来,怎么做又省时又省钱。
最近,我开发了一个股票辅助决策工具 XYStock,并已在 GitHub
上开源。我和朋友们使用后都感觉不错,下面就来介绍一下。
项目地址:https://github.com/xieyan0811/xystock
2 引言
最近股票市场非常活跃。前几周,我在分享会上分析了 TradingAgents
的论文和源码,第二周小伙伴又分析了其他中文的开源股票辅助工具。我们把“星”数较高的都试了一遍。各有千秋,确实有很多让人眼前一亮的功能,但还没找到一个完全够用的工具。喜欢
A 工具的某个功能,又喜欢 B
工具的另一个功能,但不能对单支股票逐个使 ...