跳到正文
← 使用教程

Arcus订单已取消为何仍有成交?核子账户、filledSize与历史时间

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

用原orders/fills材料区分取消余量、实际成交和微秒分页,不把ACK当最终状态。

开始前准备

  • 准备本人原订单orderId/clientId、钱包address/accountIndex、市场以及已保存REST/WebSocket回执。
  • 这里只解释Perp既有材料,不创建key、不调用账户API、不下单/撤单;OpenAPI1.0.0与所读生产changelog版本分别记录。

1. 先核wallet与accountIndex

账户由address+accountIndex组成;省略index读接口默认0,0到9的余额、订单和费率成交量分开。子账户不是cross/isolated margin的替代,Web尚未显示该API能力,不猜图形入口。

检查结果:原钱包、index、接口和环境已定,未知字段保留。

2. 以订单ID关联真实生命周期

原POST的202或200回执不要直接当最终成交;保存orders事件及orderId/clientId后再核历史行。REST status过滤匹配当前状态,不查曾经状态;status拼错应看400错误,不能把它当空结果。

检查结果:请求回执与当前订单状态分开,错误响应未按零订单处理。

3. 取消后查看filledSize而非只看标签

CANCELED可能此前部分成交。原filledSize=originalSize−remainingSize,avgFillPrice在有成交时才应出现;再以orderId对照fills的tradeId、size/price/MAKER或TAKER。历史旧行可能缺后来新增字段,不填0或反推未成交。

检查结果:同订单成交量与取消余量分别核,fill去重后不重复算。

4. 核updatedAt与createdAt的窗口

orders按updatedAt、fills按createdAt过滤,from/to都是epoch微秒。边界包含整微秒,分页会重叠,按ID去重;total只数本页,最多1000行不是全历史。时间/market/status过滤覆盖不全时不能宣称无其他成交。

检查结果:记录窗口、时间字段、单位、分页与去重规则。

怎样确认完成

  • 能说明同orderId的实际成交和未执行余量,历史覆盖和字段缺口有界限。
  • documentation:未验收账户/接口或交易。

常见错误与边界

  • 静态API例子不是本人或实时数据。
  • 文档全局认证概述与具体GET no-auth措辞有差异;教程不靠建立凭据或请求来解决,先保留原版本。

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