🎮 强化学习:交易环境建模

RL 三要素的交易映射表、奖励函数设计的算例与 Goodhart 陷阱、模拟环境保真度的三层缺口、RL 的合理战场(执行/做市)与不合理期待(端到端炒股)。

强化学习的叙事极其诱人:一个 agent 在市场里自己学会交易——不设规则,让它在试错中成长。现实则苛刻得多:RL 在金融的主要战场不是「选股」,而是执行与做市这类「规则清晰、反馈密集」的子问题。本篇讲清 RL 交易的真实形态与边界。

三要素的交易映射

RL 的框架是 agent 在环境中试错、最大化累计奖励:

RL 要素交易映射设计难点
状态 State持仓、现金、近期行情特征、订单簿状态状态空间的选择 = 特征工程(见特征工程 ),漏掉持仓外的关键变量(如未成交委托)会让 agent 学出幽灵行为
动作 Action{买/卖/持有, 量, 限价档位}连续动作(价格量)比离散难训;动作粒度决定策略的精细度
奖励 Reward每步的盈亏 − 风险惩罚整个 RL 交易的核心难题(下节)
环境 Environment模拟撮合(回测引擎的 RL 版)保真度决定一切(下下节)

奖励函数:RL 交易的灵魂与陷阱

「最大化累计收益」的朴素奖励会训出什么?高风险的彩票策略——agent 发现偶尔满仓赌对方向收益最大,于是学会梭哈(训练样本内它真的可能持续赢)。奖励设计的核心是把风控写成数学:

  • 风险惩罚项:reward = 盈亏 − λ × 持仓风险暴露 − μ × 回撤增量——λ/μ 就是风险厌恶系数(与均值-方差的 λ 同源,见优化 )。量级:若目标回撤 -10%,μ 的量级要让「回撤增量 1%」的惩罚 ≈ 「盈利 0.3%」——惩罚与收益同量级才有约束力;
  • 换手/成本项:每笔交易扣真实成本(佣金+价差+冲击模型)——不含成本的 RL agent 会学会「高频小幅翻转」(每一步的微小信息优势被成本吞掉而奖励函数看不见);
  • 奖励的时间尺度:每步奖励 vs 终局奖励(期末净值)——稀疏奖励难训、密集奖励易学偏(短视)。折中:按持仓周期分段的半密集奖励。

奖励设计的元问题:你写下的奖励函数 = 你对「好交易」的全部定义——RL 不比奖励函数更聪明。奖励漏洞(任何未被惩罚的坏行为)最终都会被 agent 发现并利用——这是 RL 的「Goodhart 定律」:当奖励成为目标,它就不再是好的目标。实例:只惩罚回撤不惩罚换手的 agent,学会「用高频微调把回撤指标刷漂亮」,换手成本却吃光利润。

模拟环境:保真度的天花板

RL agent 在哪里试错?在你的模拟环境里。它学到的是「模拟环境的最优策略」——模拟与真实的差距(sim-to-real gap)就是策略的失效空间:

  1. 撮合保真度:模拟环境的成交规则(能否成交、滑点多少)决定 agent 对「下单后果」的认知——粗糙的撮合(收盘价全成)会教出「巨单无冲击」的幻觉策略(撮合阶梯见回测框架设计 );
  2. 市场反馈的保真度:真实市场里你的行为改变市场(冲击反馈、被对手探测)——多数模拟环境没有这一层,agent 学不到「我的大单自己会砸盘」(冲击的博弈面见Kyle 模型 );
  3. 分布漂移:RL 过拟合训练环境的规律,而环境本身在变——比监督学习更严重(agent 学的是「环境的最优应对」而非「统计规律」)。

缓解路线:环境随机化(训练时随机化成本/滑点/成交率参数,让 agent 学稳健策略而非精确参数)、域适应(在真实 TCA 数据上校准模拟器,见TCA )、以及保守的在线学习(实盘小资金 + 影子环境并行,增量微调而非从头学)。

RL 的合理战场与不合理的期待

合理的战场(规则清晰、反馈密集、可精确模拟):

  1. 最优执行:给定目标仓位,学执行轨迹的动态调整——Almgren-Chriss 的 RL 版(对冲击与行情实时反应),这是业界落地最实的 RL 用例(见执行算法 );
  2. 做市:库存管理与报价调整的动态决策——规则明确(价差收入 − 库存风险),反馈密集(每笔成交),做市商的天然试炼场(见做市策略 );
  3. 订单路由与排队优化:微观结构层面的策略学习。

不合理的期待:「端到端 RL 炒股」——从行情直接到买卖决策的全自主 agent。它的失败是结构性的:奖励难写(上面全部问题叠加)、环境失真、样本不足、且完全不可解释不可审计(风控的灾难,见ML 定位 的分层原则)。RL 在量化里的正确定位是「决策层局部问题的求解器」,不是「全自动交易员」——把它装进分层的体系里(预测归监督学习、组合归优化器、执行难题归 RL),各得其所。

关联阅读:RL 之外的 ML 主战场监督学习 ;执行问题的经典解Almgren-Chriss ;做市的问题设定高频与做市 。