更新日志¶
这份更新日志面向公开用户,只保留会影响升级判断、接口调用和运行行为的内容。
更早版本见 更新日志归档。
v1.4.122 · 2026-06-27 — 🟡 QOT 3401+ 与多语言运行时收口¶
建议使用新版财报 / 宏观 / 分红 / 机构 / 行业 / 热力图等只读 QOT 查询,或希望 daemon 自动更新语言包的用户升级。
- 多语言 language-pack 运行时缓存上线:未配置 endpoint 时 daemon 启动不阻塞并使用内置
minimal_fallback;futucli lang-pack update可从 manifest 拉取语言包并写入last_good_cache;daemon 配置--language-pack-endpoint后会在后台自动更新语言包。 - QOT 权限、交易权限、全时段风险披露、更新检查和部分 proto-json UX 提示继续收敛到稳定 diagnostic key,方便后续扩展中文 / 英文 / 繁体文案。
- 修复部分 3401+ 行情接口请求失败:这些接口现在按官方 OpenD 的后端命令配置发送请求,避免真实后端返回
invalid wire-format data或请求类型错误。 macro-indicator-history已能返回ret_type=0;dividend-calendar在修复 wire-format 后继续对齐分红服务RequestType枚举值,避免后端返回request_type is invalid。- 已通过本地 focused tests、script guards、clippy、proto diff、package gate,以及外部真机 C++ / Rust 双端口对照和外部包复测;本版无 API breaking。
v1.4.121 · 2026-06-25 — 🟡 QOT 3401+ 公共接口、选股器与发版包收口¶
建议需要新版行情查询、选股器 / 排名接口、本地 C++ / Rust 对照诊断或 package-only smoke 的用户升级。
- 新增或补齐 3401+ QOT 只读 API 族,覆盖财报 / 宏观 / FedWatch、板块资金流、热门榜、卖空、机构持仓、ARK 持仓、评级、行业、热力图、涨跌分布和选股 / 排名相关查询;Gateway / REST / MCP / CLI 统一登记暴露状态,未开放入口显式标记为 NotExposed。
- StockScreen / OptionScreen / WarrantScreen 相关返回字段、
allCount、retrieve columns、名称 / owner 显示、涨跌幅、日期和筛选比例继续对齐官方 OpenD,减少不同入口同一查询返回不同字段或数量的概率。 - 本地 C++ / Rust parity lab 增加 screen / 3401+ quick-regression profile 和 case pack,可把 orderbook、history orders、related warrant、screen 等高复发路径输出为 Markdown / JSON 对照报告。
- 预发布 / release 包会在打包阶段探测三件套
--version/--help/futucli commands启动路径,并随包提供启动诊断脚本;macOS 包内 README 增加 Gatekeeperxattr -cr futu-opend futu-mcp futucli说明。 futucli version --check/doctor默认 manifest 返回 HTTP 非 2xx 或不兼容 schema 时,会 fail closed,不再误报“无需升级”;docs workflow 和手工部署脚本会验证公开version.json是否真正上线。- 新版 QOT protect / 限频语义继续对齐官方 OpenD,覆盖只读行情接口的本地频率保护表、分页首包语义、默认账户 bucket 和组合下单频率分组。
- MY ETF / warrant 静态信息可见性增加防回归保护,避免本地 stock-list 过滤规则误隐藏新版官方静态证券行。
- 本版无 API breaking;新增能力以只读 QOT 查询、诊断工具和发版包护栏为主。
v1.4.120 · 2026-06-23 — 🟡 行情摆盘、历史订单与组合单投影收口¶
建议依赖 get_order_book、历史订单、当前订单 / 组合订单或多入口交易读取的用户升级。
get_order_book在 US Lv2 / ARCA-only 等权限组合下,会按已接受的 Lv2 订阅和请求档位判断返回深度,不再在已订阅后只返回 1 档;HK 摆盘深度保持 10 档非回归。- 行情权限判断集中到统一 capability 层,snapshot、orderbook、basic quote、关联窝轮和 crypto PT orderbook 会产出一致的
reason/action/source诊断,减少不同入口对权限字段理解不一致。 - 历史订单读取补齐分页、市场、时间、过期时间和去重规则,REST / MCP / CLI / gRPC / FTAPI 不再因请求形态或 Universal 账户市场 fallback 不同而返回不同数量。
- 历史订单字段投影继续对齐官方 OpenD:保留毫秒级时间语义,按账号市场转换订单类型,并为组合 / 多腿订单返回策略名、
strategyType和comboLegs。 - 当前订单
order_list_query会保存后端组合腿信息,并在响应阶段按策略类型覆盖组合单名称,同时返回strategyType与comboLegs;避免当前订单显示 slash-code 名称而历史订单显示策略名。 - 新增只读 quote capability 诊断入口(REST / CLI;MCP 与 Gateway/gRPC 显式未暴露),并随包提供本地 C++ / Rust parity lab 脚本和脱敏 fixture oracle,方便在外部复测前定位行情权限、摆盘深度、历史订单和关联证券差异。
- 新增 surface catalog、projection domain ledger、backend channel runtime 和 static readiness 相关 guard,降低新增 endpoint、投影字段或诊断入口时漏同步 REST / MCP / CLI / docs 的概率。
- 已覆盖 focused tests、history order 相邻用例、order-list 模块测试、workspace package gate、fmt、workspace clippy all-targets、workspace tests、release-ci build 和 PII 扫描。当前订单
order_list_query组合订单名称对齐已由外部真机复测确认 pass。 - 本版无 API breaking;新增 quote capability 诊断为只读辅助 surface。
v1.4.119 · 2026-06-21 — 🟡 长跑授权刷新与 broker 自愈收口¶
建议长时间运行 daemon、依赖多 broker 交易通道,或需要排查静态数据同步状态的用户升级。
- 长跑 daemon 遇到明确授权过期时,会刷新登录凭据并继续重连;24 小时真机长跑已验证 platform 授权过期后可在不重启 daemon 的情况下恢复。
- broker 通道自愈重试节奏对齐官方 OpenD:网络抖动叠加 broker 授权过期时,不再使用旧的 5 分钟客户端自限;自愈请求失败后按约 10-15 秒 retry-after 窗口重试,减少恢复等待时间。
- broker 授权刷新成功后,reconnect watcher 会重新读取新授权、重置失败计数并回到初始重连节奏,避免继续拿旧授权反复失败。
- 新增长跑探针脚本,可做只读 REST / FTAPI 探测、聚焦 daemon 日志,并在捕获授权过期信号后调用脱敏证据采集脚本,方便真机长跑复测。
futucli static-status增加稳定的reason/action字段;futucli doctor会把静态数据首轮同步、零增量收敛和 checksum retry 状态汇总为可带进 bug report 的诊断项。- 自适应编译缓存 wrapper 改为探测 sccache server 是否可达;server 不可达时自动回退到原始
rustc。 - 本版无 API breaking、无 proto 变更、无新增公开 endpoint;仍建议在真实长跑环境继续观察 broker 自愈恢复耗时和授权刷新路径。
v1.4.118 · 2026-06-19 — 🟡 长跑重连与命令发现收口¶
建议长跑 daemon、多 broker / 交易解锁、以及经常使用 futucli 的用户升级。
- Platform 网络短断并自愈后,交易 broker 通道会收到断开信号并使用缓存授权重连;真机复验中 platform 重连后约十几秒内 broker 恢复,
unlock-trade不再长时间返回后端错误。 - 明确授权过期的 reconnect 路径会刷新登录凭据并带新授权重试;普通 backend down 期间不会空打登录刷新,避免无效重试放大。
- 新增
futucli commands,可按分类浏览或搜索现有命令,并支持 JSON 输出;命令名保持平铺和向后兼容,不引入新的前缀命令体系。 futucli surface --checklist <endpoint>可输出新增或修改 endpoint 时需要同步的 REST / MCP / CLI / Gateway、schema、runtime、docs 和 final gate 清单;--output markdown可生成适合 review / handoff 粘贴的 Markdown。- 发版和诊断 guard 继续收紧,减少静态数据加载期、跨入口 smoke、诊断契约和未接入预备代码相关的误报 / 漏报。
- broker reconnect 已完成真机 N=2 验证;授权过期 reconnect 已通过代码级和集成测试,仍建议在长跑环境继续观察自然 token 过期场景。
v1.4.117 · 2026-06-18 — 🔴 订单终态 push 与 JP Lv2 摆盘收口¶
建议依赖订单 push 跟踪成交 / 撤单终态,或使用 JP 股票 Lv2/Lv3 摆盘的用户升级。
- 成交明细到达后会触发有界订单刷新,并按目标订单号过滤补发当前订单终态,避免成交后只收到成交明细而订单状态不进入
FILLED_ALL。 - 撤单、全部撤单和账户级刷新继续只对已在本地缓存中且字段发生变化的目标订单补发更新,避免今日历史订单混入当前订单事件。
- 订单更新不再只看状态字段,价格、数量、成交数量、辅助价格和追踪参数等关键字段变化也会触发目标订单更新;未变化订单不会重复推送。
- JP 股票 Lv2/Lv3 摆盘订阅、push 解析和读取路径按 JP 市场语义解释
lv2_type,避免与 SG 碎股或 US 多交易所缓存串路;JP 摆盘价格 / 数量已通过真机对照验证。每档 order-count 字段本版不宣称变更。 - 订单成交 / 撤单 / 全部撤单 push 已完成 CLI、REST WebSocket 和 MCP LoggingMessage 三入口真机验证;JP.7203 / JP.9984 摆盘价格与数量已完成真机对照验证。
v1.4.116 · 2026-06-18 — 🟡 订单状态推送修复¶
建议依赖订单 push 订阅来跟踪下单、撤单或成交状态的用户关注本版。
- 账户级订单刷新、单笔撤单和全部撤单后的有界订单刷新,现在会对已在本地缓存中且状态发生变化的目标订单补发订单状态 push,避免下单后只收到“提交中”而后续撤单状态只能通过查询接口看到。成交明细 push 可用;成交后的订单终态 push 后续版本继续收口。
- 未变化的今日历史订单仍不会被重新推送,避免一次当前订单事件混入大量历史订单。
- 已覆盖订单刷新 worker focused tests、单笔撤单 / 全部撤单 post-ACK 刷新差异推送 tests、历史订单不回放 source guard、格式检查和 focused clippy。单笔撤单 / 全部撤单的订单状态推送已真机验证;成交终态订单状态 push 仍需后续版本修稳并真机复测。
v1.4.115 · 2026-06-17 — 🟡 财报 / IPO 日历、长跑诊断与静态数据收口¶
建议需要财报日历、IPO calendar、长跑 daemon 排障、静态数据预热、JP 交易预检或跨入口 surface 自检的用户关注本版。财报 / IPO 日历是 Rust 增强只读能力,不作为 C++ FTAPI parity 宣称。
- 新增财报日历、目标财报日历和 IPO calendar 的 REST / MCP / CLI 入口;财报日历支持市场、日期、发布时段、自选 / 持仓显式 stock_id、排序和
--custom-filter TYPE[:MIN[:MAX]]。 doctor --bundle、daemon-status、static-status、static-warmup、trade-check和surface --gaps覆盖脱敏诊断、登录刷新开关、凭据到期、静态数据、JP 交易预检和跨入口暴露缺口;client_sig长跑刷新可显式 opt-in,默认仍关闭。- 静态证券表先完成一致性校验再发布到查询缓存;旧库需要全量重建时会按服务端快照替换旧表,避免失效本地行导致静态信息 / 关联证券长期停在加载中。
- 前台
--setup-only成功写入登录凭据后,同一 HOME 的正常 daemon 启动即使不再提供登录密码,也会使用缓存凭据完成登录,不再误进入 offline mode。 - 冷启动首轮股票列表同步未收敛时,关联证券 / 静态信息 / 窝轮 / 板块 / 选股 / IPO 返回“行情静态数据加载中”,不再返回半截结果;实时快照 / 摆盘不受影响。关联窝轮补本地证券表回退,跨市场关联窝轮不再缺失;合法标的快照在同步完成前也返回加载提示,而不是误报未知证券。
- JP 股票静态信息缺失时会按需预热;JP 行情 / 交易权限不足时会提示去官方 App 开通,并可配合
quote-rights/trade-check只读确认。 - 下单 ACK 后可收到当前订单提交中 push;账户级订单刷新不再混入今日历史订单;交易锁回后后台订单重查不会污染 F2 健康计数。
snapshot对 JP / SG / AU / MY / CA / FX 证券不再显示UNKNOWN.<代码>,CLI / MCP 统一显示正确市场前缀;REST 原始market字段不受影响。- 订阅后对有价位步长表的证券(如 HK.00700)高频
get_stock_quote/snapshot,不再每次请求都刷新价位步长表,改为缓存命中时直接读本地价位表,订阅后 quote 的 p50 / p99 延迟显著回落。 - 已覆盖财报 / IPO 日历 focused tests、静态同步自愈、订单提交 push、lock-back 健康计数、JP 真实交易生命周期和 package gate。财报日历新增后端只读调用仍需真实环境确认;
client_sig刷新保持 opt-in。
v1.4.114 · 2026-06-16 — 🟡 日股交易、订单推送与发布护栏收口¶
建议依赖 JP 日股交易、交易写入权限校验、订单 push、unlock-trade 自动化、REST 撤单脚本、CA 市场下单诊断或自建发版流程的用户升级。本版继续在 v1.4.113 的稳定性基础上收口跨入口行为、交易边界和运维护栏。
futucli unlock-trade与 MCPfutu_unlock_trade的交易密码来源优先级保持一致:CLI 的--from-stdin(仅 CLI)优先,其次为FUTU_TRADE_PWD、账号级 OS keychain、legacy keychain,最后才是 CLI 交互式 prompt / MCP 配置错误;环境变量会 trim 首尾空白。- REST
/api/cancel-order现在接受字符串形式数字order_id,同时继续支持按外部订单号单独撤单和非法字符串 loud 400。 - CA 市场下单遇到
backend_code=100012时会提示账户 / 标的暂不支持 API 交易该 CA 标的,不再复用改单 / 撤单的请求超时提示。 - JP 日股最大可交易数量查询在本地缺少 backend market metadata 时,会先按需拉取证券静态信息,再计算最大可交易数量;若仍无法补齐,会本地明确失败,不再把不可信 market 信息发往后端后表现为“响应缺少 msg_header”。
- JP 无权限账户下单会在本地权限门 loud-fail,并提示去官方 App 开通 JP 交易权限和完成风险披露;不再出现返回成功形状但后续查不到订单的情况。
- 订单 push 不再在账户级订单列表刷新时回放今日历史订单;只有明确携带订单 ID 或能由请求映射到目标订单时才合成订单更新 push。
- 发版与长跑排障护栏继续增强:MSRV / release-gate / source-layout / surface guard 带自证坏样本或 source-path 跟随检查,新增长跑 smoke harness 便于收集
/api/ping与/metrics证据。 - 本版还完成一批内部模块边界收敛,公开 API 行为不变,但后续新增 endpoint / route / tool / docs 时更容易被 guard 捕获遗漏。
- 本地与 CI 基线已覆盖 5449 个 workspace 测试、workspace clippy、格式、PII 扫描和 focused 回归;JP max-qty、market-auth PlaceOrder、订单 push replay 的真实账户最终行为仍需外部真机确认。
v1.4.113 · 2026-06-12 — 🟡 稳定性、扩展 K 线周期与运维诊断收口¶
建议使用 K 线订阅 / 拉取、REST / MCP / CLI 多入口、交易读取、多 broker 账户或长时间运行 daemon 的用户升级。本版在 v1.4.112 登录热修复后的稳定基线上,集中收口行情、交易读取、撤单入口和运维诊断。
- 10 分钟、120 分钟、180 分钟和 240 分钟 K 线周期已贯通订阅、拉取、推送、REST、CLI 和 MCP;订阅、拉取、cache key 与 push dispatch 共用同一周期映射,减少旧数据和周期漂移。
futucli交易命令接受更多官方枚举数字和常见别名;place-order/ MCPplace_order新增session、time-in-force、fill-outside-rth、expire-time等盘前 / 盘后字段,并对齐官方 OpenD 的动态 overnight 白名单。已由外部实盘验证。session=ALL/OVERNIGHT下单被后端拒绝时,REST / CLI / MCP 会返回更明确的 App 风险披露提示;后端下发可打开的官方 App 跳转入口时也会一并透出。- broker reconnect watcher 会持续运行;交易读取路径在 broker 状态不可用时会明确失败或刷新,不再把旧 cache 伪装成新结果;order-list / history-order 继续保留官方解锁语义。
- 新增
/api/cancel-order高层 REST 单笔撤单入口,支持友好字段、外部订单号和省略低层packet_id;旧/api/modify-order撤单兼容形态仍保留。 - REST 撤单路径在后端接受请求后,会在返回前做有界订单刷新,减少撤单后立即查询订单状态时读到旧 cache 的概率;撤单 ACK 后不再隐式刷新持仓 / 可卖数量。
futucli unsub-acc-push <acc-id,...>现在与sub-acc-push对称,按账号 ID 列表取消订单 / 成交账户推送订阅,并修复旧测试包中该命令运行时超时的问题。- 运维入口继续收口:
--telnet-port作为--management-port的 deprecated alias 保留,管理端口默认只监听127.0.0.1,futucli doctor、push health 和 Prometheus metrics 保留长跑 daemon 排障所需状态。 - 已覆盖 workspace 格式 / clippy / 测试 / PII 扫描、扩展 K 线和 US 订单读取真机验证、REST 撤单连续 3 次真实账户复测、CLI
unsub-acc-push非回归抽查,以及全时段交易提示 focused checks。
v1.4.112 · 2026-06-10 — 🔴 登录 ret15、行情订阅与资金查询热修复¶
建议所有 v1.4.111 及更早版本用户升级。本版修复 fresh login 在部分账号 / 网络状态下返回 ret_type=15、长跑行情订阅保活、冷缓存订阅解析和综合账户 USD 资金查询等外部反馈问题,尤其适合需要复杂网络环境下 fresh login、长期订阅 orderbook / quote 或使用综合账户资金查询的用户。
- fresh password login 的 TGTGT 票据时间字段修复,避免失效时间被服务端读成早年时间后进入
ret_type=15;设备验证、短信和--reset-device提示也更清晰。 - primary auth 请求形态继续对齐官方 OpenD:默认普通 HTTP,按站点配置或服务端下发 retry-IP 切换;
/authority/body 顺序、ClientVersion、请求头和诊断 fingerprint 日志继续收口。 - remember-login 进入短信设备验证后不再 fallback 到 password auth 请求第二套 DVS;pending DVS 会持久化,password-auth DVS upsert 会替换旧 rand key / TGTGT 材料,避免验证码成功后出现
cbc_md5_var解密错误。 - 手机 App 登录设备管理中的 Rust OpenD 设备名会带 crate 版本和构建标识,方便区分测试包和正式包。
- orderbook / quote keep-sub 长跑修复;外部 21 分钟 orderbook 长跑已确认订阅未丢,US 盘前 orderbook 和 HK 主连行情持续更新。
- 冷缓存证券信息解析对齐新版服务端字段,修复冷启动订阅有效股票 / 主连 / crypto / 板块等 symbol 时可能报“无法识别证券”的问题。
- US overnight、HK future night state、SG / MY orderbook backend bit 等市场状态继续收口,减少夜盘快照时间和市场开闭状态漂移。
- 没有 crypto 行情权限的账号不再错误读到
CC.BTC快照数据。 - Universal 综合账户在基础资金查询成功后,如果 fund / bond sidecar 返回业务错误,会保留基础资金结果;普通 US securities account 仅查基础资金。
- 后端连接断开时主动清理等待中的请求,降低长跑 daemon 中旧 waiter 悬挂导致的后续请求异常。
v1.4.111 · 2026-06-08 — 🔴 Futu API v10.6 / v10.7 接口与回归修复¶
建议所有 v1.4.110 及更早版本用户升级。本版修复 v1.4.110 登录设备验证后可能进入 gateway offline mode 的回归问题,并在 v1.4.110 的稳定基线上开放首批 Futu API v10.6.6608 行情 / 基本面接口,继续补齐 Futu API v10.7.6708 的期权组合、组合策略和新市场相关能力。
- 新增或开放公司概况、高管信息、高管背景、经营效率、财报前后价格表现、财报前后价格历史、财务报表、主营构成、分析师评级概述、评级汇总和板块估值成分股等行情 / 基本数据能力。
- 新增或开放期权报价、组合期权报价、期权策略列表、期权策略分析、期权策略价差、组合最大可交易数量和受保护的组合下单入口。已完成 C++ / Rust 真机对照的只读期权接口按已验证路径开放;真实组合下单仍需要显式确认与真实交易授权。
- SG / MY / JP 行情市场、交易市场、摆盘深度、市场状态、IPO、持仓视图和相关 CLI / MCP 展示继续对齐新版 OpenD surface。
- 已开放的新增接口同步接入 REST / MCP / CLI / gRPC generic proto 的参数、scope 和暴露状态契约,减少同一功能在不同入口表现不同。
- moomoo fresh login 设备验证 / TGTGT 修复;TGTGT 构造现在跟随所选平台配置,避免 v1.4.110 moomoo fresh login 在设备验证通过后因加密材料不一致进入 gateway offline mode;验证码 callback 可被多次读取,避免一次性消费后后续步骤拿不到验证码。
- 登录缓存
rand_key增加长度防护;坏的 account credentials cache 会触发重新登录,rand_key_new解出异常长度时不会落盘,避免后续启动用错误 key 解密后进入 gateway offline mode。 - CAD 资金查询修复,CLI / REST / MCP 使用账号或卡号查询 CAD 资金时返回正确币种。
- REST
/api/broker现在跟随 REST 订阅共享连接,避免/api/subscribe后 broker 查询误报未订阅。 - 快照
price_spread在旧缓存或旧本地库缺字段时会按证券元数据回填,减少与官方 OpenD 快照差异。 CC.BTC等加密货币行情在快照、基础报价、市场标签和统计相关路径中的 market 映射继续收口,减少空结果或UNK.*展示漂移。PlaceComboOrder发往后端的组合价格保留固定两位小数,且不再发送 C++ 下单请求未写入的展示名字段;该路径仍是受保护真实写入口。PlaceComboOrder和GetComboMaxTrdQtys在组合腿期权静态信息尚未缓存时,会自动补拉 HK / US option static 信息;有效期权代码不再要求用户先手动调用 static / option-strategy-analysis 预热,查不到时会明确指出具体comboLegs下标。futucli直连官方 C++ OpenD 10.7 的握手和 proto-json 入口继续对齐,便于用同一工具做 Rust / C++ side-by-side 对照。futucli --help不再列出不可执行的 pseudohelp子命令;登录ret_type=15提示也更明确地指向设备验证、短信验证码、--reset-device和--setup-only。- 预发布包补齐 gRPC
futu_service.proto示例;futucli、futu-opend和futu-mcp的--version输出与 v1.4.111 manifest 对齐。 - 真实组合下单仍需用户明确授权后才能做 submit / cancel 侧对照;
risk-free-rate已在 Rust 真实后端路径返回 HK / US / JP 利率,但官方 C++ OpenD 不暴露同名 public FTAPI proto,因此它不作为 C++ public side-by-side 对照项。
v1.4.110 · 2026-05-26 — 🔴 架构收敛与交易 / 行情可靠性修复¶
建议所有 v1.4.109 用户升级,尤其是使用真实交易写入、行情订阅 / 摆盘 / 市场状态、REST / MCP / CLI / gRPC 多入口、长跑 daemon 或自动化脚本的用户。
- 交易写入和读取路径更严格校验后端响应。下单、改单、撤单、复核订单、订单 / 成交刷新、历史订单 / 成交等接口遇到后端缺字段、状态漂移或响应不匹配时,会返回明确错误,不再表现为空成功。
- 订单 ID、订单 IDEx、改单 / 撤单字段、sim / crypto 账户响应头、最大可交易数量、订单费用和保证金比例等路径继续收口,降低下单后查询、修改或取消不一致的概率。
- 行情订阅、报价、快照、摆盘、K 线、市场状态和 crypto LV2 等路径按 broker / session / security key 区分 cache 与 push 路由,改善多 broker、多市场和混合订阅下的漏推、旧缓存或摆盘深度差异。
quote-rights/user-info的展示更接近官方 OpenD GUI:用户信息、额度和行情权限分表展示,香港、美国、A 股、新加坡、日本、加密货币、期货和期权权限项更完整。futucli quote-rights和futucli user-info在 gateway 未启动、端口错误或连不上时会快速返回结构化错误;json/jsonl输出可被 agent、CI 和量化脚本稳定解析。- REST / MCP / CLI / Gateway / gRPC 的多个端点开始由共享 surface spec 统一描述参数、scope、默认值和暴露状态,未知字段、非法输入和未开放端点的错误更一致。
used-quota、reconfirm-order、期权链 Greek 过滤和部分账户 / 行情辅助能力在不同入口之间继续归一。- gateway 内部拆分为更清晰的 core / qot / trd 边界,cache、push、broker runtime、重连和启动状态更集中;发版和 pre-push 护栏也补齐了行数、PII、Cargo.lock drift 与 releasegate 检查。
- Futu API v10.6.6608 新增接口不包含在本版,将在后续版本单独交付。
v1.4.109 · 2026-05-16 — 🔴 Broker 授权与实盘交易写入修复¶
建议所有 v1.4.108 用户升级,尤其是使用真实交易写入、FTAPI binary 客户端、多券商账户登录或复杂网络环境 broker 授权的用户。
- 修复实盘下单可能返回旧订单结果的问题。daemon 发往交易后端的请求唯一 ID 现在会按请求重新生成,避免新下单被后端识别为上一笔订单重试。
- 原生协议客户端的下单、改单、撤单等交易写请求不再因为连接 ID 判定过严而在 daemon 发往后端前被拒绝。
- broker 授权恢复为 WebTCP 短连接、服务端下发地址池和 fallback 链路优先,减少普通系统 DNS/HTTPS 路径在部分网络环境下导致的失败。
- broker 授权启动时的 rustls provider panic 已修复。
- 交易写入、订单查询、成交查询和推送路径的订单 ID 处理更一致,降低下单后改单、撤单或查询找不到同一订单的概率。
- 已结束订单撤单、后端旧订单回声、成功响应缺少关键订单标识等场景会更明确地失败,不再表现为空成功。
- 真实环境已验证新下单、改单、撤单和对应交易推送 lifecycle。
v1.4.108 · 2026-05-06 — 🔴 行情订阅与账户发现修复¶
建议所有 v1.4.107 用户升级,尤其是使用实时行情订阅、港股期货主连合约、账户列表、App 卡号定位或最大可交易数量接口的用户。
- 修复新版服务端行情推送帧解码问题,港股期货主连合约和部分实时行情订阅不再在订阅成功后收不到数据。
- 主连、当月和下月等别名合约的行情推送会路由回用户订阅的 symbol,摆盘、报价和逐笔链路更接近官方 OpenD 行为。
- 账户发现默认展示更接近 App 可见账户集合,保留 crypto、长期激励等已开通业务账户,同时隐藏 App 不单独展示的内部期货模拟行。
- CLI / MCP / REST 对外统一使用用户可见
card_num;JSON 中acc_id以字符串返回,避免长账号在 JSON/表格工具中精度损失。 futucli account按券商与真实/模拟/禁用分段展示,Markets使用市场名称,降低排障成本。- 最大可交易数量接口继续补齐响应投影、Option IM 子请求和部分市场字段差异。
- 交易、行情和系统 handler 遇到 malformed body 时返回明确错误,不再表现为空成功或无响应。
v1.4.107 · 2026-05-04 — 🔴 资产读取与交易计算修复¶
建议所有 v1.4.106 用户升级,尤其是使用资金、持仓、现金流水、模拟账户、综合账户或交易计算接口的用户。
- 模拟账户的资金、持仓、订单和成交刷新会走模拟账户路径,不再误触发真实账户查询。
- 资金和持仓刷新更严格按账户、币种和资产类别区分;后端刷新失败或冷缓存已有同账号请求在途时,会返回明确错误而不是空成功。
- 现金流水、现金明细、业务分组、保证金信息、账户标志和债券接口统一从已鉴权账户派生后端账号与市场,无法派生时会明确失败。
- 历史订单、历史成交、订单刷新、成交刷新、订单费用、保证金比例和最大可交易数量接口补齐市场、证券和通道校验,真实账户缺少目标通道时不再回退。
- MCP / CLI 的现金流水、现金明细、账户标志和债券输出补齐更多用户可见字段,减少不同入口之间的差异。
- 解锁交易 cooldown 只统计交易密码错误;gRPC 交易请求支持幂等键 metadata。
从 v1.4.99 之前直接升级注意:综合账户和期货账户调用
/api/funds时必须显式传currency(整数 1=HKD / 2=USD / 3=CNH / 4=JPY / 5=SGD / 6=AUD / 7=CAD / 8=MYR),不传会返MissingCurrency错误。该行为自 v1.4.106 起生效,旧版(≤ v1.4.99)的"不传也返回数值但币种 tag 错位"是已修复的 bug,请补传currency整数迁移。详见 REST API 文档。
v1.4.106 · 2026-05-02 — 🔴 资金查询与账户隔离修复¶
建议所有 v1.4.105 用户升级,尤其是使用资金查询、模拟账户、综合账户或受限 API key 的用户。
- 修复
/api/funds的币种校验:单市场账户和模拟账户按账户原生币种返回,综合账户和期货账户继续严格校验请求币种。 - 修复资金快照缓存维度:同一账户的不同币种和资产类别不会互相覆盖,刷新失败会返回明确错误。
- 统一 REST / MCP / CLI / SDK 对
cash的说明:它表示响应币种下的汇总现金,不是跨币种明细求和。 - 配置账户白名单后,交易写入接口不会通过
card_num后缀解析泄露其他账户是否存在。 futucli funds的--market变为可选;如请求币种与返回币种不同,会在 stderr 给出提示。
v1.4.105 · 2026-04-30 — 🔴 下单可靠性、资金币种和推送过滤修复¶
建议所有 v1.4.104 用户升级。
- 下单接口等待交易确认后再向客户端暴露订单,并加入短时间重复提交保护,降低重试导致的误下单风险。
/api/funds对不支持的币种返回结构化InvalidCurrency错误,并列出该账户支持的币种。- 多市场综合账户识别更稳健,避免账户元数据漂移时误降级为单币种账户。
/api/static-info拒绝显式空列表输入,避免误触发大范围查询。- REST WebSocket、原生 TCP、gRPC 和 MCP 的交易推送统一执行账户和市场白名单过滤。
- 解锁交易、gRPC 权限错误和资金币种错误的客户端提示已脱敏。