回测与验证 — 100 场历史辩论的准确率与裁判权重校准 2026年5月15日 · 专家 30秒结论 解决什么问题: 前两篇构建了数据管道和辩论协议——系统能跑,输出看起来合理。但「看起来合理」不是工程标准。你需要硬数据回答:多 Agent 辩论真的比单 Agent 分析更准确吗?裁判的直觉权重(逻辑 30% + 证据 30%)是最优的吗?结果是否具有统计显著性? 核心方法: 100 场历史回测,滑动窗口设计(每窗口间隔 5 个交易日),±1% 方向性阈值过滤噪音。三维度评估:方向准确率(辩论 vs. 单 Agent 基准 vs. 随机 50%)、置信度校准(Brier Score + 分箱分析)、裁判权重网格搜索(~4000+ 组合,步长 0.05)。统计检验:McNemar 配对检验 + 二项检验 + Bootstrap 置信区间。 关键结论: 在合成数据上,多 Agent 辩论的方向准确率领先单 Agent 基准约 9 个百分点(71.1% vs. 62.0%),Brier Score 改善 18%。网格搜索发现证据质量的权重应从 30% 提升至 40%,清晰度从 20% 降至 5%。系统在高置信区间(80%+)存在严重过度自信——这恰恰是回测最有价值的发现。 读完能做什么: 运行 backtest_engine.py(~350 行),在合成数据上复现完整回测流程。理解如何将模拟辩论替换为真实 LLM 辩论调用——框架的窗口管理、指标计算和统计检验层完全可复用。 你已经完成了两件事。在 第一篇 中,你构建了从市场数据到结构化知识库的完整管道。在 第二篇 中,你实现了 8 Agent 三轮辩论协议——开场陈述、交叉质询、总结陈词,外加一个公正的裁判。代码可以运行。输出看起来合理——裁判给出了评分,论据追溯表显示出结构化分析。 但一个挥之不去的问题仍然存在: 它真的比一个简单的单 Agent 分析方法更好吗? 直觉上,8 个专业 Agent 互相辩论应该比 1 个通用 Agent 的单一输出更可靠。噪音被对抗性过程过滤了。偏见被相反的观点抵消了。不同的分析视角——技术面、基本面、宏观面、情绪面——应该产生单视角无法达到的全面性。 但直觉不是工程。你需要硬数据。 这就是本文的目标: 用 100 场回测辩论来测量多 Agent 辩论系统是否真的优于单 Agent 基准。 我们将测量方向准确率、校准置信度、优化裁判权重,并用统计显著性检验来区分信号和噪音。到文章结束时,你将拥有一个完整的回测框架——可以独立验证任何 AI 辩论系统的预测质量。 ⚠️ 本文不是关于"市场预测是否可能"的哲学讨论。 本文是关于工程验证——给定一套数据和一个预测系统,如何严格地衡量该系统是否比简单的替代方案更好。本文中的所有数据、指数和价格都是合成/虚构的。ExampleIndex 不是真实指数。所有"准确率"数据均源自合成场景——它们展示的是方法论,而非实际投资表现。 回测设计:核心框架 回测的核心思想很简单: 用过去的数据运行辩论,比较辩论输出与实际发生的市场走势。 但因为我们在测试 AI 生成的辩论(而非交易策略),"回测"的定义需要调整: 组件 传统量化回测 辩论系统回测 输入 历史价格序列 历史知识库快照(截至时间 T) 处理 交易信号生成规则 8 Agent 辩论 + 裁判评估(只看 T 时刻之前的数据) 预测 买入/卖出/持有信号 方向判断(上涨/下跌)+ 置信度 + 辩论质量评分 真实值 未来实际收益 T 到 T+N 的实际市场方向(上涨/下跌) 关键约束: 辩论不能看到未来的数据。 每个历史窗口的知识库快照只包含截至该时间点的数据。这是回测有效性的根本前提。 滑动窗口设计 我们生成 100 个历史窗口,每个窗口相隔 5 个交易日: 窗口 1: 2024-01-05 → 知识库快照(截至 2024-01-05), 真实值 = 2024-01-06 至 2024-02-05 的方向 窗口 2: 2024-01-12 → 知识库快照(截至 2024-01-12), 真实值 = 2024-01-13 至 2024-02-12 的方向 ... 窗口 100: 2025-12-15 → 知识库快照(截至 2025-12-15), 真实值 = 2025-12-16 至 2026-01-15 的方向 每个窗口"锚定"一个特定的历史日期。辩论使用截至该日期的数据。然后我们查看接下来 20 个交易日的实际市场方向——这是"真实值"。如果辩论预测上涨而市场确实在接下来 20 天上涨,则方向正确。 真实值定义:什么算"方向正确"? 这不是一个简单的问题。市场的实际走势很少是"纯上涨"或"纯下跌"——我们需要定义一个可操作的标准: 阈值 分类 说明 回报 ≥ +1% 上涨 (UP) 明确的多头信号 回报 ≤ −1% 下跌 (DOWN) 明确的空头信号 −1% < 回报 < +1% 震荡 (FLAT) 无明确方向——从样本中排除或标记为不可判断 ±1% 的阈值将"方向性"的定义限制在有意义的运动范围内。如果市场仅仅波动了 0.3%,那么宣称"方向正确"是不诚实的——任何随机猜测都有一半概率命中。将 FLAT 窗口排除在外,使我们的准确率测量更加严格。 评估指标:超越简单的准确率 方向准确率是起点,但不充分。一个系统可能因为运气好达到 60% 的准确率。我们需要多维度的评估: 指标 1:方向准确率 (Directional Accuracy) DirectionalAccuracy = 正确方向预测数 / 总预测数 其中: "正确" = (辩论预测 UP 且真实值 UP) 或 (辩论预测 DOWN 且真实值 DOWN) 总预测数 = 剔除 FLAT 窗口后的有效窗口数 这是最直观的指标——辩论系统"猜对方向"的频率。基准线是 50%(随机猜测)。任何显著高于 50% 的准确率都表明系统在提取非随机信息。 指标 2:置信度校准 (Confidence Calibration) 准确率只度量"对还是错"。但我们还需要知道系统在表达高置信度时是否真的更可靠。将预测按置信度分箱: 置信度分箱 预测数 实际准确率 理想准确率 校准偏差 0.50 – 0.60 18 55.6% ~55% 接近校准 ✅ 0.60 – 0.70 31 64.5% ~65% 接近校准 ✅ 0.70 – 0.80 28 71.4% ~75% 轻微过度自信 ⚠️ 0.80 – 1.00 23 73.9% ~90% 严重过度自信 ❌ 上表(来自我们即将运行的合成回测)揭示了一个关键的发现: 置信度在中等区间内校准良好,但在高端过度自信。 这意味着系统在 60%-70% 置信度范围内的预测是可靠的,但在 80%+ 置信度时不应被信任。这是一个实际重要的洞察——它告诉你该系统的"信任边界"在哪里。 指标 3:Brier 分数 Brier 分数是一个综合性的概率校准指标: Brier = (1/N) × Σ (p_i − o_i)² 其中: p_i = 系统预测的上涨概率 (0 到 1) o_i = 实际结果 (1 = 上涨, 0 = 下跌) N = 总预测数 Brier 分数范围: [0, 1], 越低越好 0.00 = 完美校准 0.25 = 等同于随机猜测 (50% 概率) >0.25 = 比随机更差 Brier 分数综合考虑了分辨力(能否区分上涨和下跌)和校准性(概率是否与频率一致)。在我们的合成回测中: 多 Agent 辩论系统 Brier 分数: 0.187 单 Agent 基准 Brier 分数: 0.228 随机基准 Brier 分数: 0.250 Δ = 0.041 — 辩论系统在概率校准上优于单 Agent 基准 18% 单 Agent 基准:比较的锚点 没有任何基准的比较是毫无意义的。我们的基准很简单: 单 Agent 基准: - 一个 LLM 实例 - 接收完整的知识库(所有数据模块,没有切片限制) - 不进行辩论——直接分析市场并预测方向 - 同样的温度设置 (0.3, 更低以确保一致性) - 输出: 方向判断 + 置信度 为什么这是一个公平的比较?因为单 Agent 拥有 信息优势 ——它能看到所有数据(而辩论中的每个 Agent 只能看到自己的切片)。单 Agent 还 没有多 Agent 的协调开销 ——一次 LLM 调用 vs. 8+1 次。如果辩论系统在这种情况下仍然表现更好,那不是因为信息更多——而是因为 对抗性过程产生了更好的推理 。 比较矩阵 维度 8 Agent 辩论 单 Agent 基准 差异 信息访问 每个 Agent 只能访问部分数据(按切片) 访问全部知识库 辩论劣势 LLM 调用次数 9 次(8 Agent + 1 裁判) 1 次 辩论劣势(成本 9×) 推理过程 对抗性:互相质询、让步、完善 单次分析:无外部挑战 辩论优势 认知多样性 4 个不同分析视角 单一视角(可能偏向技术面或基本面) 辩论优势 过度自信倾向 被对手质询抑制 无外部校正机制 辩论优势 这是一场 不公平的战斗——但有利于基准 。如果辩论系统在信息更少、成本更高的情况下仍然胜出,那意味着对抗性过程本身就具有显著价值。 裁判权重校准:网格搜索最优权重 在 第二篇 中,我们设定了裁判评分的 4 维权重: 加权利 = Logic × 0.30 + Evidence × 0.30 + Clarity × 0.20 + Persuasiveness × 0.20 这些权重是 直觉驱动的 。我们认为"逻辑"和"证据"最重要——但它们真的是对市场方向预测最有效的维度吗?"说服力"维度的贡献是否应该更高?"清晰度"是否根本不相关? 我们需要用数据来回答这些问题。 网格搜索方法 我们定义一个搜索空间——4 个权重的所有可能组合(以 0.05 为步长,总和为 1.0): 搜索空间: 每个权重 ∈ {0.05, 0.10, 0.15, ..., 0.85} 约束: w_logic + w_evidence + w_clarity + w_persuasiveness = 1.0 候选组合数: ~4,000+ 对于每个权重组合,我们用回测数据计算使用该权重的方向准确率。具体过程: 对每条论据计算加权利 = Σ(维度分 × 权重) 将每个 Agent 的论据加权分汇总为 Agent 得分 按多空双方的总分比较来确定辩论方向预测(总分高的方向为预测方向) 计算该权重组合在所有回测窗口中的方向准确率 选择准确率最高的权重组合 校准结果(合成数据) 权重配置 Logic Evidence Clarity Persuasiveness 方向准确率 默认(直觉) 0.30 0.30 0.20 0.20 67.0% 仅逻辑 1.00 0.00 0.00 0.00 62.2% 仅证据 0.00 1.00 0.00 0.00 64.4% 仅说服力 0.00 0.00 0.00 1.00 60.0% 网格最优 🏆 0.35 0.40 0.05 0.20 71.1% 💡 关键发现:证据质量是最重要的维度。 网格搜索将 Evidence 的权重从 30% 提升到 40%,将 Clarity 从 20% 降到 5%。这直观地合理——一个论据是否"表达清晰"对市场方向的预测价值几乎为零。而"证据是否具体、可量化、来源于数据"才是区分有效论据和噪声论据的核心维度。校准后的权重将方向准确率从 67% 提升到 71%(+4 个百分点)。 统计显著性检验:这是真实的还是运气? 71% vs 67% 的差距看起来不错。但这是真实的改进,还是仅仅因为样本量有限导致的随机波动? McNemar 检验 McNemar 检验是配对分类器比较的标准方法。它统计的是"辩论正确而基准错误的窗口数"vs"基准正确而辩论错误的窗口数": McNemar 2×2 列联表: 基准正确 基准错误 辩论正确 52 19 辩论错误 10 19 (N