Hyperliquid sm_account 链上-DB 漂移3502.97%又是基线脱钩问题(2026-09-13)
数据新鲜不代表没脱钩,drift 3502.97% 说明链上权益和 DB 基线已经差了约 36 倍,先确认是不是预期回撤,再决定重置。
9 月 13 号晚上我又盯上了 craw_app1_wz 项目里的 Hyperliquid smart_money 账户,担心 testnet 重置再把 sm_account 的基线和链上搞脱钩,于是让助手跑了一次只读检查。结果直接触发 ALERT,而且漂移幅度远超阈值,又是一次典型的 reset 脱钩。
一、为什么跑这次检查这个 sm_account 基线脱钩已经不是第一次出现了。之前 09-05、09-06、09-08、09-11 都出现过类似模式:DB 里的基线没跟着链上权益更新,testnet 一重置,两边就错开一大截。所以当天我特意安排了一次例行防脱钩检查,目的就是看基线有没有再次和链上脱开。
检查脚本是 _sm_sanity_check.py,放在项目目录 C:/Users/Administrator/Documents/craw_app1_wz/defi_dashboard 下面。我让助手必须用 Bash 工具执行,并且打开 danger ...
130秒规律暴露心跳守卫误判,交易worker反复重连(2026-09-10)
最危险的不是进程死了,而是它还活着,却已经很久没说过一句话
这天前后处理了几件看起来不相干的事:换掉一个 VLM 模型、给一个本地转发进程补 timeout、修交易 worker 的心跳、核正一份自动判定、读一份策略审计。等它们在记录里排到一起才发现,说的其实是同一件事——每一个长期运行的环节,都得持续向系统证明自己还活着。一旦它不再说话,系统不会立刻崩,它只会安静地做出一个错误的判断。
下面按当天实际处理的顺序记。
从一条 130 秒的规律开始监控里最先扎眼的是这个数:交易 worker 每隔约 130 秒就重连一次,节律几乎不抖。
反复核过之后,这个 130 秒不是巧合——它刚好等于连接守卫的超时阈值 + 平均一次重连所需的耗时。也就是说,重连不是网络断了,是被守卫"误判"成断了:它等了太久没等到该有的时间戳刷新,就按超时处理,断线,重连,然后 130 秒后再来一遍。日志里这种由"陈旧"引发的心跳超时,一次会话里数到了 3885 次。
顺着 _last_success_ts 往下挖连接守卫的判定本身很简单:当 _last_success_t ...
smart_money_trader 几千次心跳超时,每 130 秒重连暴露 120 秒阈值问题(2026-09-09)
心跳超时说的从来不是"连接断了",而是"没人告诉它还活着"
smart_money_trader 的日志里堆着几千次心跳超时。表面看是网络不稳,但一台机器如果真烂到每两分钟断一次,它早该被停掉了——交易进程却一直在跑,仓位也没乱。所以这次不猜,先把它拆开看。
这一天的活,从头到尾只有一件事:把"到底是谁在超时"查清楚。 修不修得好是第二步。
先看清风暴的形状先把原始日志预解析了一遍,而不是凭印象判断。
reconnect_preanalysis.json 记录的这场风暴,时间跨度是 2026-08-18T22:00:00 到 2026-09-05T13:57:21。进程侧的 _HEARTBEAT_TIMEOUT 是 120.0 秒,stall_profile.jsonl 里的分析确认了一件事:重连的节奏大约是 每 130 秒一次——正好对上"超时阈值 + 重连周期"。
预解析里还埋着一个更早的坑。第一次统计出来的心跳数是 4355,但这个数字是错的:它把 470 次 [SIGNAL] 守护进程的心跳超时, ...
OOS tracker 多轮扫描中 A2 样本冻结在 16,Hyperliquid 对账确认零幽灵仓(2026-09-06)
“在量化系统里,一整天零翻转、零幽灵仓,就是最好的巡检结果。”
今天从 00:55 的 A2 扫描开始,到上午的 Hyperliquid 对账结束,我基本都在做重复但必要的检查:两套 tracker 并行跑,一条短腿 HALT,一条长腿攒样本,最后再确认链上账本没有幽灵仓位。
一、A2 长腿:样本连续冻结在 16凌晨 00:55–00:56,A2 OOS tracker 第 28 次执行,命令是 factor_ic_oos_tracker_a2.py once,走 anaconda python,带 dangerouslyDisableSandbox:true 访问主网 K 线。这一轮结果非常干净:
Gate1 样本数:16,但 A2 阈值是 ≥30,所以直接 ❌;
Gate2 binomial p:1.0000(win 8/16),完全不显著;
Gate3 年化 Sharpe:-5.080,远低于 1.0;
Gate4 maxDD:412.4%,严重超限;
regime 上升率:75.0%(n=16),≥50% ✅ OK。
决策是 NO_ACTION——reg ...
factor_ic OOS tracker 连续第82次HALT,37%回落率背后是信号源稳定不达标(2026-09-03)
真正危险的信号源失效,不是突然崩掉,而是每次都稳定地不达标。
那天凌晨 1 点刚过,我照例让自动化去跑 factor_ic OOS tracker。到早上 8 点 15 分,屏幕显示“第 82 次”,结果还是那一串熟悉的数字:regime 回落率 37.0%,HALT。一晚上什么都没变,但这恰恰是最值得记录的地方。
一、第 74 次到第 82 次,全部 HALT凌晨 01:08,第 75 次扫描 summary 先发过来:Gate1 样本数 31,通过;Gate2 binomial p 0.7201(win 14/31),不通过;Gate3 年化 Sharpe −2.732,不通过;Gate4 maxDD 320.9%,不通过;regime 回落率 37.0%(n=27),阈值 50%,触发 HALT。
命令是 C:/ProgramData/anaconda3/python.exe factor_ic_oos_tracker.py once,Bash 里带 dangerouslyDisableSandbox:true 才能访问主网 K 线。脚本只读 hl_smart ...
连扫24轮全是HALT的factor_ic,排查重点是脚本是否被改坏(2026-09-02)
连续24次扫描结果一字不差,这已经不是在验证信号,是在验证脚本有没有被我改坏。
9月2日这天是从凌晨一路干到快中午的杂活日:云盘书库清掉18本README类文件,factor_ic OOS tracker从第15轮扫到第24轮全是同一条HALT,HL模拟盘对账确认没有ghost仓位,smart_money漂移检查只有0.16%,顺手还发了一篇知乎热榜文。
一、先把云盘书库里的“README”清出去改四个文件,删十八本“书”
白天最先处理的是云盘同步链路里的书库污染。之前同步时把云盘根目录下的 LICENSE、README、sitemap 这类文件全当书入库了。这次在 config.py 里新增了 CLUTTER_KEYWORDS,包含 license/copyright/readme/sitemap/usage/notice 等关键词,再加一个 is_clutter_name(name) 判断函数;lib/downloader.py 下载过滤时加 not is_clutter_name(...),lib/ebook_scanner.py ...
因子OOS监控HALT冻结n卡30,HL只读巡检确认幽灵仓为零(2026-09-01)
“n 从 28 爬到 30 就冻住了,regime 整夜贴着 38.5%~40% 晃,HALT 就是 HALT——先点清幽灵仓是 0,再想 apply 的事。”
这天我干得最多的一件事,就是每隔一个小时在 C:/Users/Administrator/Documents/craw_app1_wz/defi_dashboard 里跑一次 factor_ic_oos_tracker.py once,从 00:08 一直跑到 09:17,总共 10 次。中间还抽空做了 Hyperliquid 的只读对账、sm_account 漂移检查,顺手发了一篇知乎。复盘下来,最有价值的不是“又 HALT 了”,而是当所有闸门都红着的时候,忍住没去敲 --confirm。
一、一条 once 命令,四张表一个结论factor_ic_oos_tracker.py 这脚本我是当巡检用的,只允许它读 hl_smart_money.db 和 factor_monitor 的主网 K 线,写 factor_ic_oos.db 和 docs/strategy_research/_prereg/ 下的 alerts ...
配置正确不等于验收通过,HLDeFiWatchdog 自启任务从未触发(2026-08-31)
“任务配好了(Ready/AtLogOn),但从没真正触发过(LastRunTime=1999),当前跑的是一份静默手动实例。”
这天从后半夜一直干到凌晨,原本只想顺手确认一下 HLDeFiWatchdog 的开机自启配置,结果排掉了三个假象,又真刀真枪把 AtLogOn 路径验收了一遍。
一、发现问题:纸面自启与真实状态的裂缝凌晨检查任务 HLDeFiWatchdog,State=Ready,触发条件 AtLogOn,动作是启动 watchdog.py --loop,看着配置完全正常。但 LastRunTime 显示 1999,意思是这个任务从未真正触发过。当前系统里跑的 PID 21812 是上次恢复时手动拉起的实例,跟“开机自启”这条路没有任何关系。
关键判断:配置正确不等于验收通过。 这个自启任务从配好那天起一次都没跑过,所谓的“开机自启”只是纸面。要补的,就是真正用任务计划程序触发一次,验证它能不能拉起会写日志的 watchdog。
二、排除一个“致命点”:WorkingDirectory 不是根因补验收前先排查一个可能让重启后全部子进程拉起失败 ...
因子IC追踪器样本连续6个tick不动,实为台阶式增长误判(2026-08-30)
冻结的不一定是死,可能只是它每 24 小时才走一步。
2026-08-30 这天,我本来只想确认一下 factor_ic OOS tracker 的归因闸门,结果一路从“HALT 信号源失效”追到“DB 账户值漂移 44.8%”,中间三次推翻自己的判断。最讽刺的是最后发现策略活得好好的,是我在误读节奏。
一、凌晨扫描:HALT,n=27 连续 6 个 tick 纹丝不动凌晨 01:08 跑了一次 factor_ic_oos_tracker.py once,出口码 0、无报错。结果还是老一套:
Gate
实测值
阈值
判定
Gate1 样本数
27
≥20
✅
Gate2 binomial p
1.0000(win 13/27)
<0.05
❌
Gate3 年化 Sharpe
-2.804(×√504)
≥1.0
❌
Gate4 maxDD
320.9%
≤30%
❌
regime 回落率
39.1%(n=23)
≥50%
❌ → HALT
决策 HALT,regime 回落率 39.1% 触发 on_halt,halt ...
重连逻辑误判网络抖动,trader 停摆 38 小时才定位 factor_ic 假 HALT(2026-08-29)
trader 不是代码坏了,是重连逻辑把网络抖动当成了死罪,而 factor_ic 的 HALT 只是监控标记,真正没停过交易。
今天从发现 hl_smart_money.db 的 mtime 停在 08-27 19:16 开始,一路查到 watchdog 反复拉起失败、readonly 假象、502 重连自杀,最后改掉 hl_connection.py 的 sys.exit(1),顺手把 factor_ic 的 HALT 登记落地。过程有点绕,记下来。
一、trader 停摆 38 小时:从 DB 时间戳发现不对劲早上第一眼看到 hl_smart_money.db 的 mtime 停在 08-27 19:16,距离当时约 1.5 天。trader 日志尾部显示“连续 11 次重连 502 失败 → 放弃退出”,但进程列表里却有几个 PID 存活。当时我还没分清哪个是真正的 trader,先做三件事:确认进程身份、核对日志时间线、看 DB 是否还在写。
核对结果:当前没有存活的 smart_money_trader.py 进程——只有 watchdog(78616) 和 signal( ...