📑 本文目录
LLM交易KTD-Fin数据泄露alpha幻觉Barra归因AI选股

掩码后α消失:KTD-Fin基准用"数据脱敏"戳穿LLM交易Agent的记忆幻觉


一个刺眼的实验结果

同一个模型(Step-3.5-Flash),同一组价格数据(OHLCV技术指标),只因变量名不同,就产生了截然不同的交易决策:

看见股票名时:

“SH688981——半导体制造龙头,受益于行业复苏预期。20日涨幅108%,10月18日涨停板显示强劲驱动力,适合配置。”

股票名被替换为匿名ID后:

“asset_0028——20日涨幅仅+14.4%排名靠后,浮亏最大,风险/收益比不利,平仓释放资金。”

同样的数字,同样的模型。唯一变化的是:前者能看到”中芯国际”这个名字,后者只看到”asset_0028”。前者兴奋地买入,后者果断地卖出。

这不是个例。清华大学和阶跃星辰(Stepfun)联合发布的KTD-Fin基准(arXiv:2605.28359)系统性地证明了一件事:LLM交易Agent的所谓”选股能力”,很可能只是训练数据的记忆,而非真正的投资推理。


问题的核心:LLM的alpha是记忆还是推理?

2026年,把大语言模型当交易Agent用已经不是新鲜事。FinMem、FinAgent、TradingGPT等框架层出不穷,GitHub上AI交易Agent的开源项目动辄上万Star。方法论也很直觉:给模型一段历史行情,让它分析后输出买卖指令,然后回测看收益。

但KTD-Fin论文直指两个被集体忽略的评测失败(evaluation failures):

失败一:记忆泄露。 长周期回测(比如2020-2026)几乎必然覆盖前沿模型的训练数据截止日期。模型在预训练时已经”见过”了贵州茅台2024年大涨、中芯国际10月涨停这些历史。当你在回测中把真实股票代码喂给它时,它根本不需要推理——只需要从记忆里调出”这只股票后来涨了没有”。

失败二:收益归因混淆。 即使控制了泄露,累计收益率仍然是一个混乱的指标。一个Agent赚了50%,可能是它真的会选股(真alpha),也可能只是碰巧重仓了高波动因子,而那个区间恰好高波动因子跑赢(风格暴露)。不拆解收益来源,你永远不知道是哪一种。

这两个问题都不新鲜。此前我们写过 LLM交易数据泄露检验(PolyBench在Polymarket事件预测上7个模型仅2个正收益),也分析过 StockBench方法论评测(金融问答SOTA放到实盘却亏钱)。KTD-Fin的特殊之处在于:它没有试图绕过记忆问题,而是直接用一套精巧的四层掩码协议,把记忆变成了一个可控制的变量。


KTD-Fin的四层掩码协议:把记忆变成旋钮

KTD-Fin的中文全称是”Knowing-To-Doing Financial Benchmark”——从”知道”到”做到”。名字本身就点明了核心命题:模型在训练数据中”知道”一个股票的历史走势,不代表它真正”做到了”基于数据推理的选股。

四层掩码级别

KTD-Fin设计了四个递进的匿名化级别:

级别股票名称日期控制的记忆通道
Bright(亮)真实代码(如SH600519)真实日期(如2024-05-10)不控制——模型可自由调取所有记忆
Stock-blind(股盲)匿名别名(如asset_0042)真实日期剥离品牌/行业记忆,保留日历记忆
Date-blind(日盲)真实代码相对偏移(如day_-3)剥离日历记忆,保留品牌记忆
Blinded(全盲)匿名别名相对偏移两个通道全部关闭

关键设计:所有数值型特征——收益率、波动率、回撤——都保留真实值。掩码只改变”标识符”(identifier),不改变”信号”(signal)。这意味着模型在blinded模式下仍然能看到”asset_0006的20日涨幅是+27.4%“,但它不知道这个asset_0006到底是中芯国际还是贵州茅台。

掩码为什么能工作:保留推理通道,关闭记忆通道

这个设计背后有一个清晰的哲学区分:

  • 可推理的信息:价格、成交量、技术指标、收益率排名——这些从数据本身就能推导
  • 可记忆的信息:公司品牌、行业分类、历史事件关联、特定日期的涨跌——这些只能来自预训练语料

KTD-Fin把后者全部匿名化,只留下前者。如果模型在”只有可推理信息”的条件下还能选出好股票,那才是真正的选股alpha。

独立验证:十个攻击者探针

怎么证明掩码真的有效?KTD-Fin设计了一个独立的去匿名化探针(de-anonymization probe):把blinded模式下Agent看到的匿名数据交给10个前沿LLM当”攻击者”,让它们尝试还原原始股票代码和日期。

结果:

攻击指标最强攻击者成绩随机基线
股票代码top-5正确率10.2%~5%
日期精度(前后7天)极低极低
联合正确率(代码top-5且日期精度7天内)1.5%~0.5%

联合正确率只有1.5%,和随机猜测相差无几。这证明掩码协议有效关闭了记忆通道。


实验结果:掩码前后,模型判若两人

结果一:同一模型,bright和blinded下行为完全不同

KTD-Fin用锚定模型Step-3.5-Flash跑了完整的4×3网格(4种掩码×3种决策模式×10个时间窗口×5个随机种子)。

memory-only模式下(只给模型股票代码和账户状态,不给任何行情数据),最极端的对比出现了:

掩码级别中位总收益率
Bright-0.16%(交易活跃,但亏钱)
Blinded0.00%(完全持有现金,零交易)

在bright模式下,模型虽然看不到任何行情数据,但只要知道股票代码,它就敢下单——然后亏钱。在blinded模式下,它收到的唯一信号(股票代码)被匿名化了,于是它选择什么都不做。

这说明什么?在memory-only模式下,模型交易的唯一依据就是预训练记忆。 当这个通道被关闭,模型自己判断”没有信息优势”,于是持有现金。这比任何prompt级别的”请勿使用外部知识”指令都有效——OracleProto论文已经证明,prompt级别的限制根本不起作用。

结果二:10个前沿LLM的收益排行 vs 选股alpha排行

这是KTD-Fin最有冲击力的发现。在blinded×open-research条件下,10个LLM Agent在CSI300上跑2024年1月到2026年4月的完整窗口:

按总收益率排名(通常大家只看这个):

模型总收益率超额收益Sharpe最大回撤
Qwen3.6-Plus+85.29%+48.37%1.13-24.49%
GPT-5.5+61.26%+24.34%0.98-24.63%
Doubao-Seed-2.0+61.01%+24.09%1.15-15.62%
Claude-Opus-4.7+58.80%+21.88%0.98-26.69%
MiniMax-M2.7+56.31%+19.39%0.89-29.43%
CSI300买入持有+36.92%0.00%
Step-3.5-Flash+21.86%-15.06%0.49-28.99%
Gemini-3.1-Pro+8.25%-28.67%0.29-49.67%
DeepSeek-V4-Pro+1.39%-35.53%0.19-42.35%
GLM-5.1-3.55%-40.47%0.10-44.88%
Kimi-K2.6-24.23%-61.15%-0.34-45.49%

看起来5个模型跑赢了沪深300买入持有。Qwen3.6-Plus超额收益+48%非常亮眼。

但KTD-Fin没有止步于此。 它做了一件事:用Barra风格的横截面回归,把每个Agent的总收益拆解为三部分——市场beta、风格暴露、选股alpha。

模型市场贡献风格贡献选股alpha总收益
Claude-Opus-4.7+35.0+16.6+0.2+51.8
Qwen3.6-Plus+41.8+29.2-0.7+70.3
Doubao-Seed-2.0+42.5+15.5-4.7+53.3
MiniMax-M2.7+29.6+26.4-7.4+48.6
Step-3.5-Flash+29.5+17.5-13.7+33.3
GPT-5.5+40.0+11.8-14.9+36.9
Gemini-3.1-Pro+38.3+23.6-38.5+23.4
DeepSeek-V4-Pro+38.5+23.1-43.0+18.6
GLM-5.1+39.5+27.5-61.9+5.1
Kimi-K2.6+32.1+22.0-77.8-23.7

10个Agent中,只有Claude-Opus-4.7的选股alpha接近零(+0.2%),其余9个全部为负。

总收益第一的Qwen3.6-Plus(+85.29%),选股alpha是-0.7%。这意味着它赚的钱几乎全部来自”碰巧重仓了涨得好的因子”,而不是”选对了具体股票”。如果用一个同样因子暴露的被动组合替代它的持仓,收益几乎不变。

换句话说:即使已经在blinded模式下屏蔽了记忆泄露,LLM Agent仍然没有展现出持续的选股alpha。 它们的收益可以被市场beta和风格暴露完全解释。

结果三:决策理由的质变

最生动的证据来自模型自己输出的交易理由(rationale)。

Bright模式(可见真实代码),模型说:

“SH600519——贵州茅台,白酒龙头;低波动率0.0234,回撤控制良好-7.3%,5日收益+15.2%排名前列——适合作为稳健配置。”

“SH601939——建设银行,20日动量+11%排名第一,低波动,浅回撤——符合大盘低波动高动量风格。”

“SH688981——半导体制造龙头,受益于行业复苏预期。20日收益+108%,10月18日涨停板显示强劲驱动力。”

注意这里模型引用了”10月18日涨停板”——这个信息在输入数据中根本不存在(输入只有OHLCV数字),模型是从训练记忆中调取的。

Blinded模式(匿名ID),同一个模型说:

“asset_0006——20日收益+27.4%,低波动率0.0255,回撤仅-3.8%;风险/收益比优秀,增持至10%上限。”

“asset_0013——5日收益+14.5%排名第2,20日+27.6%排名第1,低波动且最大回撤仅-3.87%;新建8%仓位。”

同样的数字,完全不同的叙事层级。Bright模式充斥着品牌叙事(“白酒龙头""行业复苏”),Blinded模式只剩下因子排名(“20日+27.4%""排名第1”)。叙事层消失了,因子层被保留了。

这直接证明了:驱动模型交易的信号首先是股票代码(品牌身份),其次才是数据。 当代码被匿名化,模型只能依赖因子数据做决策——而在因子数据上的选股alpha,基本为零。


三种评测基准的方法论对比

KTD-Fin不是唯一试图解决LLM交易评测问题的基准。把它和我们此前分析过的另外两个基准放在一起看,更能理解三种不同的哲学:

维度PolyBenchStockBenchKTD-Fin
检测的问题时间泄露(测试期在训练数据中)能力断裂(问答强不等于交易强)记忆泄露(品牌/日期身份泄露)
核心方法仅用训练截止后的日期做测试对比金融QA准确率与实盘交易绩效四层掩码协议 + Barra收益归因
泄露控制时间维度(滚动窗口)不直接控制数据维度(标识符匿名化)
收益拆解不拆解不拆解市场 + 风格 + 选股alpha
关键发现7个SOTA仅2个正收益QA准确率与交易收益几乎无相关性10个Agent仅1个alpha接近零
局限每次模型更新可用窗口缩短策略多样性不足仅CSI300、仅价格数据

三种基准从不同角度指向同一个结论:LLM的交易表现远没有看起来那么好。 PolyBench控制了时间泄露,StockBench暴露了能力迁移断裂,KTD-Fin则直接在协议层面关闭了记忆通道并拆解了收益来源。

但KTD-Fin走得最远:它不仅控制了泄露,还告诉你”即使控制了泄露,Agent赚的钱也不是来自选股”。

详见我们此前的分析:PolyBench数据泄露检测StockBench方法论评测77篇LLM Agent交易论文审计


交叉验证:5448条CSI800信号的”alpha幻觉”

KTD-Fin的结论在纯LLM Agent的世界里成立。但一个自然的质疑是:连规则型策略系统都很难获得持续的alpha,LLM Agent做不好又有什么奇怪?

我们自己的CSI800信号追踪系统提供了一个绝佳的对照。这不是LLM Agent,而是一套纯规则打分系统——RSI低吸 + 均线金叉 + 放量突破等技术指标加权打分,生成买卖信号。

截至2026年7月8日,该系统累计追踪5448条已验证信号(买入信号次日开盘价入场,收盘价结算):

维度胜率平均次日收益
总体42.8%-0.26%
动量型信号49%+0.20%
均值回归型信号41%-0.16%
多头市场环境35%-0.48%
中性市场环境45%-0.03%
空头市场环境45%+0.04%

几个值得深思的发现:

1. 连规则策略的alpha都很薄。 总体胜率42.8%,低于50%随机基线。动量型最好也只有49%。如果连精心设计的规则系统都难以持续获胜,LLM Agent的”选股alpha”更值得警惕。

2. 多头市场是均值回归的坟墓。 多头环境下信号胜率仅35%。模型(无论LLM还是规则)在趋势行情中做均值回归(买入下跌的股票),结果是在下跌中继中越买越跌。这与KTD-Fin中LLM Agent在风格暴露上表现相似——它们都在”追”某种因子,而非真正选股。

3. 信号集体失效日(7月6日)。 2026年7月6日发出的88只信号,次日胜率仅19%,平均收益-1.74%。最极端的案例:东方盛虹信号分+5(最高分),次日-10.51%。当市场出现系统性调整,所有信号逻辑同时失效——这和KTD-Fin中Agent选股alpha为负的结论一致:在不利环境下,选股能力的边际贡献几乎为零,市场beta决定了大部分结果。

详见:均值回归牛市陷阱(5086条信号)MAMS策略3512条信号验证动量vs均值回归2861条信号


KTD-Fin的局限与可复现性评估

论文自身承认的局限

  1. 仅CSI300、仅价格数据。 不覆盖美股/港股,不含新闻、研报、基本面等多模态输入。实际上,如果加入新闻和研报,LLM可能展现出更多”推理”而非”记忆”的能力——但也可能被多模态数据中的品牌信息进一步泄露。
  2. 完整网格仅跑了锚定模型。 10个前沿LLM只在blinded×open-research条件下跑,其余掩码×模式组合因API成本未做。
  3. 仅一个市场、一个时间窗口。 2024-2026的CSI300恰好经历了一波牛市,风格因子贡献可能被放大。

实践者视角的额外质疑

  1. Barra归因的风格因子是否足够? KTD-Fin用了9个风格因子(动量、波动率、流动性、反转、偏度、量价交互等),但A股的风格因子远不止9个。如果遗漏了某个重要因子(比如小市值因子、北向资金偏好),选股alpha可能被低估或高估。
  2. blinded模式是否过于苛刻? 在真实交易中,投资者确实会知道自己在交易什么股票。完全匿名化是一个极端条件,它测量的是”纯推理能力”而非”真实交易场景下的表现”。但作为诊断工具,它的价值恰恰在于隔离记忆——而不是作为实盘模拟。
  3. 与18个监督学习基线的对比是否公平? Alpha9基线在2008-2022年训练(14年训练数据),而LLM没有在CSI300成分股上做任何微调。这是一个”通用大模型 vs 专业量化模型”的不对称比较。但反过来说,这也恰恰是当前LLM交易Agent的现实——大多数人不会为每个市场微调一个专用模型。

落地启示:掩码测试应成为标配

如果你正在评估一个LLM交易Agent(无论是开源框架还是自建系统),KTD-Fin给了我们一个清晰的诊断框架:

1. 至少做一次掩码测试

核心做法:

  • 把回测数据中的股票代码替换为匿名ID(如asset_0001, asset_0002…)
  • 把日期替换为相对偏移(如day_-3, day_-2…)
  • 保留所有数值型特征不变
  • 对比掩码前后的收益变化和决策理由变化

如果掩码后收益大幅下降,说明Agent的”alpha”高度依赖品牌记忆。如果收益不变,说明它确实在做因子推理。

2. 必须做收益归因

不要只看总收益。用横截面回归把收益拆解为市场 + 风格 + 残差(选股alpha)。如果你的Agent总收益+50%但选股alpha为负,那说明它在被动的风格暴露上运气好——换个市场环境可能就原形毕露。

3. 关注决策理由的语言特征

一个有用的诊断信号:看Agent给出的交易理由中是否包含数据中不存在的品牌叙事(如”白酒龙头""受益于政策”)。如果包含,说明它在用记忆补数据。


论文信息

字段内容
标题From Knowing to Doing: A Memory-Controlled Benchmark for LLM Trading Agents on Stock Markets
作者Taojie Zhu, Wentao Zhao, Rui Sun, Beidi Luan, Jiacheng Lu, Sinuo Wang, Jing Li, Daxin Jiang, Yonghong He, Zuo Bai
机构清华大学、阶跃星辰(Stepfun)、FinStep、上海交通大学、阿德莱德大学
arXiv2605.28359
代码论文声明已公开发布环境、脚本、掩码协议和完整评测数据集

相关阅读

💬 评论