BacktestBench 自动量化回测基准(KDD 2026)

原题:BacktestBench: Benchmarking Large Language Models for Automated Quantitative Strategy Backtesting

一句话总结:BacktestBench 用 654 万条市场记录构造 18,246 个可执行任务,并以 AutoBacktest 串联大语言模型(Large Language Model,LLM)的指标抽取、SQL 检索和代码执行;最强模型总体准确率仍只有 67.41%,且代码可运行与逻辑正确显著解耦。

问题与动机

自动回测同时要求理解策略、找到正确历史数据、避免未来信息并实现精确会计逻辑。既有金融基准多测知识或盈利结果,缺少从自然语言到可复现回测的端到端裁判。

关键观察 / 隐含假设

  • 观察 1:Kimi Linear 48B 的代码执行正确率达 99.22%,但数据查询执行准确率为 48.46%,指标计算准确率仅 0.19%(§4.2.3,表 1)。
    • 依赖假设:作者的标准协议和精确到 的答案是唯一正确语义。
  • 观察 2:领域短代码比完美 SQL 更重要;提供标准指标标识的配置普遍优于没有标识但给出真值 SQL 的配置(§4.3.2,图 6)。
    • 可能失效场景:真实研究存在作者库未覆盖的指标,固定词典会限制开放探索。
  • 观察 3:复杂统计指标是主要失败区;Gemini 3 Pro 的总体准确率 67.41%,指标计算准确率也只有 51.67%(§4.2.1、§4.2.4)。

核心方法

数据集覆盖 2020-01-02 至 2025-09-30 的 5,401 家中国上市公司,定义 43 个因子、80 个原子策略函数和 7 个关键绩效指标。作者从可执行代码反向生成自然语言描述,经五模型生成、四模型一致审查和人工抽检后保留 18,246 个任务。

AutoBacktest 使用三个专职智能体:Summarizer 把自然语言映射到标准指标,Retriever 生成并实际执行 SQL 直到结果非空,Coder 在注入的数据表上生成和调试 Python 回测代码。共享记录保存中间指标、查询与最终答案。

设计取舍

  • 代码到文本保证真值对齐:先有可执行程序再生成问题,降低歧义,但任务分布可能继承原子函数库的人工边界。
  • 标准短代码减少幻觉:显著提高准确率,却把开放金融语义压缩到固定词典。
  • 简化执行提高唯一性:固定日频、无杠杆、买开卖收、零成本,便于精确评分但远离真实成交。

实验与结果

  • 18,246 个任务来自 33,003 个程序;200 个样本的人类审计中,描述完整率 97.5%,代码与规则一致率 98.5%(§2.7)。
  • Gemini 3 Pro 总体准确率 67.41%、指标计算 51.67%;最佳开源模型 GLM 4.7 分别为 56.83% 和 39.13%(§4.2.1,表 1)。
  • Qwen3 从 235B 缩至 4B 时,指标计算从 34.71% 降至 1.77%,指标检索 F1 仅从 94.18% 降至 88.48%(§4.2.2)。
  • 给 DeepSeek V3.2 加 BM25 检索后,指标识别准确率从 17.65% 升至 68.98%,F1 从 66.92% 升至 92.90%(附录 E.1,表 4)。

论断—证据表

论断证据评测边界置信度
回测自动化的瓶颈在逻辑而非语法§4.2.3 的可执行率与最终准确率差异固定协议、日频中国股票
标准指标表示显著帮助端到端执行§4.3.1–§4.3.2,图 5–643 个预定义因子和 7 个指标
合成任务代表真实难度§2.7 人工抽检与图 4 难度轮廓专家集仅 70 条

批判性分析

基准规模和确定性真值是强项,但“代码到文本”会把真实研究中的需求歧义、数据缺失和策略争议清除掉。四模型一致审查不是真正独立的金融验证,五个生成模型与后续被测模型也可能共享偏差。

准确率阈值对数值任务严格,但零费用、固定开收盘成交和无滑点使系统能在简化世界里完全正确,却仍不具备生产有效性。AutoBacktest 也没有评价跨任务状态、崩溃恢复和候选搜索的自适应过拟合。

局限与后续工作

  • 局限 1:只覆盖日频价格因子和经典“指标—信号—回测”范式。
  • 局限 2:不含新闻、财报、多频数据、动态费用、滑点或组合优化。
  • 后续工作 1:增加历史时点数据修订、费用模型和部分成交的可执行真值。
  • 后续工作 2:记录智能体查询次数与所有候选,把最终正确性和搜索选择偏差同时纳入评分。

相关