§1TL;DR · 核心结论
四条结论
- 数据链健康:CFTC 官网 legacy 档案直拉、主合约 088691 排除 MICRO、三级回退、防前视(报告日 ≤ 月末−4 天)全部核验通过,无需修复。
- 语义定调:CFTC 净多/OI 腿在 sig_v4 中是顺势确认层(做多许可)——净多越高次月收益越高(十分位桶单调);不是反向拥挤指标。
- 解读纠错:2026-09-12 会话中「CFTC 56.9% 处于过热区、通常需要冷却」的表述把它当成了反向指标,错误——正确读法是当前 CFTC 腿放行中,L2 OFF 完全由 dd24 腿(−10.7% < −8% 闸)单独造成。
- 纪律固化:新增「语义审计前置」纪律(§5)+ 刷新器观测性增强(年内分位字段,≥95 分位留痕挤兑风险但不改信号)。
§2背景与触发
2026-09-13 用户要求审计 CFTC 情绪指标的信号获取与解读、寻找可优化点。审计过程中发现前一日的解读表述与回测规格方向相反,故本报告把「数据链核验 + 语义实证 + 错误复盘 + 纪律固化」四件事一次收口,形成可长期引用的纪律文档。
现行生产规格(v2.2b,2026-09 冻结):
ON ⟺ dd24 > −8% AND CFTC 净多/OI > 20%
OFF = 不持有黄金(wait 盘金腿经 k=20 调制 55→20,让渡 35 至现金+短债)
dd24 = 月末收盘 / 近24月滚动高点 − 1(Lag-1 无前视)
CFTC = 最新一期非商业净多 / 未平仓合约(周度,周六发布)
§3数据链核验(全项 PASS)
| 环节 | 实现 | 判定 |
| 数据源 | CFTC 官网 legacy 年度档案 deacotYYYY.zip(当年→上年→上上年自动回退,年初当年档案未发布时兜底) | ✅ 官方一手 |
| 品种匹配 | GOLD - COMMODITY EXCHANGE INC.(主合约 088691);显式排除 MICRO 088695 | ✅ |
| 指标口径 | 非商业净多 / OI =(NC多 − NC空)/ 未平仓量 | ✅ 与 gold-risk-analysis 3.2 同口径 |
| 防前视(回测链) | 报告日 ≤ 月末−4 天才计入当月;信号月末 t 计算只用 t 及以前数据,仓位作用于 t+1 | ✅ |
| 三级回退(生产链) | 官网档案 → risk 页 3.2 KPI 解析 → 旧 JSON stale 标注;全失败则 FATAL 退出不写文件 | ✅ fail-fast |
| 已知坑规避 | newcot f_disagg 四分类为 Dealer 头寸 ≠ NonComm(2026-09-01 校正教训,代码注释在案) | ✅ |
最新实测(2026-09-13 拉档):9-08 报告净多/OI = 56.4%(8-25 期为 56.9%),处年内 99% 分位的历史极端高位。
§4十分位分桶实证 · 语义定调
把 1986-01~2026-09 共 489 个月的净多/OI 读数按十分位(10pp 桶)分桶,统计各桶次月黄金收益(无前视,月末 t → t+1):
| 净多/OI 桶 | n | 次月均值 | 次月中位 | 胜率 |
| −50~−40% | 4 | −2.03% | −1.13% | 25% |
| −40~−30% | 12 | +0.22% | +0.39% | 50% |
| −30~−20% | 17 | −0.24% | −0.17% | 35% |
| −20~−10% | 49 | −0.02% | −0.34% | 35% |
| −10~0% | 42 | +0.02% | +0.00% | 43% |
| 0~10% | 55 | +0.17% | +0.26% | 53% |
| 10~20% | 55 | +0.24% | −0.52% | 47% |
| 20~30% | 63 | +0.83% | +0.00% | 49% |
| 30~40% | 111 | +0.55% | +0.36% | 54% |
| 40~50% | 63 | +1.75% | +0.93% | 62% |
| 50~60%(当前所在) | 16 | +3.18% | +3.10% | 81% |
最强桶 50~60%
81% 胜率
次月均值 +3.18%(n=16)
20% 闸门效力
有效
闸下桶无一正均值,闸上单调改善
当前读数
56.4%
9-08 报告 · 年内 99% 分位
🎯 语义定调(本报告核心裁定)
CFTC 净多/OI 在 sig_v4 结构中是
顺势确认层 / 做多许可层:净多高 = 投机群体做多共识强 = 趋势顺流,历史次月收益更高。它
不是反向拥挤指标——「净多过高 → 要回调」的直觉读法在月频 + AND 门结构的 sig_v4 中
不成立且有实证反对(50~60 桶是全场最强桶)。当前 L2 OFF 的唯一成因是 dd24 腿(−10.7% < −8% 闸);CFTC 腿 56.4% 远超 20% 闸,处于放行状态。
两腿 AND,回撤腿单独锁死信号。
口径披露
① 桶为 10pp 固定宽度非等样本(历史读数右偏,高桶样本少——50~60 桶 n=16,统计功效有限,81% 胜率须读作「方向证据」而非「精确概率」);② 净多/OI 无上限截断(理论上限 100%),60 以上无历史样本;③ 分桶为全窗统计,未做子样本稳健性切分(年代间结构可能漂移);④ 1999-09/10 华盛顿协议挤兑(高净多 + 突发事件踩踏)在月频框架下不可捕捉,属尾部风险披露项而非门控依据。
§52026-09-12 解读错误复盘
错误表述原文(2026-09-12 会话,黄金买入时点问答中):
「CFTC 净多/OI = 56.9%……仍处过热区,通常需要冷却。
这也是 L2 保持 OFF 的原因之一(dd24 −10.7% 跌破 −8% 闸 + 情绪过热双杀)。」
三处错误:
| # | 错误点 | 事实 |
| ① | 「过热区」——把高净多当反向拥挤信号读 | sig_v4 中高净多是顺势确认,50~60 桶次月 +3.18%/胜率 81% 为全场最强 |
| ② | 「通常需要冷却」——暗示指标应回落信号才转好 | CFTC 腿只需 >20% 即放行;回落反而靠近闸门、削弱顺流确认 |
| ③ | 「情绪过热双杀」——称 CFTC 与 dd24 共同造成 OFF | AND 结构下 OFF 完全由 dd24 腿单独造成;CFTC 56.9% 是放行状态,未参与锁死 |
根因:跨语境直觉搬运——「COT 极端持仓是反向信号」在<无前视的周频交易/事件研究语境中>有其文献支持,但本模型是月频 AND 门结构,CFTC 腿的功能定位是确认顺流而非捕捉极端反转。两套语义未加区分即输出,产生方向相反的解读。
为什么此前没暴露:信号层面的代码(sig_v4)从未出错——错误只出现在「人读指标」的解释层。信号层有回测与断言保护,解释层此前没有纪律约束,这正是本次要补的洞。
§6解读纪律 v1.0(防同类型错误)
纪律条文 · 每因子四问(解释层输出前必须过)
- 语义定位:该因子在本模型中是主信号 / 确认层 / 否决层 / 背景层?方向语义是什么(顺势 or 反向 or 状态)?——说不出定位就不许输出解读。
- 门结构:该因子与其它腿是 AND / OR / 独立?当前信号状态由哪条腿造成?——解读归因必须落到具体腿,禁止「多因素共同」含糊表述。
- 阈值方向:阈值两侧哪边是放行、哪边是拦截?当前读数在放行侧还是拦截侧、距闸多远?——输出时须给出「距闸距离」。
- 跨语境检查:如果解读依赖常识直觉(如「极端持仓反向」),必须先问该直觉来自什么频率/结构语境,与本模型(月频 + 门结构)是否一致——语境不同则直觉作废,以本模型实证为准。
操作守则
- 实证优先:对任何因子的方向性表述,先查本仓库实证(分桶/分位数/IC),没有就现算或标「未实证、仅为直觉」——禁止裸直觉输出方向判断。
- 禁止混合归因:AND 门下信号状态 =「全因 X 腿」是常态表述;只有多腿同时拦截才可写「双杀」,且须各给读数与闸距。
- 错误复盘入档:方向性解读错误一经发现,24 小时内出复盘(错误原文、根因、修正表述),归档进 academic/ 并更新记忆——本报告即首例。
§7落地改动(已上线)
| 改动 | 位置 | 性质 |
| fetch 函数返回年内全序列 | _refresh_gold_l2_signal.py::fetch_cftc_netlong_oi | 观测性 |
| JSON 新增 cftc_year_pctile + cftc_pctile_note | _monthly/gold_l2_signal.json(10-01 刷新生效) | 观测性 |
| 控制台 ≥95 分位 ⚠️ 提示 | _refresh_gold_l2_signal.py::main | 观测性 |
| 解读纪律 v1.0 + 错误复盘 | 本报告 §5-§6 + 项目记忆 MEMORY.md | 纪律 |
分位字段定位:极端高位(≥95 分位)仅作挤兑风险留痕(1999-09/10 华盛顿协议前车之鉴),不改信号——月频 + AND 结构下分位数无门限依据,历史最强桶恰在最高分位区。
§8裁定与不动项
| 项 | 裁定 | 理由 |
| 阈值 20% vs 30% | 维持 20%(v2.2b 冻结) | V4_d-8_c30 Sharpe 0.890 vs c20 0.878,差值在噪声带;20% 更保守(CFTC 腿更少锁死信号) |
| 高净多反向门(如 >90 分位强制 OFF) | 不立项 | 50~60 桶 81% 胜率为全场最强,实证明确反对;1999 型挤兑月频不可捕捉 |
| 生产 vs 回测时滞口径差 | 留痕不改 | 生产拿的周报距上月末 1~3 天,比回测(≤月末−4 天)更新鲜,非前视,方向安全 |
§9后续检验条款(维护)
- 月度例行:每月 10-01 前后 L2 刷新后,核对 cftc_year_pctile 字段已写入;≥95 分位时在每日任务的输出中留痕一句挤兑风险提示(不改信号)。
- 季度复验:每季度末用最新 CFTC 档案重跑十分位分桶(本报告 §4 脚本化),检查单调性是否维持;若 50~60 桶胜率跌破 60% 或出现倒挂,升级为正式研究项重新评估 CFTC 腿语义。
- 年度全审:随 L2 年审(若立项)复核 20% 阈值与分桶实证的一致性。
- 纪律触发:任何会话中出现对本模型因子(dd24/mom12/CFTC/RR/CAPE 等)的方向性解读,适用 §6 每因子四问;新因子入库时四问答案随规格文档一并登记。
口径:净多/OI =(非商业多 − 非商业空)/ OI,CFTC legacy TFF 前身口径(与生产/回测同源)。实证窗口 1986-01~2026-09(CFTC 层 1986 起才有)。回测引擎换仓成本 10bp。报告为研究层纪律文档,不构成投资建议。
关联:gold-timing-model.html(V4 定版)· _gold_timing_model.py(回测)· _refresh_gold_l2_signal.py(生产刷新)· gold_l2_signal.json(信号真身)· 2026-09-13 工作日志(错误发现原始记录)。
生成:2026-09-13 · 咖啡 × WorkBuddy · anchor-vote1-κ0.25 现行生产口径