跳到正文
← 使用教程

Hyperliquid订单显示取消却有成交:核oid、部分填单和真实费用

链小知 · 进阶 · 核验 · 依官方文档整理

按原订单与逐笔fills核对资产命名、剩余量、错误及费用,避免重复加builderFee或把前端PnL当资金结果。

开始前准备

  • 准备已有订单/交易历史或本人导出:主网/测试网、实际账户/子账户、market/DEX、oid或cloid、origSz/sz、订单属性、状态时间、逐笔fills和费用币种。
  • 只对照官方静态方法与既有结果,未请求userFills/orderStatus等业务方法、签名或重发。缺元数据时不从示例资产ID、精度或费率推当前配置。

1. 先把Spot、Perp和HIP-3身份分开

核原coin及market元数据。HIP-3名称是{dex}:{coin},如xyz:XYZ100;Spot fills可能是@107,Spot pair index与token ID不同,主网与测试网也不同。把同名ETH或USDC下的不同市场合并,会同时弄错成交和费用。

普通Perp/Spot方法不能自动套HIP-4:Outcome有#encoding、+encoding和独立asset表示,历史还可能分别返回primary/dual订单。本教程先限定普通Spot/Perp/HIP-3;如果原记录是Outcome,保留原命名并按该产品规则另核。

检查结果:账户、网络、DEX、市场类型和资产namespace明确,未用token ID代替订单市场ID。

2. 从状态对象找对订单键和时间

对已有orderStatus结果,先区分外层status=order与unknownOid;有订单时再看内层order.status和order.order中的oid、cloid、origSz、sz、tif、reduceOnly等。unknownOid不是filled或失败终态,先核账户与ID是否对应。

oid允许u64,cloid是16字节十六进制客户键;保留原整数/字符串,不用浮点缩短大ID。timestamp、statusTimestamp以及fills.time为毫秒,不能按秒直接与网页时间比较;还要核同一次状态读数,而非另一订单的截图。

检查结果:外层查找结果、内层业务状态、完整ID及毫秒时间分开,缺订单未造状态。

3. 把剩余订单量与逐笔成交合起来看

原订单origSz是原数量,sz是该记录时点的剩余数量。将对应oid的fills按tid和时间整理,使用每笔px与sz核执行金额,不把订单limitPx乘原总量当已成交;部分成交后取消剩余量仍可能留下真实仓位/现货余额变化。

userFills文档仅最多2000条,ByTime每次2000且只有最近10000条可得;aggregateByTime还会合并部分填单。缺历史或截断不能证从未成交。对聚合与逐笔导出不要重复相加,无法完整对齐时注明还差哪些时间段或成交。

检查结果:同oid成交、剩余量和取消范围可解释,聚合/截断未被误当零成交。

4. 按原属性定位拒单或取消原因

核tif和reduceOnly:ALO只挂单,立即交叉可能BadAloPx;IOC若不能立即匹配可能IocCancel;ReduceOnly会限制增加或反向仓位。原错误表里的Tick/PerpMargin/InsufficientSpotBalance与orderStatus里的tickRejected等是不同字段,原样保留后再对照含义。

价格最多5个有效数字且受6(Perp)/8(Spot)−szDecimals的小数限制,整数有例外;数量用该市场szDecimals,不用ERC20 decimals。batch预验证可能整批只返回一个error,不能把缺的逐单项补成功或为排错改下限重发。

检查结果:原属性、精度、错误字段和批次范围相符,拒单与成交后取消没有混同。

5. 核逐笔费用,别再加一次builderFee

每笔fill保留fee和feeToken;文档明确fee已经包含builderFee,builderFee为0时可以不出现。它缺失不代表整笔手续费为0。费用与成交金额同币种后再比较,maker返佣按原带符号记录核,不从订单写Limit就假定全部为maker。

费档按14日加权量=Perp量+2×Spot量、每日UTC评估;主/子同档,vault单独。Spot/Perp表、HIP-3 deployer/growth、AQA和质押折扣均影响适用率。Funding与Gas另列,没有原费档/币种/额外费配置时不硬套基准0.045%。

检查结果:实际fee、币种、builder包含关系与适用费档可追溯,未重复扣费或误用常见基准。

6. 以成交和账户账务结案

对同一时间范围核Spot实际资产余额,或Perp仓位数量/方向与margin变化。官方说明entry price、unrealized和closed PnL是前端便利计算,基础账务是margin/Spot余额及trades;Spot转账也可能赋成本价,不能拿一条PnL显示证明充值收益或净收款。

结论应写为未找到订单、拒单、未成交挂单、部分成交后取消或已完整成交,并列实际费用与缺口。HIP-4初始零费文字与当前Fees关闭/结算计费并存,若误选该产品不要用普通费表或零费结论结案。

检查结果:订单状态、真实成交、余额/仓位及费用可对应,前端PnL和计划执行量未当实际资金结果。

怎样确认完成

  • 原oid/市场/属性、成交与剩余量、费用币种和仓位或余额结果能复查。
  • 全部documentation;未获取实时订单、费档、元数据或账户,材料不全不能宣称实测成交/收益。

常见错误与边界

  • 订单不在openOrders列表不等已成交;unknownOid与历史截断也不等未发生交易。
  • fee已含builderFee;价格/数量精度与token小数不同,不能整批缺失项补成功。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据