让 LLM 生成了 20 个交易策略,14 个是同一个东西

0 阅读5分钟

前阵子做了个实验:给 LLM 历史价格数据,让它生成 20 个交易策略,要求输出 Python 代码,含入场/出场规则。

十分钟搞定。代码干净,docstring 齐全,参数看着合理。

回测跑了一遍,12 个显示盈利,有几个年化 200%+。

然后我把代码拉出来对着看。

14 个是同一个均值回归逻辑。不是"类似",是一样的。不同的只有 lookback window 和参数名。核心假设一模一样:价格偏离均值就买入,等它回来。在趋势市里,这 14 个策略会一起往瀑布下面冲,没有任何一个知道趋势变了。

# 14 个"不同"策略的共同内核:
def signal(prices, window=14, threshold=2.0):
    zscore = (prices - prices.rolling(window).mean()) / prices.rolling(window).std()
    return zscore < -threshold  # "超卖"就买

# 问题:
# - window=14 是对这个数据集拟合出来的
# - threshold=2.0 让回测收益最好看
# - 趋势市里 zscore 可以连续几周低于 -threshold
# - 你会一路接飞刀

从那以后我就不把 LLM 当策略生成器了。它更像一个特别自信的实习生,同一份报告交给你 20 次,每次换个封面。

现在的情况是有人真往里面砸钱了

RockAlpha 让 LLM 管 10 万美元的股票组合,散户可以跟单。Aster DEX 搞了个 arena 让 AI agent 和真人对赌,人类爆仓率 43%,AI 是 0%。GitHub 上 ai-hedge-fund 5.6 万 star,用 LLM 模拟巴菲特和芒格讨论交易决策。

去年十月 nof1.ai 给六个前沿 LLM 每个 1 万美元真金白银,交易加密货币合约。没有人类干预。17 天。

两个赚了钱,四个亏得一塌糊涂,其中一个 17 天亏了 40%+。

模型本身不重要,看到什么才重要

nof1 第二轮跑美股,一个神秘模型 +12.1% 赢了,后来揭晓是 Grok 4.20。

它赢不是因为推理更强。它接了 X Firehose,每天处理 6800 万条推文,几分钟内就能出信号。GPT-5.1 拿到的是 15 分钟延迟的新闻摘要。Gemini 看的是 30+ 分钟延迟的 SEC 文件。

RockAlpha 的 arena 也是同一个规律。DeepSeek 跨市场环境持续跑赢。不是因为它更聪明,是因为 High-Flyer Quant 在训练的时候就把时序数据和风控烤进去了。

比较"GPT vs Claude vs Gemini 谁做交易更强"这个问题本身就问错了。

两种死法

观察了这些 arena 结果,加上自己的 20 策略事故,我觉得 LLM 做交易有两种典型的死法。

策略幻觉(Strategy Hallucination)

LLM 生成的策略结构上合法,但不编码任何真实的市场洞察。

我那 14 个均值回归克隆体就是这个。入场逻辑正确,仓位管理正确,风控正确。但全部在利用训练数据里的同一个 artifact。

一个有经验的 quant 五分钟能看出来。我花了两小时。经验不够的人可能根本不会发现。

Arena 里也一样。GPT-5 和 Gemini 生成的交易行为看起来挺合理,放到真实条件下就碎了。就像 LLM 幻觉出一篇维基百科文章:连贯、自信、错的。

回测过拟合盲(Backtest Overfitting Blindness)

LLM 不理解"回测太好看是个警告信号"。

当我要求它生成"回测表现强劲"的策略时,它就老老实实优化这个指标。曲线拟合参数、特征构造里的 lookahead bias、资产选择里的幸存者偏差。每个 quant 都知道这些坑。LLM 全踩了,而且特别自信。

这两种死法会叠加。LLM 先幻觉出策略,然后把它完美拟合到历史数据上。纸面结果可以好看得离谱。

更糟的是:你生成的策略越多,越可能有一个纯靠运气在回测里表现惊人。

到目前为止什么有用

我不敢说自己搞明白了。但 20 克隆体事件加上看了半年 arena 数据,有几个规律比较一致。

不要让 LLM 选参数。 用它来生成结构:指标组合、入场逻辑、风控规则。参数交给能做 walk-forward 验证、样本外测试、算交易成本的东西来优化。LLM 提出假设,别的工具做数学。

把输出当假设,拿到手先怀疑。 年化 180% 的策略,本能反应是找理由证明它行。反过来:先假设它不行,找理由证明回测在骗你。我现在拿到任何 LLM 策略第一件事是跑聚类,看这批"不同策略"底下到底有几种模式。如果 50 个策略聚完只剩 4 种,你没有分散化,你有 4 个策略穿了不同的衣服。我应该在对着 12 个盈利回测激动之前就做这步。

还在想的事

交易软件发展了三代。第一代 MT4 时代把指标变成了可复用组件。第二代 Python 框架把策略变成了可优化对象。第三代 ML 平台把整个系统管线变成了可配置模块。

Arena 直接跳过了这三代,把钱扔给 LLM 说你去吧。大部分翻车了。

但有意思的是,搭一个 Gen 3 级别的系统以前需要一个团队、一笔资金、好几年。现在一个人加 AI 确实有可能攒出来。不是玩具版,是带数据接入、特征工程、walk-forward 验证、风控的完整管线。

AI 不是替代前三代积累的知识。它是让这些东西变得 accessible 了。

我不知道 Gen 4 长什么样。但如果更多人能站在 Gen 3 上面而不是被挡在门外,答案出来的速度可能会超出预期。

有人试过把 LLM 生成的策略灌进传统回测基础设施跑过吗?活下来了没有?好奇你们碰到的是什么 failure mode。