选股中的财务指标运用
12少点概念,多点逻辑,聚焦能落地的决策。学以致用,不能用的就不学。
1 为什么要看这篇
投资指标的解释,书上已经讲烂了:定义、公式、优点缺点……但看完往往还是不知道怎么用。在这里,不是为了“学会指标”,而是为了用指标赚钱。
这篇(以及本系列文章)想做的事情更简单粗暴:
不按教科书逻辑讲指标
从投资者真实场景入手解决问题
形成能用的选股与买卖套路
结构以问答为主,每个问题都来自实操中的“盲点时刻”;边写边做,边做边改,策略会随着实践迭代——像更新代码一样升级自己的投资系统。
2 相关概念简介
先把后面会用到的几个核心指标,用一句话讲清楚:
ROE(净资产收益率):股东投入的资金一年能赚回多少利润
PE(市盈率):市场为当前盈利水平付出的价格(估值贵不贵)
PB(市净率):市场为公司净资产付出的价格(有没有低估)
回撤(Max
Drawdown):从高点跌到低点的最大亏损幅度
波动率:价格的上下波动程度,越大越不稳定
成交量(Volume):市场参与度,资金是否正在涌入
换手率:股票在市场上流通的活跃程度
MA 均线(Moving
Average):价格趋势的参考线,多头说明趋势 ...
指标学习与应用
1 概念
MA(均线)用来观察趋势的方向和结构,MACD
用来判断趋势的动量变化和潜在拐点。简单理解:MA
是位置,MACD 是速度变化。
指标
反应周期
主要看什么
特点
MA5 / MA10 / MA20
直接反映价格走势
趋势方向与支撑阻力
直观、简单、滞后
MACD
综合短中期均线差
动能变化与节奏强弱
能提前反映趋势变化
1.1 MA
MA(如
MA5、MA10、MA20)是直接对价格做平均,看趋势的方向和强弱。
1.2 EMA
EMA(Exponential Moving Average,指数移动平均线)是
MA
的改良版。越“新”的价格,权重越大;越“旧”的价格,权重越小。
1.3 MACD
MACD(Moving Average Convergence
Divergence,移动平均线收敛发散指标)是一种看趋势 +
看节奏的指标。
它由三部分组成:
快线(DIF):代表短期情绪变化,比如最近几天市场很兴奋或很冷淡。
慢线(DEA):代表相对长期的平均情绪,是一种“主流观点”。
柱状图(MACD
柱):快线减去慢线的差距,表现出情绪的 ...
什么情况下使用强化学习
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):是“从某个状态(或状态 +
...
用游戏心态看待生活
原来我总是以累积的方式看问题,
所以很难接受犯错。
仿佛一旦有了失误,或者让别人不高兴,
就被钉上耻辱柱,永世不得翻身。
后来发现,还有另一种思考方式:
就像超级马里奥里的那个“我”——
世界只有屏幕那么大,
过去的就过去了,既无历史,也无未来。
过关与否,只与当下的操作有关。
经验会沉入肌肉记忆,
而得分与失误,都只是临时的失血。
即使“死了”,也不过是重新开始游戏。
也许人生该像游戏,不惩罚失败,只奖励继续。
没有自我,没有过去,也没有未来,只有现在,就是游戏的过程。
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 ...
DockerHub镜像上传指南
1 上传 image
1.1 基本门槛:
条件
说明
Docker Hub 账号
免费注册:https://hub.docker.com
本地安装好 Docker
有
docker build、docker login、docker push
能力
镜像命名规范
必须以 username/image-name[:tag] 命名
镜像体积 < 10GB
单个镜像最大 10GB(一般不会这么大)
1.2 上传步骤
请保证能连接外网
12345678# 1. 登录 Docker Hub,此时会引导网页登录docker login# 2. 为镜像打上标签(必须带用户名)docker tag local-image-name username/image-name:tag# 3. 上传docker push username/image-name:tag
注意:不要把自己的密码打包到 docker image 中 ### 1.3
小技巧
取名时建议遵循小写、短横线分隔,比如:mycompany/my-awesome-api:latest
lates ...
