Skip to content

Releases: xinyuzjj/bazz.agent

BAZZ.AGENT v1.5.67

Choose a tag to compare

@github-actions github-actions released this 16 Sep 14:28

🆕 v1.5.67 更新要点(四处「两侧契约漂移」修复 + 一致性回归护栏)

你问「还有哪里有问题」—— 这一轮不是找逻辑 bug,而是找「两侧对不上」。
这四个缺陷的共同点是:跑一遍看不出来、报错也不红,只有真・切函数的 UI 是会错的
所以除了修,还补了一套专门守这类漂移的回归测试。

① 钱包的 4 通道面板:Agent 钱包那一格一直是坏的

  • 管理页「Agent 4 通道」面板 raw fetch 了 /api/wallet/status,但后端只有一个
    /api/wallet
    (返回 {cli, status, commands, daily_caps, …}),没有这条路由 →
    真实 app 里就是 404Promise.allSettled 把它当失败 → 那一格恒显示「未连接」
    哪怕你的 baw 其实已经扫码登录过了。
  • 为什么几个版本都没发现frontend/src/preview/mock.ts恰好 mock 了
    /api/wallet/status —— 隔离预览里一切正常。mock 把真实缺陷盖住了
  • :新增薄路由 GET /api/wallet/status,只回 get_wallet_state()["status"]
    (扁平的 {connected, address, detail})。与 /wallet/cex/status/wallet/web3/status
    对称;且那条链路是 30s 轮询,不必每次带 COMMAND_TREE / daily_caps 那一坨。

② i18n 键漂移四处 —— 中文是默认语言,所以几处中文界面直接显示裸 key

locales.ts 第 2 行写着契约:所有 key 必须同时存在于 zh 与 en
i18n.tsx 的实现是 dict[key] ?? key —— 没有 zh 兜底,缺键 = 界面把 key 当文案印出来。
实测漂移如下(均已修复,zhen 键集合现已完全相等,各 1335 个):

# 缺在哪 用户实际看到什么
22 个 track.* 只有 zh,en 全缺 英文界面下「订单跟踪」面板整块显示 track.title / track.stFilled
common.saved 只有 en 中文设置保存成功的 toast 显示「common.saved」
common.cancel 两本都没有 订阅授权弹窗的取消按钮,中英文都显示「common.cancel」
markets.trackWin 只有 en 中文行情页战绩条的胜率标签显示「markets.trackWin」
  • ① 是 v1.5.63 把订单跟踪面板挂到交易所视图时只补了中文留下的。
  • ④ 特别说明:别把它「改成」那个长得对的 markets.track.winRate ——
    后者是更早一版的遗留键,前端已无任何调用方;这次修的是把使用中的那个键补进 zh。

③ 新增一致性回归测试 tests/test_v168_i18n_parity.py

这类问题靠肉眼永远查不出来,必须机器守。四组检测:

  • 键集合:zh 与 en 必须完全相等,且各自无重复键(重复键会静默覆盖)。
  • 使用侧覆盖:前端全部 1164 个 t("...") 用到的键,必须两本字典都有。
  • API 端点api.ts 里 98 个端点 + 非 api.ts 的裸 fetch("/api/…"),都必须能在后端找到路由。
  • mock 反查:预览 mock 不得伪造后端不存在的端点(这正是 ① 能藏几个版本的机制);
    已登记 2 条历史占位(/api/admin/api/stats,前端无调用方),新增任何一条都会红。

⚠️ 后端路由一律走 AST 提取,不做子串匹配 —— 这次新加的路由,
docstring 本身就在解释 /api/wallet/status 为什么存在
子串匹配会让「路由存在」这条断言永远通过,正好把这个 bug 放过去。

已做变异验证(不是一个改不红的测试):把四个修复逐个「退回」到修复前状态,
四组检测各自都能抓到并报错;恢复后全绿。

验证

  • 新增 tests/test_v168_i18n_parity.py ALL PASS(4 组 20 断言 + 4 组变异验证)。
  • 全量 24 套件(原 23 + 本轮新增 1)全通过;frontend tsc --noEmit 退出码 0
  • 未触碰止损 10% / 10x 杠杆;未改任何引擎判据。

BAZZ.AGENT v1.5.66

Choose a tag to compare

@github-actions github-actions released this 16 Sep 13:54

🆕 v1.5.66 更新要点(妖币「控盘度 / 燃料」不再每只币都一样 —— 三个叠加缺陷)

你问的那句「控盘度和燃料为什么每一个都是显示的一样」,查下来是三个真缺陷叠在一起
不是一个。排查过程与证据都在下面。

① 数据饥饿:过半的币压根没取到因子(这是主因)

  • 雷达 v2 的「确认层」(OI / 大户比 / taker / 爆仓)只覆盖前 24 个候选
    get_radar_v2cands = ...[:24],为控 REST 调用量),而它最终输出 40+ 行 ——
    实测 55 只里 32 只没有任何确认层因子
  • 更糟的是雷达用 cf.get(k, 0.0) 兜底,把这些行写成了字面 0.0 ——
    消费方分不清「真的没变化」和「压根没测」。燃料轴在这些行上只能看到资金费率,
    于是永远输出「中性」:这就是「每只币都一样」的机制。
  • :妖币引擎分析的是单只币,按需补一次确认层(3~4 个 REST 调用,180 秒缓存,
    单次请求代价可忽略)。顺带把被兜底成 0.0 的 OI 一律按「没测」处理
    (顶层 oi_chg24 本来就是诚实的 None)。
  • 补到 oi_last 之后还要重算控盘指纹 —— 否则「换手畸高」(合约成交 ÷ 持仓 > 10x)
    的分母是 0,永远不成立,那一半行只能停在「未见控盘指纹」。

② 文案相同:同一个档位所有币共用一句死文案

  • 37 只「中性」的币,reading同一个字符串;而卡片只显示档位 + 这句话,
    看不到到底命中了什么 —— 视觉上当然「每只币都一样」。
  • :两轴的文案里带上实测读数与命中项。现在同为「中性」的两只币,一只写
    「费率 +0.005% · taker 0.40 · RVOL15 0.2x · OI15 −0.9% · 大户比 2.71」,
    另一只写「费率 −0.012% · taker 1.12 · RVOL15 1.9x · OI15 +0.5% · 大户比 1.47」。
  • 「未见控盘指纹」也不再说空话,而是列出查过哪五项
    「未命中 无现货 / 合约独大 / 换手畸高 / 空头付钱 / 拉升无爆仓」;
    命中时给出该指纹的人话解释(如「合约独大(现货没深度,少量资金就能推价)」)。
  • 记 0 分的条目(如大户拥挤)单列成「关注」—— 它不构成燃料、不改档位,
    但「检测到了却不显示」正是「看起来什么都没发生」的来源之一。

③ 死规则:taker >= 1.85 从来没触发过

  • 实测 40 个最高成交额合约的 takerlongshortRatio:min 0.439 / 中位 1.110 /
    p90 1.426 / max 1.790≥ 1.85 命中 0 个。而这条信号同时挂在四个地方
    _stage_of 的点火判据、_radar_score 的 +3、雷达依据文案、燃料的「买盘主导」)——
    也就是说它自上线起一次都没生效过。这不是「市场没出现」,是阈值压根够不着。
  • :改成 1.30(主动买 ≈ 主动卖的 1.3 倍,实测命中 10/40 = top 25%),
    四处一起改,并落成命名常量 _TAKER_BUY_DOMINANT(monster 侧镜像 + 测试钉住不许漂移)。
  • ⚠️ 这是一处会产生行为变化的修正(点火判定更易命中、评分 +3 可能开始加分),
    不是纯显示修复。之所以必须一起改:同一个数在四个地方必须同义,
    只改一处等于制造口径漂移。

另外:「没测」和「中性」现在分得开

  • 新增档位 「未能判定」:确认层没补到时不报「中性」,而是明说
    「这是『没测』,不是『没有燃料』」。
  • 只有现货、没有合约市场的币(如 SPCXBUSDT)单独措辞:OI / 持仓额 / 大户比 / 费率
    本就不存在,不是取数失败 —— 但量能这类现货口径也有的读数照常给出,
    该给「有油」就给「有油」。

验证

  • 新增 tests/test_v167_monster_factors.py(4 组 60+ 断言):阈值镜像与「源码里 1.85 必须消失」、
    补取的命中 / 缓存 / 降级三态、oi_usd 重算、「没测 ≠ 中性」、同档位两只币文案必须不同
    现货口径与合约口径措辞必须分离。
  • 既有 test_v166_monster_engine.py 全过;全量 23 个套件通过;tsc --noEmit 退出码 0。
  • 真机实测:55 只里 32 只走补取;买盘主导 命中从 0/49 → 4/49
    控盘度分布 45% 明确控盘 / 44% 未见指纹 / 7% 重度 / 4% 持仓侧控盘。

BAZZ.AGENT v1.5.65

Choose a tag to compare

@github-actions github-actions released this 16 Sep 13:07

🆕 v1.5.65 更新要点(剧本进度带的游标挪进框里,不再压住表头)

这是一版纯视觉修补:上一版的妖币封面与剧本卡做验收时抓到一处叠字,修掉,其余一行没动。

那个叠字长什么样

  • 剧本进度带上的三角游标原本画在高亮框外侧上方,用来指「当前格」。
  • 问题出在「当前格」恰是第 1 格或第 2 格时:游标正好落在左上角那行表头
    「妖币剧本 · 演到第几格」上面,把中间的「·」和后面的「演」糊成一团。
  • 偏偏吸筹(第 1 格)就是引擎最常给出「可埋伏」的那一格 —— 露脸最多的图正好带着这个瑕疵。

改了什么

  • 游标改为贴在高亮框内侧顶部、指向框内,与表头在纵向上彻底脱开。
  • 只动妖币引擎的进度带绘制函数(src/square_monster.py_draw_stage_band)。
    封面的「90d 高/低」「现价」标注、三轴卡、出场四段、正文文案都没动
    代币那套 SMC 引擎一行没碰

验证

  • 妖币引擎测试套件 90+ 断言全过;全量离线回归 23 个套件全过;前端类型检查退出码 0。
  • 用真实雷达数据重渲染两张对照样张(一只吸筹·可埋伏、一只已拉升·窗口已过),
    放大到 3 倍逐像素看过:游标与表头不再相交,进度带整体仍然一眼可读。

BAZZ.AGENT v1.5.64

Choose a tag to compare

@github-actions github-actions released this 16 Sep 12:50

🆕 v1.5.64 更新要点(广场分析拆成两套引擎:代币走 SMC,妖币走剧本三轴)

核心:你说「分析代币和分析妖币生成的广场内容要用不同的技巧」——这一版把它做成了两套引擎
不是同一个工具的两组参数。代币继续用 SMC;妖币另起一套剧本三轴(位阶 / 控盘度 / 燃料)。
顺带把清单里挂着的两个决策仪表化了:不再是「等样本」,而是随时可问「还差几笔」。

为什么必须分开:SMC 的前提在妖币上不成立

  • SMC(结构、BOS・CHoCH、OTE、OB、FVG)成立的前提是**「价格由众多参与者的共同行为堆出来」**——
    结构位、订单块之所以有用,是因为那里真的有人挂单、真的有共识。代币满足这个前提。
  • 妖币不满足:控盘盘的 K 线是画出来的。你看到的 OB 就是诱多区,你看到的「扫流动性」
    就是庄家专门去点你止损的那一下。用 SMC 分析妖币,等于拿散户的地图去找庄家的门。
  • 所以妖币看的是控盘意图,三轴:
    ① 位阶(庄家剧本演到第几格)· ② 控盘度(盘在谁手里)· ③ 燃料(往上推的油从哪来)。

剧本三轴:位阶一票否决,控盘度不等于坏消息

  • 位阶是七格主剧本:吸筹 → 点火 → 已拉升 → 垂直拉升 → 派发顶部 → 崩跌 → 沉寂。
    只有吸筹 / 点火且不晚才允许进场;做空埋伏与「异动」是旁支,直接不进。
  • 「晚不晚」直接复用雷达自己的两条闸门(价格硬挡线 10% / OI 堆积线 5%),不另发明口径——
    否则稿子里说的位阶会和你在 app 里看到的对不上。
  • 控盘度不是坏消息:命中「无现货 / 合约独大 / 换手畸高」说明「剧本是真有人在演」,
    这恰恰是妖币会涨的原因。真正的含义是离场必须果断——控盘盘没有自然买盘接你的货,
    你以为的支撑是画出来的。
  • 燃料全是「对手盘的痛」:空头付钱(负费率,最猛的燃料)、OI 蓄力、大户拥挤、爆仓结构。
    其中「费率自极值回落」与 radar_tracker._reversal_now 完全同口径

出场不改一个数:四段全部镜像 radar_tracker,并写明一个难听的事实

  • 认输线 逆向 10% / 达标线 顺向 25% / 移动止盈 自极值回撤 12% / 提前落袋 反转因子命中——
    四个数与 radar_trackerFAIL_HIT / GAIN_HIT / TRAIL_PCT / _reversal_now 逐一对应,有测试钉住不许漂移
  • 且把一句实话写进稿子:在 10x 下,10% 止损就是强平线 ——
    100U 本金 ×10x = 1000U 名义,逆向 10% 正好是 100U,打到止损等于本金归零,不存在「小亏一点」
    这条线不是「保护你」,是逼你认输;能调的只有仓位,不是这条线。这不是软件不够聪明,是杠杆的算术。
  • 妖币用固定 10% 止损而不是结构位,原因和上面同源:控盘盘的「结构失效位」是画出来的,
    挂结构止损等于把止损位送给庄家。

只做多,绝不做空;不给点位也是结论

  • 安装版真实战绩:3 笔做空全部被轧空击穿 10% 强平线,最大有利仅 0.0% / 0.0% / 1.4%——
    从一开始就没跌过。妖币的顶常是二次拉升前的换手,做空你以为在赌回调,其实是给庄家当接盘的人。
    所以 plan.direction 写死 long,源码里不存在给空头出计划的路径。
  • 位阶不在允许窗口时,稿子明说「本次不给点位」plannull——绝不硬造方向。
    副作用是正确行为:paper_orders 那时不会建单,这不是漏单

接线:两个端点 + 一个新技能 + agent 路由分流

  • 后端:/api/square/monster/compose(出稿)与 /api/square/monster/analyze(只看结论不出图)。
    注释里写明与 /api/square/rich/compose两套引擎,不是同一套的参数
  • 新技能 square-monster-post:4 套妖币专属风格(剧本拆解体 / 埋伏笔记体 / 别接盘体 / 说人话体),
    与代币引擎的 4 套(冷静复盘体 / 交易员日记体 / 问答体 / 直给体)刻意不重名——
    名字不同是为了让 agent 不能顺手互换。
  • 产物 cover.png(90 日走势 + 剧本进度带 + 三轴卡)chart_playbook.png(1080×1080 竖版剧本卡,
    手机可读:结论 + 进度带 + 这一格/下一格 + 控盘与燃料 + 出场四段)

    产物结构与代币引擎同构square-post 发布链路没改一行paper_tracker 也能直接读 plan
  • Agent 提示词改成先按标的分流:普通代币 → square-rich-post(SMC);妖币 / meme / 百倍币 / 雷达里的异动币
    square-monster-post(剧本)。并写明两者绝不可互相替代
    判断不了就先跑 monster——它发现该币不在妖币雷达视野内会明确报错并提示改用 rich,不会硬编一篇。

挂着的两个决策:从「等样本」变成「随时可问还差几笔」

  • 决策 2(设不设最低分门槛)决策 3(挡不挡「登记时已下跌」) 此前写的是「等 OPT-04 后的新样本」——
    没有人会记得回来复查,挂着等是最糟糕的形态。现在做成 state.radar_recheck_decisions() + agent 工具
    meme_watch(mode='audit'):每次调用重算证据,样本不够如实说还差几笔,够了直接给结论
  • 决策 2 的关键改进:先剔除 OPT-04 会挡掉的那批样本再看 score 还有没有判别力——
    不剔除的话 score 只是 chg24 的影子(高分样本恰好都是「已涨」的 dump),属于重复计数
    函数会同时给出「全部样本」与「OPT-04 之后」两张分桶表,让这件事看得见。
  • 它只给证据,不改任何规则——加闸门是产品决策,要你拍板。测试里钉了这条。

验证

  • 新增 tests/test_v166_monster_engine.py(10 组、90+ 断言):引擎分离(monster 不得 import 任何 SMC 分析函数)、
    常量镜像逐一相等、位阶一票否决、合议优先级(重度控盘 + 满油但位阶在派发 → 仍离场)、
    只做多、不给点位、四风格不重名、产物同构、符号不在视野内报错、决策复核 waiting↔ready 双向、
    接线(提示词 / 工具 schema / 技能发现 / 前端文案)。全量 22 个套件通过,tsc --noEmit 干净。
  • 真实数据端到端跑过(不是只有单测):拉真雷达 → EIGENUSDT 判定「吸筹·第 1/7 格 → 可埋伏」,
    出稿 + 两张图(75KB / 98KB)落盘,plan = 入场 0.1908 / 止损 0.1717(= 入场 ×0.9)。
  • 视觉验收发现并修掉三处:面积渐变把曲线下填色整片盖掉(改成先铺底再填)、
    三轴卡文字超行截半句话(改成带省略号)、价格线压在高/低标签上读不出来(改成带底衬标签)。

BAZZ.AGENT v1.5.63

Choose a tag to compare

@github-actions github-actions released this 16 Sep 12:04

🆕 v1.5.63 更新要点(妖币雷达第二批落地:登记门槛分段 + 假启动提示 + 撤单与保护单)

核心:把登记清单 outputs/todo-v1.6.4.html 里能落地的项全部落地(10 条编号任务 → 9 条已落地,
第 10 条是「装上去」这个动作,得你来)。止损 10% 与 10x 杠杆一律不动——这一批改的全部是「怎么找妖币」和「怎么把单管住」。

登记门槛分段:硬挡线 3% → 10%,3~10% 只降分不挡

  • 先把一条我们自己写错的话改掉:原注释说「连 3%~12% 这段也晚了」,数据不支持——
    9 笔「登记时已涨」样本的 chg24 最小是 11.3%,其余 13.9%~21.9%,3%~11.3% 之间一笔样本都没有
  • 所以有依据的只是「≥11.3% 该挡」,于是硬挡线定在 10.0_TRIG_LATE_CHG24),
    3%~10%降 6 分、不挡,交给 OI 判据二次筛;触发线 _TRIG_UP_CHG24 = 3.0 不动,两条线从此解耦;
  • 诚实说明:这次放宽是样本中性的(该段 0 笔样本),测试里留了「3%~10% 段样本数 = 0」的断言把这件事钉住;
  • 还要说清一个事实:登记链路不看 score,所以「降分」的作用是排序 + 把这件事写进依据便于日后分桶回放,
    真正的闸门只有价格硬挡线 + OI 堆积

持仓质量提示「疑似假启动」(只提示,绝不自动平仓)

  • 跟踪 ≥24h 且顺向历史极值 < 5% 的行打标,Tracks 面板出红色徽章;
  • 真实口径(写清分母,别把数字读成另一个意思):活过 24h 的 10 笔 dump 里 7 笔被标,3 笔 moon 0 笔被标
    (17 笔 dump 里有 7 笔在 24h 前就逆向破 10% 关单,走不到被标记那一步);
  • 为什么绝不自动离场:VTHO 就是反例——早期回撤 7.9% 之后冲到 +31.3%。徽章只是提醒,止损与杠杆一律不动;
  • 顺手修掉一个真 bug:第一版对做空也读 max_gain_pct,而做空的顺向是「跌」——
    等于拿反向指标判「假启动」,会把已经跌了 20% 的空单标成假启动。真实库实测:修前标 16 条 → 修后 5 LONG + 3 SHORT

战绩按阶段分组:分开观察「点火」与「吸筹」

  • 安装版真实库:点火 3 moon / 13 dump = 18.8%吸筹 0 moon / 4 dump = 0%,做空埋伏 0 / 4;
  • 胜率分母只用已关单(进行中既不算赢也不算输);
  • 不删、不降权:4 笔样本可能纯属偶然,先分开摆在战绩面板上,攒到 10 笔再决定。

撤单 + 保护单:把交易闭环补上

  • 撤单(此前整条链路只有「下」没有「撤」):签名 DELETE /api/v3/order
    订单台账同步置 CANCELED,订单跟踪卡出现撤单按钮(只对「还在交易所挂着的委托单」显示);
    交易所返回 -2011(订单已是终态)按成功收敛——「别让它再挂着」这个意图本来就已经达成,报错只会诱导重试。
    原来的 DELETE /api/orders/track 只是本地不再跟,两个动作的说明已经分开写清;
  • 保护单:下单即挂 OCO,止损 −10%(与你定的模拟口径完全一致,刻意不做成可调参数)。
    只有 signal.protect=True 且人工确认过才发第二张单,确认框里会显示「会不会挂保护单」;
    挂不上不算下单失败,只附一条 protect_warning 让你手动补;
  • 顺便抓到一个静默 bug:executor.place_oco_order 一直在传非法的 legs 数组
    (Binance OCO 要的是扁平参数 price / stopPrice / stopLimitPrice),而且它从来没有任何调用方
    所以这个 bug 挂了几个版本没人发现。已改成正确参数并委托给 cex_wallet(统一密钥 + 交易规则取整 + 错误归因);
  • 台账口径写清楚:radar_tracks = 雷达模拟仓、paper_orders = 广场发文纸单、tracked_orders = 真实委托,三者不混账

v1.6.4 的四项(同批):纯合约币取价兜底 + 登记快照落库 + OI 判据 + 费率降权

  • 候选池扩到合约全市场后,只上合约、不上现货的币(RAVE / LAB 这类)用现货永远取不到价 →
    永久卡 pending、7 天后被静默 expired。改为三级兜底:现货 WS → 合约 WS → 合并快照(现货优先
    不让合约价差污染现货币);
  • radar_tracks 补 5 个登记时刻数值快照列(snap_chg24/oi24/amp24/funding/rvol15):
    此前回放只能解析 reasons_json 文本反推,同一条规则两次算出不同答案。缺值写 NULL 不写 0(口径不能混);
  • 新增 OI 判据OI 24h 为正的样本 9 笔 → 9 笔全 dump,3 笔 moon 从无正值 OI零误杀)。
    登记条件由「价格未启动」扩为「价格未启动 持仓未堆积」,阈值取 5.0 是故意的零外推
    (依据生成处本身就是 abs(oi_chg24) >= 5);
  • 「空头付钱」扣分 10 → 3:VTHOUSDT 费率 −0.776% 却是 +31.3% moon,判别力弱;风险提示语义保留。

测试:新增 tests/test_v165_radar_tune.py(含上面两处自我纠错的护栏),全量 21 个套件全绿
frontend tsc --noEmit 退出码 0;真实库副本验证迁移与统计通过。

BAZZ.AGENT v1.5.62

Choose a tag to compare

@github-actions github-actions released this 16 Sep 10:39

🆕 v1.5.62 更新要点(妖币雷达重做选币:只登记「还没动」的币,池子扩到合约全市场)

核心:用户定位「止损 10% 与 10x 杠杆都不动,亏的根因是找妖币的方法错了」。
按安装版的真实关单数据回放,把雷达从「波动率探测器」改回「妖币探测器」——
只有尚未启动的币可以登记,并且候选池从现货扩到现货 ∪ 合约全市场

选币规则:登记即入场,且只登记「尚未启动」的币

  • 数据依据(安装版真实关单 23 笔 = 20 多 + 3 空,胜率 13.0% / −1386.5U):
    3 笔 moon 的登记依据里全都没有「24h +X%」(即登记时涨幅 < 3%),
    而 9 笔「登记时已涨 7.4%~24.8%」的全都是 dump
  • 落地:当日涨幅 ≥ 3% 的行不再进登记组,改划「已拉升」展示组(不删除,仍然可见);
  • 回放:20 笔做多 −1086.5U / 胜率 15.0% → 只留未启动 7 笔 +213.5U / 胜率 42.9%
  • 不设「候选观察期」(用户投票否决),过滤条件全部取自登记时刻的快照特征

绝不做空 + 负费率不再硬阻断

  • 3 笔做空 3/3 全亏(CAKE +10.0% / THETA +10.3% / SAGA +11.0% 被轧空),
    最大有利仅 0.0% / 0.0% / 1.4% —— 从一开始就没跌过;
  • 做空埋伏(SHORT_AMBUSH)移出登记组,只在「顶部风险」展示组保留可见;
  • 负费率不改方向、只标注并扣分 —— 反例 VTHO 费率 −0.776% 却是 +31.3% 的大赢家:
    合约里空头拥挤会把费率压负,而低负费率恰恰是挤空燃料;费率评分同时由 abs() 改为方向化。

候选池扩到合约全市场(纯合约妖币终于可见)

  • 此前池子只取自现货快照,而 RAVE / LAB 都是只上合约、不上现货 —— 排序规则再准也看不见;
  • 现在池子 = 现货 ∪ 合约,按 max(现货成交额, 合约成交额) 排序取前 110;
  • 代币化股票/大宗必须挡在池外:合约全市场里混着近 200 个 TRADIFI_PERPETUAL
    (NVDA / TSLA / XAU / XAG / BZ / QQQ / SPY / SKHYNIX…),实测会把 110 个池位中的 57 个
    占成纯合约、且一大半是 TradFi。判据取合约接口的 underlyingType == "COIN"
    (权威字段,随上线自动更新);Alpha 币(LAB 就是)与 meme / 中文盘全部保留
  • 纯合约币的 K 线走合约回退,否则会在「日线不足 25 根」与「15m 长度 < 30」两处被静默丢弃;
  • 生产接口实测:池子 86 现货 + 24 加密纯合约,TradFi 零泄漏,LABUSDT 已进池

控盘代理层(链下、零新增外部依赖)

  • 公开接口拿不到持币集中度(query-token-audit 只有蜜罐/税率,token-infoholders
    持币人数、不是集中度)→ 改用四个可算指纹:
    无现货 / 合约独大(现货成交占比 < 5%)、换手畸高(合约成交 ÷ 持仓 > 10 倍)、
    空头付钱(费率 ≤ −0.15%)、拉升无爆仓(涨 ≥8% 但 5m 爆仓 < 5 万,并带数据可用性守卫);
  • 命中即扣分,雷达行出红色「控盘」标记、悬停显示具体原因;
  • 生产实测命中:AKE 无现货 + 换手 12 倍、LSK 换手 29 倍、IOST / CVC / STEEM 空头付钱。

验证

  • 新增 tests/test_v162_radar_select.pytests/test_v163_manip_guard.py
    (触发方向化 / 评分去绝对值 / 只登记未启动 / 绝不做空 / 控盘四信号 / 扩池与 TradFi 过滤 /
    AST 与链路护栏);test_v162 的分组断言同步更新;
  • 全量 19 套件全绿tsc --noEmit 退出码 0,生产接口冒烟通过。

BAZZ.AGENT v1.5.61

Choose a tag to compare

@github-actions github-actions released this 14 Sep 06:14

🆕 v1.5.61 更新要点(广场发文模拟挂单:文章观点自动建档、7 天定胜负)

核心:富媒体发文成功后,按文章 SMC 计划自动建模拟挂单(100U 保证金 × 10x 杠杆,
不碰真实资金),后台按 5m K 线驱动状态机,7 天观察期到期强制结算——
广场页新增「模拟挂单」标签页,一眼看清每篇文章的观点到底赚没赚。

  • 建单链路:compose 把 plan 节(方向/入场区/止损/止盈/进价)写进 meta.json →
    发布成功入账钩子 _paper_order_from_run 建单(agent / 手动两条路径汇聚,run_dir
    唯一索引幂等)→ paper_tracker daemon 线程 60s 复查;
  • 状态机(纯函数 _eval,可离线单测):pending(挂单中)→ open(已入场)→
    win / loss;同根 K 同时触 TP+SL 保守判 loss;7 天未入场 → noentry;
    盈亏按 10x 杠杆折算保证金收益率(%);
  • 观望不建单:neutral / noplay(止损距离超 8% 护栏)的文章 plan=null,绝不硬造方向;
  • 广场页双标签:「发文台账 | 模拟挂单」切换,7 张统计卡(总单/挂单中/持仓/
    获利/亏损/未入场/胜率)+ 订单卡列表(现价、入场区、止损止盈、盈亏着色),
    支持单条删除(二次确认,仅本地数据);
  • 新增 GET /api/square/paperPOST /api/square/paper/delete 路由,
    启动钩子 + 路由双保险拉起后台复查线程。

回归测试 test_paper_orders 17/17 全绿(_eval 状态机直测 + 源码护栏)。

BAZZ.AGENT v1.5.59

Choose a tag to compare

@github-actions github-actions released this 13 Sep 06:27

BAZZ.AGENT v1.5.59

Binance Agent OS 专属 AI 交易桌面端(Agent OS Alpha Scout · Track A)

🆕 v1.5.59 更新要点(大趋势判定定版 + 反向 OB 两态显示 + OTE 口径改 0.62-0.79)

用户拍板:日线大趋势按「趋势延续优先」判定;未跌破就是还在上涨趋势中;OTE 用 0.62-0.79,中间值 0.702 作入场。

  • 日线大趋势「趋势延续优先」(v1.5.57,新增 _htf_trend):锚定最近显著摆动点的
    实体边缘(下沿/上沿),实体 K 收盘破位才翻转——影线捅破不算,
    中途高点走低只算上涨中的调整;4h 图左上角标注「大趋势·日线 多头/空头/方向不明」;
  • 反向 OB 两态显示(v1.5.58):
    • 已实体收盘破结构最低/最高点 → 实线框标「CHoCH 空头OB / CHoCH 多头OB」;
    • 尚未破 → 虚线框标「跌破后的空头ob位 / 升破后的多头ob位」,
      作为价格若跌破/升破后的反向入场参考点(用户指定:也要显示,虚线标出);
  • OTE 口径改版(v1.5.59):最优入场窗口从 0.618-0.705 改为 0.62-0.79
    一般用中间值 0.702 作入场参考位;新增 ote_entry 字段,
    计划入场价取 0.702 位;正文固定附「4h OTE 参考」行(窗口 + 中间值实际价),
    「我的看法」补 OTE 概念介绍;
  • 4h 结构图 OTE 金框自动跟随新窗口范围。

回归测试 23/23 全绿(新增:趋势延续/实体破位翻转/新旧锚取代护栏、
反向 OB 实体破极值点才成立、虚线框护栏、OTE 0.62/0.79/0.702 窗口与中间值校验)。
真实 BTC 实测:锚 76,152(≈用户口径 76,165),影线捅破 76,000 收 77,191 仍判多头;
ETH 实测:多头 OTE 中间值 2,466.73 ≈ OB 上沿进价 2,465.82,双 SMC 位互相印证。

BAZZ.AGENT v1.5.56

Choose a tag to compare

@github-actions github-actions released this 13 Sep 04:28

🆕 v1.5.56 更新要点(日线封面不标 SMC,4h 结构图单独标记)

用户要求:日线图不需要标记 SMC,另生成一张 4 小时图标记出来。

  • draw_cover 增加 kkey / smc_zones 参数:日线封面(默认)不画 SMC 标记;
  • 新增 draw_cover_4h:4h 蜡烛 + 多头/空头 OB(红绿矩形框)、
    FVG(最近 3 条)、OTE 窗口,矩形区间框只出现在这张图上;
  • compose 产物新增 chart_4h.png,短贴发布自动附图(cover + 24h + 4h,共 3 张);
  • 4h 图高/低胶囊与信息卡文案标「近20日·4h」(120 根 4h ≈ 20 日),不与日线混淆;
  • k4h 不可用时静默跳过该图,不影响出稿。

回归 fallback 14/14(新增 3 例:日线默认无标记护栏 / 4h 图出图 / 缺 k4h 报错)、
styles 17/17、sizing 16/16 全绿。真实 BTC 实测:日线净版 + 4h 图 OB/FVG/OTE 框位清晰。

BAZZ.AGENT v1.5.55

Choose a tag to compare

@github-actions github-actions released this 13 Sep 04:26

🆕 v1.5.55 更新要点(封面图叠加 SMC 区域标记:OB / FVG / OTE 矩形区间框,主图放大、量区压小)

用户要求:主 K 线图放大一点、量柱区放小,并在图上标记出 SMC 区域。

  • SMC 区域矩形框(画在蜡烛下层,实线描边,标签在框内左端):
    • 多头 OB(绿框 12%)/ 空头 OB(红框 12%)——4h 结构上最近的供需区;
    • FVG 缺口(按距现价取最近 3 条,现价下方绿/上方红,8%);
    • OTE 斐波那契 0.618-0.705 窗口(金色框 9%);
    • 最小可视高度 10px,窄区间也能看出是「框」;不用虚线(用户指定矩形区间);
  • 布局:价格区 216px → 380px(y1 = H-236),量区压至 66px(vy1 = H-150);
  • 网格、蜡烛实体、高/低胶囊、现价胶囊、信息卡样式延续 v1.5.54 定版。

真实 BTC 行情实测:OB/FVG/OTE 色带聚焦现价附近供需,标签无遮挡。回归
fallback 11/11、styles 17/17、sizing 16/16 全绿。