永续合约订单原因代码
当下单表单提示订单"将被拒绝"时,它引用的是一个原因代码。在您签名前的实时检查(即预览)和实际提交中返回的都是同一个代码,因此表单显示的结果就是服务器将要执行的结果。
表单如何使用原因代码:
- 阻止类代码会将提交按钮替换为原因提示(例如
Not enough margin),直到您修改订单。 - 刷新类代码(
stale_position_snapshot、venue_risk_unavailable)会自动重新检查,且永远不会禁用按钮。 - 重试并阻止类代码(
price_unavailable、account_health_unavailable)同样会自动重新检查,但在检查通过前会禁用按钮。 - 预览失败永远不会阻止您。 如果无法访问预览,表单不会显示任何数值,您仍然可以提交。提交时仍会执行实际检查。
invalid_order、engine_rejected以及任何未知代码会阻止提交,并原样显示服务器返回的消息,因为该消息会指出未通过的字段或规则。
API 用户可在 POST /v1/tee-perp/preview 以及订单、批量订单和杠杆提交响应的 reasonCode 中获得相同的值。人类可读的文本(预览中的 reason,提交响应中的 message)仅用于诊断;请根据代码进行分支处理。
保证金与持仓
| 代码 | 含义 | 处理方法 |
|---|---|---|
insufficient_margin | 在此订单(以及所有未成交的永续合约订单)成交后,您的账户将无法满足其保证金要求。该要求取 Hypercall 组合保证金与 Hyperliquid 保证金中较严格者。 | 使用表单显示的卡片:Use max(可通过的最大规模)、Raise to N×(可通过的最小杠杆)或 Deposit(存入差额)。撤销挂单同样可以释放保证金。 |
reduce_only_exceeds_position | 只减仓订单会扩大或反转您的持仓,而不是减少持仓。 | 将规模设置为不超过您的未平仓持仓(表单提供 Use position),或关闭只减仓。 |
mode_change_with_position | 您尝试在持有仓位的市场上切换全仓与逐仓模式。Hyperliquid 同样不允许此操作。 | 保持当前模式,或平仓后再切换。 |
leverage_requires_flat_account | 由于账户存在未平仓的永续合约持仓或待处理的永续合约订单,杠杆调整被拒绝。这仅发生在 Hypercall 未将 Hyperliquid 强制平仓风险计入保证金的环境中;生产环境会计入该风险,因此生产环境不会返回此代码。 | 平仓并撤销永续合约订单,然后再调整杠杆。 |
liquidation_pending | 账户处于预清算状态,完整清算即将开始。Hypercall 拒绝该账户的新永续合约订单。 | 等待清算完成。参见强制平仓。 |
账户设置
| 代码 | 含义 | 处理方法 |
|---|---|---|
account_not_pm | 永续合约订单需要组合保证金账户。 | 在您的账户页面开启组合保证金,然后重试。 |
unified_mode_required | 增加风险的订单要求交易账户启用 Hyperliquid 统一账户模式。 | 在表单中点击 Enable unified mode。 |
builder_not_approved | Hyperliquid 拒绝了该订单,因为账户尚未批准 Hypercall 的 builder 地址。此代码由 Hyperliquid 在提交时返回,而非来自预览;API 用户会在提交响应的 errorCode 而非 reasonCode 中看到它。 | 点击一次 Enable trading。参见 Hypercall 永续合约。 |
account_health_unavailable | Hypercall 当前无法读取账户的保证金健康状况,因此拒绝任何增加风险的操作。 | 表单会自动重新检查。在此期间如需降低风险,请开启 Reduce only 后发送订单。 |
市场与数据
| 代码 | 含义 | 处理方法 |
|---|---|---|
market_not_supported | 该市场不在 Hypercall 可进行风险计算的范围内。它需要价格源、保证金情景网格以及适用于您账户的 USDC 保证金 Hyperliquid 费率表。 | 选择一个支持的市场。 |
trading_halted | 交易已暂停,可能是全局暂停,也可能仅针对该市场。 | 请等待。在交易恢复前,表单会保持按钮禁用。 |
price_unavailable | Hypercall 用于为该市场估值的价格缺失或已过时。 | 表单会自动重新检查。Hypercall 不会猜测价格,因此在获得新价格前会一直拒绝。 |
stale_position_snapshot | 您最新的 Hyperliquid 持仓或权益读数缺失或过旧。 | 无需操作。表单会自动重新检查一次。如果问题持续,请刷新页面。 |
venue_risk_unavailable | Hyperliquid 风险读数(杠杆、强制平仓价格、每个持仓的抵押品)缺失,或与您最新的持仓读数不一致。 | 无需操作。表单会自动重新检查一次。 |
订单条款
| 代码 | 含义 | 处理方法 |
|---|---|---|
invalid_order | 订单条款无效:价格或规模精度错误、TP/SL 括号单格式错误,或客户端订单 ID 无效。 | 修正价格最小变动单位或规模步长后重新提交。 |
action_not_supported | 签名 enclave 的策略不允许此类操作。如果该情况发生在表单提供的订单类型上,表单会将该类型标记为未启用。 | 使用支持的订单类型。 |
engine_rejected | 其他任何拒绝情况。reason 文本中包含确切原因。 | 阅读该消息。如果不清楚,请携带消息文本联系支持团队。 |