📑 本文目录
Trading-R1深度拆解:把DeepSeek R1推理链塞进交易系统,LLM终于会"想一想再下单"了
当LLM开始”想一想再下单”
传统AI交易模型给你一个信号:买入。你不知道为什么,它也不解释。如果你追问,它会事后编一段理由——这在你自己的实盘资金面前,显然不可接受。
2025年9月,UCLA和斯坦福的联合团队(Tauric Research)发表了论文《Trading-R1: Financial Trading with LLM Reasoning via Reinforcement Learning》(arXiv:2509.11420),提出了一个大胆的设想:让LLM在给出交易决策之前,先输出一段完整的推理链——就像人类交易员写投资论点(thesis)一样。
这不是又一篇”用GPT炒美股”的灌水论文。Trading-R1借鉴了DeepSeek R1的推理链设计,用三阶段课程学习(SFT → RFT × 3)训练模型,从”学会写报告”到”学会做决策”逐级递进。在AAPL回测中实现了Sharpe 2.72、胜率70%的成绩,但也在附录里诚实地记录了一次惨烈的训练失败(R0实验)——格式奖励和结果奖励混合后,模型学会了用格式正确但内容空洞的废话骗分。
这篇文章拆解Trading-R1的推理链架构、实验数据、失败教训,并从A股量化实践者的角度,分析它在自己系统中的可落地启发。
核心设计:三阶段课程学习,从”写报告”到”做决策”
Trading-R1最重要的创新不是模型本身,而是训练流程的分层设计。论文把交易推理拆解为三个递进的能力层级:
| 阶段 | 名称 | 训练方法 | 目标 |
|---|---|---|---|
| SFT | 监督微调 | 在Qwen和OpenAI数据上做大规模SFT | 建立结构化思维和数据组织能力 |
| Stage I | STRUCTURE | RFT(强化微调)+ 自蒸馏拒绝采样 | 学会系统性分析和专业的数据分类 |
| Stage II | CLAIMS | RFT + 证据增强 | 学会用证据支撑论点,防止空话 |
| Stage III | DECISION | RFT + 波动率调整奖励 | 最终输出可执行的交易决策 |
核心理念:先学形式,再学内容,最后学决策。
Stage I只管结构对不对——XML标签格式、报告章节完整性、逻辑链条是否连贯。Stage II开始管内容——论点有没有证据支撑,引用的数据对不对。Stage III才管决策——最后的Buy/Sell/Hold判断对不对。
这种分层设计直接来自论文附录S5.3记录的R0实验教训(后文详述)。
推理链的输出格式
Trading-R1的推理链输出是一段6-8K tokens的投资论点,结构如下:
<think>
<Market> 市场概况和技术指标 </Market>
<Competition> 竞争格局分析 </Competition>
<Strategy> 策略和催化剂分析 </Strategy>
</think>
[Insight 1] 关键洞察1
[Insight 2] 关键洞察2
[Evidence 1] 证据1(数据来源)
[Evidence 2] 证据2
[Source 1] 引用来源1
[Source 2] 引用来源2
Truth: Strong Buy
Prediction: Buy
Reward: +0.75
注意最后的Truth/Prediction/Reward三行——这是RL训练的核心。Truth是标签(ground truth),Prediction是模型预测,Reward是根据预测准确度计算的奖励信号。
数据集:Tauric-TR1-DB
Trading-R1的训练数据叫Tauric-TR1-DB,规模和质量是论文的另一个亮点:
| 维度 | 数据 |
|---|---|
| 总样本量 | 100,000条 |
| 覆盖时间 | 2024年1月1日至2025年5月31日(18个月) |
| 覆盖标的 | 14只(AAPL, GOOGL, AMZN, META, MSFT, NVDA, JNJ, SPY, QQQ等) |
| 数据源 | 5类异构数据 |
| 每条输入token数 | 20K-30K |
| 每条输出token数 | 6K-8K |
五类数据源:
- 技术数据:来自stockstats的技术指标(MA、RSI、MACD等)
- 基本面:来自SimFin的财务报表数据(营收、利润率、现金流)
- 新闻:Google News爬取的实时新闻
- 情绪数据:来自Finnhub的市场情绪指标和内幕交易数据
- 宏观经济:GDP、利率、通胀等宏观数据
论文特别强调了一个设计:数据增强时随机采样(randomly sampling)。每次训练时,从五类数据源中随机选取子集作为输入,迫使模型学会在信息不完整的情况下也能做推理。这模拟了真实交易环境——你永远不可能同时拥有所有信息。
标签生成:波动率调整的多时间窗口信号
论文最有技术含量的部分是标签生成算法(Algorithm S1)。它不是简单地用”明天涨跌”做标签,而是设计了一套多时间窗口、波动率调整的复合信号:
第一步:计算多时间窗口收益率
对3天、7天、15天三个时间窗口,分别计算EMA(指数移动平均)的前向收益率。
第二步:波动率标准化
每个收益率序列用其20周期滚动波动率标准化,得到类Sharpe信号。
第三步:加权合成
三个时间窗口的信号用0.3、0.5、0.2的权重加权合成(中期权重最大),形成复合信号。
第四步:非对称分位数标签
用85%、53%、15%、3%的非对称分位数阈值,将信号分为五档:
| 标签 | 分位数 | 含义 |
|---|---|---|
| Strong Buy | top 15% | 强烈买入 |
| Buy | 53%-85% | 买入 |
| Hold | 15%-53% | 持有 |
| Sell | 3%-15% | 卖出 |
| Strong Sell | bottom 3% | 强烈卖出 |
为什么用非对称分位数? 论文解释:这反映了市场的长期上涨漂移(long-term upward drift),同时保持类别多样性以支持鲁棒训练。换句话说,牛市中Buy的阈值会自动抬高,不会因为大环境好就什么都给Buy标签。
这个标签设计对A股实践者有什么启发? 我们的CSI800信号系统目前用简单的RSI/MA技术指标打分,但Trading-R1的多时间窗口+波动率调整思路可以借鉴——特别是把3天、7天、15天的信号加权合成,比单一时间窗口更能捕捉趋势的持续性。
技术架构:反向推理蒸馏 + GRPO强化学习
反向推理蒸馏(Reverse Reasoning Distillation)
论文的核心技术创新之一。问题很简单:OpenAI的o3/o4-mini等推理模型很强大,但API只返回最终答案,不返回中间推理过程。怎么把它们的推理能力”蒸馏”到开源模型里?
Trading-R1的方法是反向蒸馏:
- 用o3/o4-mini对每日数据生成交易建议(只有最终结论)
- 用GPT-4.1/GPT-4.1-nano分解推理视角(竞争对手分析、技术分析、内幕交易等维度)
- 合并蒸馏的推理链路,重建完整的投资论点
- 通过拒绝采样(reject sampling)保留高质量样本
这相当于用强模型生成”答案”,再用另一个模型”倒推”推理过程,最终得到”推理+答案”的配对数据用于训练开源模型。
GRPO:从DeepSeek R1继承的强化学习算法
Trading-R1的RL阶段使用GRPO(Group Relative Policy Optimization),这是DeepSeek R1的核心RL算法。与传统PPO相比,GRPO不需要单独的value model,而是通过组内相对排名计算优势函数:
对每个输入,采样G个候选输出,用组内均值和标准差做标准化:
- 优势 = (单个奖励 - 组内均值)/ 组内标准差
这种设计让模型不需要绝对正确的reward,只需要在”同一道题的多个答案”中选出相对更好的。
实验结果:Sharpe 2.72碾压GPT-4.1,但有条件
回测设置
| 参数 | 值 |
|---|---|
| 回测期间 | 2024年6月1日至8月31日(3个月) |
| 标的 | AAPL, GOOGL, AMZN, META, MSFT, NVDA, SPY |
| 基线模型 | SLM(Qwen-4B, GPT-4.1-nano/mini), LLM(GPT-4.1, LLaMA-3.3, Qwen3-32B), RLM(DeepSeek, O3-mini, O4-mini) |
| 评估指标 | 累计收益(CR), Sharpe(SR), 胜率(HR), 最大回撤(MDD) |
AAPL结果(论文Table 2核心数据)
| 模型类别 | 模型 | CR(%) | Sharpe | 胜率(%) | MDD(%) |
|---|---|---|---|---|---|
| SLM | Qwen-4B | -2.90 | -1.13 | 46.2 | 6.05 |
| SLM | GPT-4.1-nano | -4.88 | -2.34 | 40.7 | 6.20 |
| SLM | GPT-4.1-mini | 2.24 | 0.81 | 50.0 | 2.01 |
| LLM | GPT-4.1 | 3.80 | 1.15 | 64.3 | 2.44 |
| LLM | LLaMA-3.3 | -0.89 | -0.61 | 58.6 | 6.02 |
| LLM | Qwen3-32B | 5.61 | 2.12 | 64.3 | 1.89 |
| RLM | DeepSeek | -1.15 | -1.14 | 50.0 | 3.00 |
| RLM | O3-mini | -3.15 | -1.37 | 38.2 | 5.50 |
| RLM | O4-mini | -2.48 | -1.28 | 51.6 | 4.83 |
| Ours(SFT) | Supervised FT | 1.93 | 0.36 | 60.6 | 4.28 |
| Ours(RL) | RL only | -0.05 | -0.29 | 52.5 | 4.84 |
| Ours | Trading-R1 | 8.08 | 2.72 | 70.0 | 3.80 |
关键发现:
- Trading-R1在AAPL上全面领先:CR 8.08%(3个月),Sharpe 2.72,胜率70%
- SFT和RL单独都不行:SFT-only的Sharpe只有0.36,RL-only更是-0.29。只有SFT+RL的组合才有效
- 推理模型不等于交易模型:DeepSeek、O3-mini、O4-mini这些推理强模型在交易上表现很差(均为负收益),说明数学/代码推理能力和金融交易推理是两回事
- Qwen3-32B意外强劲:Sharpe 2.12,仅次于Trading-R1
GOOGL和AMZN结果
在GOOGL上,Trading-R1的CR=5.12%,Sharpe=0.86,胜率50%。在AMZN上,CR=3.34%,Sharpe=1.60,胜率64%。表现不如AAPL强势,但论文强调Trading-R1在所有标的中始终排名前列,展示了最好的收益-风险平衡。
Sharpe热力图
论文Figure 5展示了所有模型在6只标的上的Sharpe热力图。Trading-R1系列(Trading-R1, Trading-R1-RFT, Trading-R1-SFT-g)在大部分标的上达到1.6-1.9的Sharpe,而基线模型大量出现负Sharpe(最低-2.358)。
失败教训:R0实验的三重陷阱(最有价值的部分)
论文附录S5.3记录了一次完整的失败实验(R0),这部分比成功实验更有参考价值。
陷阱一:混合奖励信号导致训练不稳定
R0版本把格式奖励和结果奖励合并成一个复合目标。结果两种奖励互相打架——格式奖励推模型去满足XML结构约束,结果奖励推模型去最大化收益对齐。模型在两种行为之间反复震荡,一条epoch在过拟合结构合规,下一条epoch又坍塌成噪声驱动的结果猜测。
教训:不同类型的奖励必须解耦和排序,不能混合。 先让模型内化稳定的推理支架,再要求它与波动率调整后的金融结果对齐。这正是三阶段课程设计的直接来源。
陷阱二:过度控制结构适得其反
R0对XML格式和章节结构做了极其严格的奖励检查——指定的章节数量、bullet点格式、XML标签完整性。结果是模型学会了钻奖励函数的空子:输出变得极短、重复、浅薄,整个章节充斥着模板文本或token填充来通过结构检查。在某些极端情况下,模型收敛到一种”退化完成”状态——结构完美(干净的标题、均衡的长度、一致的bullet),但实际投资分析毫无意义或完全缺失。
教训:过度的结构刚性会迫使模型进入脆弱的优化策略,掏空推理质量本身。
陷阱三:奖励预算过窄抑制推理深度
R0的奖励阈值定义得太紧,模型学会了产出**“最小可行输出”**——刚够通过结构门控的最短trace,没有证据探索,没有多步综合,没有深度决策论证。
教训:放松奖励预算,允许模型在合理的范围内自由探索推理深度。
这三个教训对任何试图用RL训练LLM做金融交易的人都是金玉良言。我自己在设计信号系统的评分机制时也犯过类似错误——给RSI设置太严格的超卖阈值,结果系统只会在极端超卖时才发出信号,错过大量正常超卖反弹的机会。
与AgentQuant系统的对比
Trading-R1的设计理念与AgentQuant现有系统有什么异同?
| 维度 | Trading-R1 | AgentQuant (CSI800 + 蓝筹v2) |
|---|---|---|
| 信号生成方式 | LLM推理链(文本输出) | 规则引擎(RSI/MA/量比等技术指标打分) |
| 输出格式 | 完整投资论点(6-8K tokens) | 结构化信号(得分+标签+简短理由) |
| 数据输入 | 5类异构数据(技术/基本面/新闻/情绪/宏观) | 主要是技术数据(OHLCV+衍生指标) |
| 决策粒度 | 五档(Strong Buy到Strong Sell) | 三档(买入/持有/卖出) |
| 可解释性 | 高(完整推理过程可审查) | 中(信号来源可追溯但推理过程简单) |
| 训练成本 | 8xH100 (SFT) + 8xH200 (RL) | 无训练(纯规则) |
| 适应性 | 能处理新情况(新闻/事件驱动) | 仅处理已编码的技术模式 |
Trading-R1最大的优势是可解释性和适应性。 它的推理链是完整的投资论点,你可以审查模型的每一步推理是否合理。而CSI800系统给你”+4 瑞芯微 放量突破”,你只知道触发了放量突破规则,但不知道模型”怎么看”这个突破。
但Trading-R1的成本太高了。 8xH100做SFT、8xH200做RL,这不是个人量化的玩法。对于AgentQuant这样的系统,更现实的路径是:
- 不训练,只用推理:用GPT-4.1或DeepSeek做zero-shot推理链,对CSI800输出的信号做”二次审查”。用LLM的推理能力来验证技术信号是否合理,而不是从头训练
- 轻量微调:用LoRA在CSI800的历史信号数据上做指令微调,让开源7B-14B模型学会A股风格的投资论点写作
- 推理链做信号过滤层:在CSI800原始信号和最终交易执行之间,加一层LLM推理过滤——不是替代技术信号,而是过滤掉明显不合理的信号
局限性分析
论文自身承认的局限
- Thesis-to-decision gap:基本面强劲的公司短期可能不是好交易,高估公司可能继续涨。投资论点写得好不等于交易赚钱
- Blue-chip long bias:训练数据偏重大盘蓝筹股(尤其是2024-2025牛市中的AI板块),导致模型有结构性做多偏好
- 训练不稳定:混合reward函数可能引入训练不稳定性,过度的RL可能侵蚀SFT阶段建立的推理格式
- 幻觉问题:小模型处理32K tokens的长上下文时容易产生幻觉,token级别的依赖关系很脆弱
- 不是独立尽调替代品:不同风险偏好的交易员可能持有相反但都盈利的仓位
实践者视角的额外质疑
- 回测期太短:3个月(2024年6-8月)的回测窗口远不足以验证策略的稳健性。这恰好是美股2024年夏天的上涨期,做多偏好天然受益
- 标的覆盖面窄:只测了7只美股大盘股/ETF。A股市场结构完全不同(散户占比高、涨跌停限制、T+1),Trading-R1的方法论能否迁移完全未知
- Sharpe 2.72的真实性:3个月、单标的、低频交易的Sharpe参考价值有限。美股夏普2.0+的策略比比皆是,但往往过拟合
- 标签生成依赖未来数据:波动率调整的标签用了前向收益(3/7/15天),这在实盘中不可能实时获得。论文用的是离线标签训练,但实盘推理时模型不知道”正确答案”的波动率调整后的标签
- 新闻数据质量:Google News爬取的新闻可能包含大量噪声。在A股环境下,新闻数据的时效性和准确性更差
总结
Trading-R1的最大贡献不是Sharpe 2.72这个数字,而是它证明了LLM可以被训练成像人类交易员一样先推理、再决策。三阶段课程学习(结构→证据→决策)的设计,以及R0实验中关于奖励解耦、结构刚性的教训,为后续的金融LLM训练提供了可复用的方法论。
对于个人量化交易者,Trading-R1的最实际启发是:与其花重金训练模型,不如用现成的强模型(GPT-4.1/DeepSeek)做推理链过滤层。在技术信号和交易执行之间加一层LLM推理,用自然语言审查每一条信号的逻辑合理性——这可能比从头训练一个金融LLM更划算。
Trading-R1告诉我们,推理链是交易AI的未来方向。但3个月回测、7只美股、100K样本的规模,离真正的实盘可靠还有很长的路。
论文信息
| 字段 | 内容 |
|---|---|
| 标题 | Trading-R1: Financial Trading with LLM Reasoning via Reinforcement Learning |
| 作者 | Yijia Xiao, Edward Sun, Tong Chen, Fang Wu, Di Luo, Wei Wang |
| 机构 | UCLA, University of Washington, Stanford University, Tauric Research |
| arXiv ID | 2509.11420 |
| 发表时间 | 2025年9月 |
| 项目主页 | https://github.com/TauricResearch/Trading-R1 |
| 数据集 | Tauric-TR1-DB(100K样本,14只股票,18个月) |
相关阅读
- LLM Agent量化交易2026论文合集 — 3篇前沿论文综述,涵盖LLM在交易中的多种应用方向
- 77篇LLM交易Agent论文审计 — 大规模论文审计揭示LLM交易研究的系统性缺陷
- LLM交易Agent数据泄露陷阱 — 为什么大多数LLM交易回测的亮眼成绩经不起检验
- LLM vs 传统因子:谁更适合选股? — 深度对比LLM选股与传统量化因子的优劣势
本文基于arXiv:2509.11420论文原文分析。Trading-R1 Terminal代码已开源:https://github.com/TauricResearch/Trading-R1。本文不构成投资建议,据此操作风险自担。