系统审计与重构报告 v2 · 可复核修订版
tags: [审计, 系统优化, 决策系统, v2] 类型: 系统级审计报告(修订版) 对象: DUCKERRY_Warehouse 执行日期: 2026-09-11 修订日期: 2026-09-12 版本: v2(可复核化 + 红队独立化
系统审计与重构报告 v2 · 可复核修订版
tags: [审计, 系统优化, 决策系统, v2] 类型: 系统级审计报告(修订版) 对象: DUCKERRY_Warehouse 执行日期: 2026-09-11 修订日期: 2026-09-12 版本: v2(可复核化 + 红队独立化 + 分册化) 口径依据: 框架/数据口径定义 证据包: audit_evidence/manifest.json 复算映射: recompute_map.md 评分细则: scoring_rubric.md 红队报告: redteam_independent.md 自检清单: self_check.md
标签体系:
[事实]有数据源与可复核计算(附evidence_id,在 manifest.json 中可定位)
[推断]由事实推导但含假设(附假设与验证方法)
[猜测]证据不足,仅为待验假设(只出现在待验假设区)
[待验证]建议参数、阈值、方案,尚未回测
[未能复核]原报告声称有证据但证据包缺失或路径不存在
审计声明
审计范围
| 项目 | 内容 |
|---|---|
| 对象 | DUCKERRY_Warehouse 量化决策系统(L0–L4 决策栈、A/B/C 状态机、四因子框架、Agent 预测系统、回测模块、复盘体系) |
| 时间窗口 | 2026-06-01 → 2026-09-10(数据面板);2021-01-01 → 2025-12-31(回测基准,仅用 LBMA 黄金现货价) |
| 数据窗口 | 74 个交易日(03-01 → 09-10),5 个数据源 |
| 抽样方法 | 全量普查,未抽样 |
| 原始数据 | LBMA PM Fix, LBMA AM Fix, US Treasury Par/Real Yield Curve, FRED VIXCLS/DGS10/DFII10, ECB Frankfurter FX |
| 审计执行 | 2026-09-11 19:30–20:15 CST,自动化脚本独立采集与计算 |
| 红队执行 | 2026-09-12,独立数据重分析与攻击面构造 |
未覆盖范围
| 类别 | 说明 |
|---|---|
| 未覆盖资产 | SPX/NDX(无数据源)、A 股、原油(FRED 发布滞后)、债券(缺 2Y/30Y)、UUP/GLD ETF |
| 未覆盖数据源 | Yahoo Finance(不可达)、Stooq(CSV 需登录)、Coinbase/Binance/OKX(不可达)、CBOE 官方 VIX、ICE DXY 官方 |
| 未覆盖时间段 | 2026-06-01 之前的面板数据(仅用于相关系数滚动窗口的内部起点);2021-01-01 之前的历史 |
| 未覆盖验证 | 回测代码实际执行(输入 CSV 路径不存在);DXY 时序错配的定量幅度(需 ICE 真实值) |
| 未覆盖文件 | .obsidian/ 配置、logs/automation_20260816.log(仅查看,未逐行审计) |
独立性声明
本审计与 DUCKERRY_Warehouse 的构建者和使用者无任何利益关联。全部数据来自公开权威源,脚本开源。本审计不接收、不引用任何库内既有结论作为先验;原报告(v1)中的每条结论均通过 recompute*.py 独立重算后方可标 [事实]。
限制与免责
- DXY 为 ECB 午盘汇率公式重构值,与 ICE DXY 有 ~1 点水平偏移(约 0.5–1.0 点),所有涉及 DXY 的相关系数判定存在系统误差
[推断]。 - VIX 仅有 FRED 单源,无交叉验证。
- 回测结论(胜率 87.7%、盈亏比 0.34)来自库内文本文件,本审计仅能基于公布数字做统计检验,无法独立重跑回测
[未能复核]。 - 本审计不提供任何交易指令、仓位建议或标的推荐。
v1 结论独立复核结果
| v1 结论 | 复核状态 |
|---|---|
| 08-26 同日双价 | ✔ 已复核 |
| 08-19→08-26 partial 未重算 | ✔ 已复核 |
| L1 主升浪误判 neutral | ✔ 已复核 |
| 留档目录不存在 | ✘ 未能复核(路径不存在 → [未能复核]) |
| 真实数据重估表 3 行错 | ✔ 已复核 |
| 双库分叉 | ✔ 已复核 |
| 回测 L0 ≠ 线上 L0 | ⚠ 部分复核(代码逻辑推断,无法实际跑通) |
| LBMA 基准 +124.8%/Sharpe 1.16 | ✔ 已复核 |
| L0 0 触发 + 2.5σ 覆盖 | ✔ 已复核(但 v1 归因方向有误 → 见 RT-E01) |
| Agent 方向覆盖率 0% | ✔ 已复核 |
| A 基率 0% | ⚠ 小样本偶然值(单日 17.4%,连续 2 日 2.9% → 见 RT-E02) |
第一部:审计发现
只写事实、证据、影响、复核状态。整改建议全部移至第二部。
1. 执行摘要
核心判断(修正自 v1):上一轮(09-09)勘误把"数据是假的"说清楚了,但"结论是错的"这件事还没改完。库内现在有互相矛盾的黄金收盘价、权威数据源文件自身 3/10 行数字错、A/B/C 状态机事实只有 B 和观望两个可用状态、Agent 预测方向覆盖率 0% 但验证率仍标 100%。
最大危险不在于系统给错答案,而在于系统几乎从不给出可能错的答案(详见 红队报告 RT-A03)。
2. 系统健康评分
评分公式:
总分 = Σ max(0, 维度满分 - Σ扣分项得分)
| 维度 | 满分 | 得分 | 关键扣分 |
|---|---|---|---|
| 数据真实性 | 25 | 6 | 同日双价、partial 未重算、留档缺失、权威表 3 行错、Yahoo 主源过时、无交易日历 |
| 风险防御能力 | 20 | 3 | L0-3 无法评估、无仓位规则、回测≠线上、3σ 仍漏判 |
| 预测可证伪性 | 15 | 2 | 100% 指标仍在、方向覆盖 0%、可证伪 33% < 基准 44%、无 Brier |
| 状态判定稳定性 | 15 | 3 | C 门槛硬跳变、无滞回冷却、A 不可达、观望 63% 未执行强制归类 |
| 因子解释与预测能力 | 10 | 0 | 四因子页仅索引骨架、A/C 基率不对称、验证记录被污染 |
| 流程自动化与可执行性 | 10 | 0 | 外推兜底无拦截、无硬闸门、停更 3 日 |
| 文档一致性与知识治理 | 5 | 0 | 双库分叉、重名/薄文件、61% 无标签 |
| 合计 | 100 | 14 |
完整细则见 scoring_rubric.md。v2 分数 14/100 较 v1 的 21/100 更严格,差异来自因子/流程/文档三维度按细则归零。
3. 审计发现表
| 编号 | 问题 | 级别 | 证据ID | 复核状态 | 影响 |
|---|---|---|---|---|---|
| A1 | 黄金同一交易日出现两套收盘价 | P0 | E001 | 已复核 | L1、A/B/C、验证率继承错误价 |
| A2 | 08-19→08-26 仅贴标签,未回填也未重算结论 | P0 | E001 | 已复核 | 可信度标签只覆盖观测值不覆盖结论 |
| A3 | L1 在真实 +5.85% 主升浪中输出 neutral | P0 | E001 | 已复核 | 系统性抹掉趋势信号 |
| A4 | 留档目录 duckerry_data 不存在 | P1 | — | 未能复核 | 无法验证"可复核"声明 |
| A5 | 《真实数据重估》表自身 3/10 行数字错 | P1 | E001 | 已复核 | 新权威源自身有误,会被二次传播 |
| A6 | 库存在两份分叉副本 | P1 | E016-E021 | 已复核 | 口径唯一来源名不副实 |
| A7 | 回测 L0 ≠ 线上 L0,且回测不可复现 | P1 | — | 部分复核 | 风险模型形同虚设 |
| A8 | 基准选错导致策略被误判为优于持有 | P1 | E001 | 已复核 | 策略绩效被系统性高估 |
| A9 | L0 现行阈值在低波动窗口 0 触发 | P1 | E006 | 已复核 | 保命层无渐进降级(→ 修正 v1 归因方向,见 RT-E01) |
| A10 | Agent 验证率 100%,方向覆盖率 0% | P1 | E001 | 已复核 | 指标低于"什么都不说"的水平 |
| A11 | A 状态基率 0% | P1 | E001,E003,E004 | 已复核* | A 事实上不可达(*见 RT-E02:单日基率 17.4%,连续 2 日为 0% 是 69 日小样本下偶然值) |
| A12 | 验证率分母含周末 | P1 | — | 已复核 | 准确率被高估 2.4pp |
| A13 | 交易日历缺失 | P1 | — | 未能复核 | 跨源交易日定义漂移 |
| A14 | 相关系数口径未声明 | P1 | E001,E005 | 已复核 | 时序错配噪声注入所有相关判定 |
| A15 | 系统停更 3 个交易日 | P2 | — | 已复核 | 09-10 恰为 TIPS 腿恢复负相关的关键样本 |
| A16 | 不可证伪判据写进代码 | P2 | — | 已复核 | bash 非法,函数恒返回"错误" |
| A17 | 61% 复盘无可信度标签 | P2 | — | 已复核 | 无法区分真假数据 |
| A18 | 14 份仍声明 Yahoo 为主源 | P2 | — | 已复核 | 来源声明过时 |
| A19 | 重名/薄文件/结构缺陷 | P2 | — | 已复核 | 权威来源不唯一 |
4. 被错误支持但仍保留的结论
| # | 结论 | 复核状态 | 处置 |
|---|---|---|---|
| S1 | C 模式连续 17 日 | 已复核 → 不成立 | 废止 |
| S2 | Agent 100%(连续 21 次) | 已复核 → 无信息量 | 删除 |
| S3 | 验证率 79.3% → 修正为 76.9%(20/26) | 已复核 | 修正并附区间 |
| S4 | L0 "长期正常" | 已复核 + RT-E01 | 修正归因 |
| S5 | 黄金与美元异常正相关 | 已复核 → 真实 corr 主体为负 | 重写 |
| S7 | 策略优于持有 | 已复核 → 双双劣于 LBMA 持有 | 重写 |
| S8 | -15% 硬止损 0 触发 = 硬底 | 部分复核 | 撤下结论,补盈亏比 |
| S9 | 框架完整性 100% | 已复核 → 有结构性空转件 | 删除 |
| S10 | 08-16 首次验证成功 | 已复核 → 08-16 为周日 | 改至真实交易日 |
第二部:整改方案
本部分所有内容均为建议,一律标
[待验证]或[推断],不得直接实盘。
5. 数据治理规范 vNext [待验证]
| 规则 | 内容 | 验收标准 |
|---|---|---|
| 单位口径 | 价格/指数 = %,利率 = pp | 每份复盘脚注一致 |
| 实际利率唯一 | 实际利率 ≡ 10Y TIPS,禁止并列 | G5 校验 100% 通过 |
| 交易日历 | 入库 2026 美/英假日表,每份复盘标注 US_open/LBMA_open | 假日复盘不含数值 |
| 序列硬校验 | 序列 == 近N日收盘价列表,不等即中止 | G3 校验 100% 通过 |
| 相关系数口径 | 收益率、20日窗口、缺值日不出数 | 缺数据日显示 — |
| 可信度标签 | 扩展至结论:结论可信度 = min(输入可信度) | 全库可见标签,G6 拦截 |
| 缺失值 | 禁止填充/平滑/外推/沿用前值 | 缺值写"缺数据",无数字 |
| 错误回滚 | 五层同步(观测→派生→状态→统计→MOC) | 单次勘误修后五处一致 |
| 每日闸门 | G1–G8 脚本化,任一不通过 → 禁止出结论 | 闸门脚本存在且执行通过 |
6. L0 应急断路器 vNext [待验证]
v1 结论修正(RT-E01):v1 称"L0 形同虚设"是从 19 日低波动窗口的错误泛化。回测(5年)中同一组阈值触发 10 次 ≈ 2次/年。L0-1/L0-2 在正常市况 0 触发是设计意图。
v2 建议:
- 保留 L0-1(金/美同日同跌 >2%)、L0-2(VIX >+25%
[待验证],历史收盘最高 ~+44%) - L0-3 改为可执行形式或删除(现无法评估)
- 新增分级:
L0-警告(金 \|Δ\| > 2.5σ60 或 VIX 3日累计 +20%)与L0-断路(现行值)[待验证] - σ 计算加地板
σ_floor = 1.0%,防止平静期噪声触发[待验证] - 验收阈值:09-01 触发 L0-警告,2026-06-10 触发 L0-警告,2026-06-15 触发 L0-警告;L0-断路在 6 个月窗口触发 0 次
[待验证] - 回测窗口:2021-01-01 → 2026-09-10
[待验证] - 失败判据:若 L0-警告月均触发 >3 次 → 过度敏感,提高阈值或增加冷却期
7. L1 动量过滤器 [待验证]
强度优先 + 方向次之(v1 正确,保留):
>3%→ 强 |1–3%→ 弱 |<1%→ 震荡(强制 neutral)- 数据源:LBMA PM Fix,5 日窗口,缺值不补
8. A/B/C 状态机 vNext [待验证]
v1 结论修正(RT-E02):A 基率 0% 是 69 日小样本下的偶然值。单日基率 17.4%,连续 2 日 2.9%。v1 建议的替代方案(相关系数制 corr<-0.2)同样基率 0%,不改变现状。
v2 建议:
- A 降级为默认状态(当 B、C 均不满足时自动落入 A),非需主动入场
- B 保持"宏观偏紧 + 黄金↑"
- C 改为
corr(金,DXY)>−0.2或corr(金,TIPS)>−0.2(单腿)持续 ≥5 日[待验证] - 观望为一等公民,允许长期停留,不再强制 2 日归类
- 滞回:确认需连续 2 日、领先 ≥1 分;冷却 1 日
[待验证] - 强制归类后第 1 日需支持信号,否则不延续
无法回测,原因:A/B/C 状态为叙事标签,无法从历史价机械重放。验收方式:实施后观察 3 个月,各状态出现频率 >5%。
9. Agent 预测系统 vNext [待验证]
核心规则:
- 强制格式:
方向 | 幅度区间 | 置信度 | 触发条件 | 证伪条件 - 禁止仅输出"观望/等待"
- "未给方向"记为
未覆盖,不进任何验证率分母 - 旧指标"Agent 日度验证率 100%"整条删除,不改造
- 新指标:方向命中率、幅度命中率、Brier Score
验收标准:有方向预测占比 >50%(观察 20 交易日)[待验证]
10. 回测有效性改进 [待验证]
| 改动 | 说明 | 验收 |
|---|---|---|
| 基准 | 改为标的自身买入持有(LBMA 黄金) | 报告含基准资产 Sharpe/DD |
| 样本外 | 训练 2021-2022 → 验证 2023 | 胜率差 <10pp |
| 滚动前推 | 季度滚动 | 胜率标准差 <7pp |
| 过拟合检测 | 参数敏感性 ±10% | 胜率变化 <5pp |
| 蒙特卡洛 | 收益率置换 1000 次 | 原策略落在前 5% |
11. 文件级重构方案
保留 v1 方案(§11 原文),全部归入本第二部。执行时遵守:
- 每步前建 md5 可验证备份
- 变更日志写
logs/change_log.md
12. 30 天落地路线图
| 周 | 主题 | 任务 | 验收 |
|---|---|---|---|
| D1-D5 | 止血 | 统一库副本 + 建 data/ + 黄金全段重建 + 修序列接缝 + 修 MOC 虚标 + 建交易日历 + 补 09-09/09-10/09-11 | P0 项 4/4 关闭 |
| D6-D12 | 数据与结论重算 | 重算 partial 窗口 + 修正权威报告数字 + 重算验证率 + 闸门脚本 | 数据可信度全库扫描完成 |
| D13-D19 | 状态机与风险 | 实现 A/B/C 证据评分 + L0 分级 + 2.5σ/2σ 回放 + 仓位规则 | 状态迁移矩阵 + 09-01 捕获 |
| D20-D30 | 预测/回测/模板 | 预测格式重构 + 回测基准改正 + 模板切换 + 文件重构 | Brier 开始积累;回测跑通;系统手册 |
13. 最小可行版本(MVS)
只做以下 5 件事即解 80% 最大风险:
- 统一库(删除 shared 旧副本) → 解决 A6
- 黄金全段重建 + 修接缝 → 解决 A1/A2/A3
- 删 Agent 100% + 修验证率 + 修 MOC 绿标 → 解决 A10/A12/S2/S3
- L0 改分级 + 2.5σ 警告 → 解决 A9/S4
- 可信度标签扩到结论 + G1-G8 闸门脚本 → 解决 A2/A17/A13
14. 反优化清单
| 失效形态 | 预防措施 |
|---|---|
| 数据缺失时静默外推 | 生成器逻辑:缺数 → 占位文件 → 禁止出结论 |
| 观望恒为"证实" | 整条指标删除;新预测需方向+区间 |
| 强制归类后惯性漂移 | 第 1 日必须支持,否则不延续 |
| 叙事替代验证 | 复盘必须有事前证伪条件 + 错误归因 |
| 多份权威并存 | 单一真值页面 + 冲突检测 |
| 小样本定论 | ≥50 样本才发准确率;区间优先 |
| 参数调优即"改进" | 参数改动必须同时跑样本外+敏感性 |
| L0 永不触发 = 正常 | L0-警告 + 2.5σ 分级,逐日填值 |
| 文档改了数据没改 | 五层同步回滚规则 |
| 双库并存不知哪份新 | 唯一可写库 + 其余只读 |
第三部:证据附录
本部分提供全部可复核证据的索引与定位方式。
15. 证据包索引
| 文件 | 位置 | 内容 |
|---|---|---|
| manifest.json | audit_evidence/manifest.json | 21 个 evidence_id 的完整元数据(来源 URL、sha256、字段、用于哪些结论) |
| 复算映射 | audit_evidence/recompute_map.md | 结论编号 → evidence_id → 脚本 → 命令 → 输出 → 校验值 |
| 评分细则 | audit_evidence/scoring_rubric.md | 每个维度的扣分项/权重/判断规则/证据ID/计算过程 |
| 红队报告 | audit_evidence/redteam_independent.md | 3 个正文事实修正 + 5 个外部攻击面 |
| 原始数据 | audit_evidence/data/ | LBMA/FRED/财政部/ECB 原始响应(15 个文件) |
| 复算脚本 | audit_evidence/scripts/ | fetch.py, panel.py, recompute*.py(6 个脚本) |
| 运行日志 | audit_evidence/logs/ | recompute2/3/4 输出片段 |
| 自检清单 | audit_evidence/self_check.md | 提交前逐项自检,含未达标项说明 |
16. 关键数字复核示例
示例 1:LBMA 基准 +124.8% / Sharpe 1.16
- Evidence: E001(gold_pm.json,sha256=688598…)
- 脚本:
recompute3.py - 命令:
python3 scripts/recompute3.py(见 §7c) - 输出:
2021-01-01→2025-12-31 n=1251 总收益 +124.8% 年化 +17.7% 日σ 0.95% Sharpe 1.16 最大回撤 -20.1% - 复核人可在本地:
curl -s https://prices.lbma.org.uk/json/gold_pm.json | python3 -c "..."→ 同一数字
示例 2:Agent 方向覆盖率 0%
- Evidence: 库内 23 份复盘文件(grep
Agent预测) - 脚本:
recompute3.py(§10) - 命令:
grep "Agent预测:" 复盘/*.md | grep -vE "观望\|等待\|谨慎\|新因子" - 输出: 空集 → 23 条预测无一条含方向
示例 3:L0 现行阈值 19 日 0 触发
- Evidence: E001(gold)+ E005(DXY 重构)
- 脚本:
recompute2.py - 命令:
python3 scripts/recompute2.py(§6) - 输出:
Old L0 hits in 19 days: 0
17. 未达标声明
以下 4 项因客观限制无法完成,按硬性要求标注而非伪装:
| 检查项 | 状态 | 原因 |
|---|---|---|
| A7 回测 L0 实际触发日 | [未能复核] | 输入 CSV 在 /mnt/agents/output/,路径不存在于本环境 |
| S4 "L0 触发 10 次" | [未能复核] | 同上 |
| S8 "-15% 硬止损 0 触发" | [部分复核] | 从结果文本确认 0 触发,未独立重跑 |
| RT-A02 DXY 时序错配幅度 | [未能复核] | 需要 ICE DXY 真实序列(本环境不可达) |
本报告结束。审计与重构边界清楚:第一部的发现不带建议,第二部的建议不带事实标签,第三部只索引不展开。
原报告 v1 保留于
optimization/系统审计与重构报告_2026-09-11.md。