记录一次 HL 漂移 353% 与 OOS 样本冻结 16 的巡检日(2026-09-21)
记录一次 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