Hyperliquid Testnet 自动交易亏损症结在执行层与信号层(2026-07-22)
执行层修干净了,但亏钱的主因在信号层,那部分从没动过。
这一天起因很简单:有人问 C:\Users\Administrator\Documents\craw_app1_wz 项目第18页 Hyperliquid Testnet 自动交易,开多和开空是不是都会开仓。我顺着这个问题一路读代码,最后发现这个项目的问题不在开仓方向上,而在执行层和信号层,而且执行层的坑一个个都踩得很实。
一、先确认“开多开空都会开仓”用户问的第18页对应 views/18_hl_testnet.py,核心交易逻辑在 strategy_engine/hl_trader.py。我全项目搜了 Hyperliquid、Testnet、开多、开空,然后读开仓逻辑和信号生成。
证据链逐步收拢:_score_symbol(388–395 行)里 score >= COMBO_THRESHOLD(=1) 产出 BUY(开多),score <= -1 产出 SELL_SHORT(开空)。信号列表 scored 在 984–989 行遍历所有币种,把 SELL_SHORT 也一并收进去,没有过滤。主循环 1067 行 ...
TVL看板图表空白,写入端向不存在的protocol列写数据导致全丢(2026-06-15)
数据"消失"的时候,先看它是被删了,还是根本没写进去
TVL 看板某天开始是空的。不是加载慢,是图表直接报错,一张干干净净的空白。
这天把这块看板修回来。
一块空的图页面 pages/1_tvl_rank.py 里的 Plotly 柱状图,x 轴取的是 protocol 字段:
1px.bar(x='protocol')
它读到的是一个空列,于是图表报错、数据全丢。
前端报错看着像渲染问题,但真正的疑点应该往后推一步:数据是什么时候没的?是同步进来的数据本来就空,还是本来有、后来被写没了?
根因:往一个不存在的列里写查下来,问题在写入端,而且比想象中更基础。
tvl_rank 表原本就没有 protocol 列。而 save_tvl_rank 在做 INSERT 的时候,把协议名写进了这个不存在的列——结果数据全丢。
同时,页面又反过来用 px.bar(x='protocol') 去引用这个空列,于是一起报错。
这条链子很典型:写入端写了个不存在的目标,读取端读了个空的结果,两头各自沉默,直到图表上什么都看不见,才被人发现。中 ...
DexScreener 接入成第二数据源,市场热度与社媒包装补齐 GMGN 盲区(2026-06-12)
两个数据源如果答案一样,那第二个就没有存在意义
GMGN 用了一整周,能挖的字段基本都挖过了。但有一类信息它天然给不了:市场热度、社媒包装、广告投放、多池流动性快照。
这天做的事,是把 DexScreener 接成第二个数据源——不是替换 GMGN,而是补它的盲区。
先想清楚:为什么要第二个源结论很早就定了,而且这次是先想清楚分工再动手:
DexScreener = 市场热度 / 社媒包装 / 广告投放 / 多池流动性快照GMGN = 链上聪明钱 / KOL 成交流 / 安全字段 / dev 信誉 / trenches 新币热榜
这两份能力清单几乎没有交集。GMGN 擅长看链上的人在干什么,DexScreener 擅长看市场在关注什么、项目方在花钱做什么。互补,不重复——这是接入的前提。如果第二个源只是把第一个源的数据再抄一遍,那接它纯粹是浪费。
8 个端点,全部不要 keyDexScreener 的公开接口实测下来很友好:全部返回 200,无需 API Key。
接口
用途
限速
...
通读 GMGN 接口文档,碎片踩坑连成认证设计全貌(2026-06-11)
踩坑能教会你一个点,系统读一遍才能连成一条线
过去用 GMGN,方式是打通一个用一个,踩到坑就记一条。这样攒下来的东西很实用,但它是碎片——你能说清"这个字段是字符串",却说不清"整套认证到底怎么设计"。
所以这天没有改任何策略代码,只做一件事:把 GMGN 的接口文档从头到尾系统读一遍。
三份笔记,一个仓库学习分了三路,最后合成一份。
第一路 t_066ec7da:完整读了 GMGN/gmgn-skills 仓库里所有核心 SKILL.md,覆盖 6 个模块、Readme 和 Wiki。产出是约 19000 字的 GMGN_OpenAPI_学习笔记.md,放在 C:/Users/Administrator/.hermes/kanban/workspaces/t_066ec7da/ 下。
第二路 t_d13a7d02:读 docs.gmgn.ai 官方文档,并用 OpenApiClient.ts 源码对着验证,产出 GMGN_官方文档学习报告.md。
第三路 t_c4e8bab0:把前两份整合成 GMGN_综合学习笔记_T1+T2+T3.md( ...
12号页回测买入数15254远超实盘,追到engine.py的max逻辑被钻空子(2026-06-10)
一个数字离谱到没人信的时候,问题多半不在那个数字上
新做的 12 号页跑完之后,v1.16.4 的 BUY 数量是 15254。而同一时间,11 号页里真实成交只有两百多笔。
差了将近两个数量级。这天做的事就是把这个数字修回来。
一张对不上的表:11 页 215,12 页 15254起因很朴素:11 号页显示"买的币很少",12 号页却显示买了 15254 次。策略筛选出要买的币本来应该非常少,两个页面却给出了完全不同的结论。
这里先要分清两个页面在干什么。11 号页读的是 sim_trades,真实跑出来的成交;12 号页是反事实回测,用历史数据按每个版本的规则重放一遍。回测的意义在于"把历史数据和样本重新过一遍,快速筛出最近真正赚钱的策略,顺带看出优化方向"——它能跑出的笔数本来就该和实盘一个量级,绝不该多出几十倍。
15254 这个数字本身就在喊"我不对"。
根因一:combo 的 max() 被避雷策略钻了空子第一层根因在 engine.py 的 score_combo()。
原来的写法是用 max() 取 4 个子 ...
GMGN成交流接口四个闲置字段接入评分,从只盯币转向看交易者(2026-06-09)
接口里最贵的从来不是新端点,是老端点里没被读过的字段
前几天把 GMGN 的 27 个端点一个个打了出来,清单躺在那里。可清单本身不会下单——不把字段接进评分,它只是一份好看的能力说明书。
这天做的事很具体:从那份清单里挑出四个一直没被读过的字段,让它们真的进 combo。
从 27 个端点里挑出 4 个字段选中要改造的是 /v1/user/smartmoney 和 /v1/user/kol 这两个成交流接口。它们返回的每一条记录里,有四个字段是之前完全没用上的:
maker_info.tags —— 这个 maker 被打上的标签
base_token.launchpad —— 代币的 launchpad 来源
is_open_or_close —— 这笔是开仓还是平仓
twitter_username —— maker 关联的社交账号
这四个字段的共同点是:它们描述的不是"这个币长什么样",而是"动这个币的人是谁、怎么动的"。之前整套评分都在看币,这四段是第一次往人的方向看。
先看清这 4 个字段长什么样接之前先做了一次实战统计。取最近 ...
图表空白主题不切换,工厂仪表板两个JS语法错误(2026-05-16)
先按规范把深色工业风落地,再让太阳月亮切换真正跑起来——今天最关键的判断是:样式可以灵活,但脚本必须先通过语法这关。
今天这一天基本就是在和工厂仪表板的 UI 死磕。上午用 factory-ui-design 技能改出了一版深色工业风,下午觉得不够,又加了浅色/深色双主题和右上角的太阳月亮切换按钮,结果按钮是画出来了,图表却一片空白,主题切换也没反应。最后定位到两个 JS Bug,都是手滑级别的低级错误,但足够让整个脚本挂掉。
一、需求:从单主题到深色工业风起手的需求很明确:用 @skill:factory-ui-design 修改 UI,重点是把颜色改成深色工业风,其余按原则灵活调整。我第一版就直接按技能规范走了深色工业风,落盘到 D:\factory_dashboard_dark.html,同时工作区留了一份同名文件,原来的莫兰迪版本不动。
这一版的核心配色我记下来了:页面底 #0E1116,卡片 #161B22,悬停 #252A33;文字层级从主文本 #EAEDF0 到次要 #B0B8C1 再到辅助 #6E7681;数据用了深色底上高亮度的六色——蓝、绿、橙、紫、琥珀、 ...
工厂数字大屏改版当天,莫兰迪配色落地后甘特图被砍掉重做(2026-05-15)
看板改版最怕的不是改颜色,是改完图别人看不懂。
今天一整天都耗在工厂数字大屏上。上午刚把整套 dashboard 从中车蓝换成了莫兰迪配色,下午用户一句话就把时间轴里的工位作业甘特图判了死刑,只能当天返工重做。
一、上午:莫兰迪配色版先落地上午的活儿比较顺,主要就是把工厂 dashboard 的整体视觉从中车蓝换成莫兰迪色系。助手把每一处颜色都列了对照表:Header 从原来的 #0066CC 深蓝渐变,换成了 #6B7D8F → #B8A9C9 的蓝灰到紫灰渐变;背景从冷白 #F5F7FA 换成暖灰米色 #F0EDEB;主色调从饱和蓝换成低饱和蓝灰 #8B9DAF。图表颜色也改成了蓝灰、绿灰、暖橙、紫灰、玫瑰这种多色系,状态标签换成雾绿 #8FAE8B 和暗玫瑰 #C4908F,热力图渐变从蓝白改成暖灰白到莫兰迪绿再到深蓝灰。
功能上没动任何东西,四个标签页、6 路摄像头 Canvas 预览、24h 热力图、桌面与移动端切换,全部保留。文件最后落到了 D:\factory_dashboard_morandi.html,也就是 cpolar 服务目录,附件也投递过去了。
二、下午:用户 ...