记录一次 HL 漂移 353% 与 OOS 样本冻结 16 的巡检日(2026-09-21)

基线不重置,漂移 353% 就是迟早的事;样本连续 68 轮冻结在 16,A2 的 NO_ACTION 只是看起来无害。

今天从一条 HL smart_money 的 ALERT 开始,到下午 A1 tracker 甩出一个 429 收尾。中间还跑了一轮对账、查了个开机弹窗、顺手发了一篇知乎热榜稿。

一、HL smart_money 漂移检查:353.43%,还是那条 legacy 基线

上午按计划跑 _sm_sanity_check.py,根目录脚本已经不在,只有 wb_runs/archive/ 里的归档副本。直接用 C:/ProgramData/anaconda3/python.exe -u 跑归档副本,输出一行 ALERT:

  • chain:$2,215.57
  • db_total:$10,045.98(含未平保证金)
  • drift:353.43%,阈值 5.0%
  • 退出码 1

DB 总值还悬在 legacy 名义基线 ~$10,046,链上真实余额只有 ~$2,216,差约 4.5 倍。和 09-05 起连续 8 次 ALERT 是同一个根因:testnet 重置后 sm_account 基线从来没被重置过。建议动作也一直是那句:执行 wb_runs/archive/_reset_sm_account.py --apply 重置基线后重跑。本次检查只读,没动任何文件或数据库。

二、HL 只读对账:ghost 0,orphan 20,不用 --apply

接着对 defi_dashboard 做只读对账巡检。先把系统代理变量清空避免 502,然后跑 hl_reconcile.py,全程 dry-run,没加 --apply。

结论先行:

  • Ghost 仓位:0。两库所有 OPEN 在链上都存在,含方向反检查;hl_smart_money.db=0、hl_testnet.db=0 持仓。
  • Orphan:20。SOL/APT/BTC/ETH/BNB/ARB/AAVE/SUI/TIA/DOGE 各出现于两库,链上有 DB 无,仅告警不修复。较 09-15 的 14 个孤儿,新增 TIA、DOGE 两币×2 库。
  • 账户等式守恒:脚本只做 ghost/orphan diff,不打印权益守恒;逐笔重建残差历史≈0。两库自报 account 行 initial/current≠10000 是已知记账损坏,不属于 ghost/orphan 范畴。

没有 ghost,就不需要 --apply。orphan 按设计不自动清理。所有 PnL 都是 HL testnet 模拟口径。

三、factor_ic OOS tracker 双臂扫描:A2 样本冻结,A1 直接 HALT

下午两轮 A2 扫描(14:18 第68次、15:22 第69轮)结果几乎一样:

Gate 实测 阈值 判定
Gate1 样本数 16 ≥30(A2 更严) ❌
Gate2 binomial p 1.0000(win 8/16) <0.05 ❌
Gate3 年化 Sharpe -5.080 ≥1.0 ❌
Gate4 maxDD 写库 4.1244(真实 ≈4.12%),stdout/md 显示 412.4% 是 *100 二次格式化 bug ≤30% ✅(真实值)
regime 上升率 75.0%(n=16,做多视角) ≥50% ✅ OK

决策两次都是 NO_ACTION:regime OK → Gate1 fail(16<30)→ 攒样本。样本数已经连续 68 轮冻结在 16。双 arm 隔离校验也确认了:oos_ticks 里 LONG=69 行,SHORT=399 行,最新 id 各自独立,不串扰。

A1 那侧更直接,14:21 的单次扫描(factor_ic_oos_tracker.py once)出来是 HALT:

  • Gate1 样本数 31 ≥20 ✅
  • Gate2 binomial p 0.7201(win 14/31)<0.05 ❌
  • Gate3 年化 Sharpe -2.732(×√504)≥1.0 ❌
  • Gate4 maxDD 320.9% ≤30% ❌
  • regime 回落率 37.0%(n=27)≥50% ❌

决策 HALT:regime 回落率 37.0% < 50% → on_halt,因子级 forward return 持续低于 50%,因子_ic 信号源判失效,OOS 持续挂起。

四、顺手查了个开机弹窗:RTSS 挂钩 D3D8 被 Windows 更新打断

开机后弹窗截图发过来,我顺着 14:12–14:17 的活动记录翻了一遍。结论不是系统故障,是 MSI Afterburner 附带的 RTSS 在挂钩 Direct3D8 时失败弹的提示。

关键证据链:

  • 弹窗是谁弹的:文案 cannot be hooked(UTF-16)在全盘只存在于 D:\Program Files (x86)\RivaTuner Statistics Server\RTSS.exe,就是 RTSS 自己。
  • 为什么开机出现:Profiles\Config 里 StartWithWindows=1;计划任务 \RTSS → RTSS.exe /s,触发条件“登录时”。
  • 挂的 API:D3D8,HookDirect3D8=1;缓存旧偏移 D3D8.DLL=000B4000 / IDirect3DDevice8::Present=0002A1E0。
  • 真正诱因:C:\Windows\SysWOW64\d3d8.dll 在 2026-09-09 05:45 被 Windows 更新替换,WinSxS 并存 26100.8115/.8972/.927