LLM 直接写量化策略,到底靠不靠谱? 经常有人问我现在大模型写代码这么强能不能直接让它写一个量化策略然后拿去实盘这个问题我以前也真试过。当时 GPT-4o 刚火起来网上到处都是“AI 几分钟写出完整项目”的视频。我也心痒直接丢给它一句话用 Backtrader 写一个 RSI 超卖反弹策略。 RSI 低于 30 买入高于 70 卖出半仓。十几秒后代码出来了。类继承、初始化、买卖逻辑、日志打印都有。复制进 IDE运行也不报错。那一刻你会有一种错觉好像真的只差一个提示词就能把策略研究自动化了。然后 equity 曲线出来了。一条直线。零笔交易。这就是很多人第一次用 LLM 写策略时会遇到的现实代码看上去像那么回事回测框架也跑起来了但策略本身并没有真正工作。1. 第一个坑代码没错金融语义错了我后来排查了两个小时问题藏在 Backtrader 的细节里。LLM 写的是if self.rsi 30: self.buy(sizetarget_size)这段代码在普通 Python 语法里看起来没毛病。Line对象也确实支持比较运算所以程序不会报错。但在 Backtrader 里你真正想取的是当前 bar 的 RSI 值应该写成if self.rsi[0] 30: self.buy(sizetarget_size)就这一个[0]足够让一个策略从“看起来能跑”变成“真的按当天指标判断”。这类错误最麻烦的地方在于它不是语法错误。语法没问题框架能跑回测也能输出结果。只有真正熟悉框架的人才会意识到这里的金融语义已经偏了。修完这个再跑。还是零成交。第二个坑更隐蔽那段时间 RSI 根本没跌破 30。再加上 LLM 把几个入场条件用严格的and绑在一起信号几乎不可能同时满足。手动把阈值放宽、条件拆开以后终于有交易了。但手续费一扣利润又被吃没了。这件事给我的感觉很明确LLM 懂 Python不代表它懂策略。它能写类、写函数、写日志也能调用框架。但它不一定知道一个条件会不会让信号消失不一定知道手续费会不会吞掉边际收益也不一定知道 Backtrader 这种框架的取值习惯。这些东西不是代码语法是量化研究员长期积累出来的“肌肉记忆”。2. QuantCode-Bench为什么“能跑”不等于“能交易”最近 Lime 团队做了一个评测叫 QuantCode-Bench。它收集了 400 个具体的策略编程任务把一批大模型拉到同一个回测环境里测试。这个评测有意思的地方在于它没有只看代码能不能生成而是把量化策略开发拆成四道关卡。关卡测什么常见失败1. 语法正确代码能否通过基础检查大部分模型都能过2. 回测可运行能否在框架里跑完整回测索引越界、数据对齐错误3. 至少成交策略是否真的产生交易条件太严、信号为零4. 逻辑一致代码是否偏离原始策略意图买卖条件写反、仓位规则偏移最真实的是第三关至少得下一笔单。很多模型前两关都能过看起来已经完成任务了。可一到“是否真的交易”一批模型直接掉下去。这和我当时的零成交经历非常像。原文里提到一遍跑下来即便最强的 Claude-opus-4.6通过率也只有 75.8%。国内表现较强的是 glm-5 单轮以及 kimi-k2.5 多轮。QuantCode-Bench 模型通过率对比这张图反映的不是“哪个模型更会写代码”这么简单。它说明量化代码任务有一个很特殊的断层从语法正确到策略真实发生交易中间隔着大量框架细节和金融直觉。3. 失败原因其实很具体这类任务失败并不是因为模型完全不会写代码。相反大模型在基础代码生成上已经很强。真正让它翻车的往往是一些特别小、但对交易系统很致命的细节。原文里提到两个典型死因失败原因占比具体表现Line 对象布尔判断错误13.1%忘记使用[0]获取当前 bar 的值条件过于苛刻导致零信号17.8%多个入场条件用and硬绑回测期内几乎不触发举个很典型的例子。LLM 可能会写出这种条件if self.rsi[0] 30 and self.close[0] self.sma[0] and self.volume[0] volume_threshold: self.buy()从代码角度看这很工整。但从策略角度看这可能直接把信号掐死。RSI 低于 30本来就常常出现在弱势下跌环境。你又要求收盘价站上均线还要求成交量超过阈值三个条件同时满足的概率可能非常低。最后策略没亏钱也没赚钱。因为它根本没交易。这类问题不是靠“模型参数更大”就能自然解决。它需要回测反馈、错误定位和策略语义检查。4. 直接让 LLM 当交易员风险很大这组结果也能和另外两类研究放在一起看。第一类是 AlphaForgeBench。它测试的是 LLM 做交易决策的能力。里面有一个很刺眼的现象如果直接让 LLM 当交易员根据市场状态给出买卖决策它的行为会非常不稳定前后矛盾方差很大。但如果换个用法把 LLM 当成量化研究员只让它生成可执行的 Alpha 因子把逻辑生成和交易执行拆开结果会稳定很多。这点很关键。LLM 更适合做研究辅助不适合直接接管交易执行。第二类是 LLM-GA。西交利物浦大学提出过一个框架把大模型和遗传算法结合起来。大模型不负责“一次写出完美策略”而是负责提供策略变异、交叉和逻辑约束让搜索过程不要跑到完全离谱的方向。这其实是更合理的用法。人类提出假设 | LLM 生成策略表达 / 因子变体 | 回测系统验证 | 遗传算法筛选与变异 | 人类复核经济逻辑与风险这里 LLM 是研究流程的一环不是最终决策者。5. Agentic 多轮修复才是正确打开方式QuantCode-Bench 里还有一个很有意思的数据。单次生成时最佳模型通过率只有七成多。但如果给模型加上 Agentic 多轮反馈机制允许它失败、读取报错、最多修 10 次最佳模型通过率可以提升到 95%-98%。这就说得通了。因为很多错误并不深。它们不是“模型完全不懂量化”而是1. 框架对象取值方式错了2. 条件组合导致没信号3. 数据对齐有偏移4. 仓位更新和订单状态没处理好5. 交易成本没有正确扣除。这些问题只要有回测反馈就能修。一个更合理的 LLM 量化开发流程应该像这样策略想法 - LLM 生成初稿 - 回测运行 - 捕捉报错 / 零成交 / 逻辑偏移 - LLM 修复代码 - 再次回测 - 人类检查参数、经济逻辑、风险暴露这个流程里LLM 的价值很大。它可以快速搭框架、写指标、处理数据、生成可运行代码。但核心参数、交易逻辑、信号解释、风险边界仍然要人来盯。6. 我对 LLM 写策略的判断如果把 LLM 当成“自动提款机”基本迟早要失望。它不会因为你说一句“生成一个高夏普策略”就真的理解市场里谁在亏钱、为什么愿意亏钱、这条 Alpha 能持续多久。但如果把它当成一个手速很快、偶尔粗心、需要严格 review 的量化实习生它已经非常有价值。可以让它做1. 数据清洗脚本2. 指标和因子计算3. 回测框架初稿4. 参数扫描5. 结果可视化6. 报错修复7. 策略变体生成。不应该直接交给它做1. 实盘买卖决策2. 核心 Alpha 假设3. 交易成本假设4. 风险敞口判断5. 策略是否值得放大的最终判断。一句话LLM 可以加速量化研究但不能替代量化判断。7. 更现实的系统工程harness原文里提到一个词harness。这个词很重要。想让 AI 真正参与策略生成不是靠一两句 prompt而是靠一整套约束、测试和反馈系统。至少要包括1. 标准化数据接口2. 明确的策略模板3. 自动回测环境4. 零成交检测5. 交易成本检查6. 数据对齐检查7. 未来函数扫描8. 样本外验证9. 人工 review 节点。没有这些东西LLM 只是一个会写代码的黑盒。有了这些东西它才可能变成一个可控的研究助手。这也是析境科技AI量化平台接下来重点要解决的问题不是让 AI 凭空“发明圣杯”而是把研究流程拆成可验证、可回滚、可迭代的模块。8. 最后LLM 直接写量化策略靠不靠谱我的答案是单次生成不靠谱。放进完整研究系统里非常有用。大模型真正改变的不是“谁能一键生成赚钱策略”而是量化研究的工作流。过去一个想法要变成可运行回测需要研究员自己写一堆数据处理、框架适配和指标计算。现在这些体力活可以被 LLM 大幅压缩。但压缩体力活不等于压缩判断。策略为什么有效信号为什么触发条件是否过严成本是否真实样本外是否站得住这些问题还是要人来回答。AI 的边界不在它能不能写代码。真正的边界在于我们有没有能力把它放进一个足够严格的研究系统里。复现代码和更完整的实验细节我会放在析境科技AI量化平台。SeekGain 析境科技是国内首个个人AI量化平台也是连接量化研究者、AI 开发者和投资实践者的国内最大AI量化社群之一。我们聚焦机器学习在量化投资中的前沿应用持续分享论文复现、模型代码、核心 Alpha 因子、策略研究框架和 AI 量化工具链。核心价值1. 顶级圈层连接量化研究员、私募创始人、基金经理、券商金工分析师、GitHub 高星项目作者及前沿研究者。2. 每日高价值内容持续更新前沿论文、研报复现、模型代码、核心 Alpha 因子和可落地的量化研究案例。3. AI量化工具链围绕因子挖掘、策略复现、回测验证和量化 Agent帮助个人研究者把想法更快落到可验证的策略研究里。加入 SeekGain 析境科技和真正做研究的人一起把 AI 量化从概念推进到可复现、可验证、可迭代。