如果模型学会了钻交易环境的空子,高奖励也可能只是记账错误。

什么是强化学习

约 11 分钟4 道小题

学完你能说清楚先把交易环境做对,再谈强化学习能不能学会决策。

01学完这一课,你能做到什么

学完这一课,你应该能:

  1. 区分智能体、环境、状态、观测、动作、奖励和策略;
  2. 把股票交易写成可以重置、逐步运行的模拟环境;
  3. 设计不偷看未来、能处理账户约束的观测与动作;
  4. 用一致的净值变化计算奖励,避免每日收益和平仓收益重复记账;
  5. 先用随机动作和基准检查环境,再进入 或 。

适合描述“观察—行动—反馈—再行动”的连续决策。它不会自动消除,也不会替你决定数据、目标和交易规则。环境定义得不可信,模型学到的可能只是漏洞。

一句话记住先把环境做对,再训练策略。

02强化学习解决的是连续决策

监督学习通常给模型输入 X 和目标 Y,例如用预测未来五日收益;强化学习则让智能体反复做决定:先观察市场和账户,再选择动作,环境推进后返回新观测和奖励。

假设 金叉但 已经超买。固定规则需要提前规定冲突时听谁的;强化学习可以把这类信息放进观测,让策略在反馈中比较动作的长期结果。但参数在不同市场可能失效,强化学习并不会自动解决过拟合。

几种学习方式的区别可以这样记:监督学习有输入和标签;无监督学习从无标签数据中找结构;自监督学习用数据自身构造任务;强化学习用行动后的奖励优化累积目标。奖励不是人工给每一步写好的标准答案,而是环境根据行动结果返回的反馈。

AlphaGo 的自我对弈能帮助理解“与环境互动”,但围棋规则明确,金融市场非平稳、部分可观测,还要承担费用和成交限制。游戏成功不能直接推出交易策略有效。

两种学习信号

监督学习

输入和标签配对,学习从 X 到 Y 的映射。

强化学习

行动后得到奖励,学习怎样让长期回报更好。

一句话记住预测一个结果,和连续做决定,不是同一个问题。

03把六个概念放进交易环境

把概念放到一张交易表里:

概念交易中的例子负责什么
环境历史行情、现金、持仓、成交规则和时间按规则推进市场模拟
状态市场与账户的完整真实状态由环境维护
观测智能体被允许看到的行情特征、和现金由环境输出
动作持有、买入、卖出或目标仓位智能体提出,环境校验
奖励扣除成本后的净值变化或其他明确目标环境计算
策略给定观测时如何选择动作学习算法优化

状态和观测不一定相同。环境可能知道完整成交状态,但智能体只能看到决策时允许使用的信息。一次交互可以写成:

观测 s_t → 动作 a_t → 执行与时间推进 → 奖励 r_() 和新观测 s_(t+1)

一轮从 reset 开始,到终止或时间上限结束,称为一个 episode。智能体负责提出动作,环境负责决定能不能成交、怎样成交,不能把任何动作都按理想价格执行。

交易环境的一步
  1. 1观测只看决策时可用信息
  2. 2动作买入、卖出或持有
  3. 3执行检查资金、持仓和规则
  4. 4奖励按净值变化记账
  5. 5新状态进入下一时点

一句话记住智能体提动作,环境定结果。

04奖励要和账户净值对得上

奖励可以每一步给,也可以在阶段结束时给。常见的累积折扣回报是:

G_t = Σ_k γ^k r_(t+k+1)

γ 是折扣因子,决定未来奖励的权重。假设未来两步奖励分别是 10 和 20,γ=0.8,那么从当前看见的回报是 10 + 0.8×20 = 26。即时奖励不等于只看短期;长期回报仍可以把未来反馈纳入目标。

交易环境的起点最好用统一的账户净值变化:

r_t = V_(t+1) ÷ V_t − 1

假设当前净值 V_t=100000,下一估值点净值 V_(t+1)=101000,则奖励是 101000÷100000−1=1%。费用、现金和持仓都应进入净值。如果另加回撤惩罚,要同时记录未惩罚净收益,避免把训练分数误称为账户收益。

一个常见错误是:每天已经把持仓收益计入奖励,卖出时又把整个持有期间收益再计一次。正确时序应是:在 t 时读取允许信息,发出动作,在预设成交时点撮合并扣费,更新现金和持仓,再到下一估值点计算净值。

奖励只追求总收益,可能鼓励极高风险;加入成本、回撤或风险惩罚会改变目标。不同奖励函数的训练分数不能直接比较,最后仍要看统一的收益、回撤和交易质量指标。

用净值变化统一奖励

rₜ = V₍ₜ₊₁₎ ÷ Vₜ − 1

先完成成交和记账,再比较两个估值点的账户净值。

一句话记住每天记一次净值变化,不要卖出时重复记账。

05先用 Gym 风格环境理解接口

倒立摆 CartPole 是理解环境接口的好例子。观测通常包含小车位置、速度、杆角度和角速度;动作是向左或向右施力;保持平衡会得到奖励,越界或达到时间上限后结束。

调用 reset 开始新 episode,调用 step(action) 执行一步并得到观测、奖励和结束信息。不同 Gym 版本可能把“自然终止”和“时间截断”分开返回,应该以当前安装版本的接口为准。一个 step 也不必等于一秒。

训练或调试时可以跑约 100 个 episode,观察平均步数是否从 20 多逐渐到约 29。这样的变化只能说明正在观察一次运行,不能证明环境已经解决。还要和随机动作比较,并用多个随机种子检查结果是否稳定。

一句话记住先确认 step 的含义,再解读平均奖励。

06把最小股票环境写清楚

可以先用 510050 上证 50 做教学示例。若每个时点取过去 5 天的开、高、低、收,观测就是 5×4=20 维。但每个字段必须来自当时已经完成的 bar,不能用当天收盘后才知道的价格去决定当天开盘成交。

价格标准化可以使用过去 252 日的均值和标准差。假设历史均值为 3.00、标准差为 0.20、当前价格为 3.20,则 Z-score 是 (3.20−3.00)÷0.20=1。窗口不足、标准差为 0、缺失行情都要有明确处理。标准化只是统一尺度,不会让任意分布自动变成正态。

只有行情没有账户状态是不够的。空仓和满仓可能看到同一组价格,但可执行动作完全不同,所以还应考虑现金、持仓、可卖数量、持有时间或成本。动作可以先设为不动、固定额度买入、全部卖出;也可以使用离散的目标仓位档位。动作定义必须和算法、成交规则一致。

观测不能只放价格

市场

过去 5 天 OHLC,共 20 维。

账户

现金、持仓和可卖数量。

时序

只使用决策前已完成的数据。

一句话记住同样的行情,账户不同,动作也可能不同。

07环境先测漏洞,再谈收益

股票环境至少要明确手续费、、最小交易单位、现金不足、持仓上限、可卖数量、T+1、、停牌和数据缺失。ETF、股票和的规则不同,不能把三动作模型直接套到所有资产。期货还要考虑、合约乘数、到期换月和强平。

历史模拟中的动作通常不会改变市场价格,这只是近似;资金规模变大后,冲击和会让结果失真。环境允许不可能的成交时,模型可能获得高奖励,但那是利用漏洞,不是学会交易。

训练前先随机选择持有、买入和卖出,跑至少三轮,保存每一步的动作、有效成交、现金、持仓、费用和净值。再和同期买入持有、空仓基准比较,用不同随机种子重复。随机策略偶尔盈利,可能只是样本上涨;重复同一历史 episode 也不等于增加了独立市场样本。

动手验收时,手工构造一段价格序列,逐笔检查空仓、买入、持有、卖出、手续费和最后未平仓估值。交付环境规格、观测与动作空间、奖励公式、成交规则、终止条件、随机基准和未实现约束清单。只有记账正确、没有未来信息、非法动作可控,才进入下一课。模拟环境也不能直接连接真实账户;真实委托、成交和模拟动作必须分开记录。

进入算法前的验收顺序
  1. 1手工序列逐笔对账
  2. 2随机动作查执行和费用
  3. 3基准比较对照持有与空仓
  4. 4时间切分训练、验证、测试分开
  5. 5再训练环境通过后才开始

一句话记住随机基准是在测环境,不是在证明策略。

检验
检验一下

4 道小题

全部答对,这一课就算真正读懂了。答错了会告诉你为什么。

01在交易环境中,谁负责检查资金是否足够并决定怎样成交?
02当前净值 100000,下一估值点净值 101000,用净值变化定义奖励时是多少?
03为什么股票观测不能只放过去几天的价格?
04随机动作跑出盈利,最合理的第一判断是什么?
知识卡

这一课,浓缩成一张卡

学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。

AI+金融投资训练营 · 什么是强化学习强化学习交易的第一步是什么?

先建立不偷看未来、记账一致、约束明确的交易环境。

  • 连续决策
  • 净值奖励
  • 环境验收
quant.jtxaionline.com
这一课的要点

记住这 5 句话

  1. 01强化学习把交易看成连续决策,但目标、数据和约束仍由研究者定义。
  2. 02环境负责状态推进、动作校验、成交和奖励;智能体负责提出动作,策略负责从观测选动作。
  3. 03观测要包含与决策相关的账户状态,并严格限制在当时可获得的信息内。
  4. 04用账户净值变化统一奖励,避免每日奖励与平仓奖励重复计算。
  5. 05先用手工序列、随机动作和基准验收环境,再进入 Q-learning 或 DQN;模拟不能直接代替真实交易验证。
完成这一课

完成这一课

读完讲义、答对小题,这一课就算学完了。

  • 读完讲义
  • 通过随堂自测

实验数据AI+金融投资训练营教学样本。固定教学样本

固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。