跳转到主要内容

创建新订单

POST 

/api/v1/order

下单

此端点用于下单。有关各字段的更多使用说明,请参见下文。

订单类型

所有订单都需要 symbol。除非另有说明,其他字段均为可选。

以下为有效的 ordType

  • Limit:默认订单类型。指定 orderQtyprice
  • Market:传统的市价单。市价单将持续执行,直到完全成交或达到您的破产价格,此时将被取消。
  • Stop:止损市价单。指定 orderQtystopPx。当达到 stopPx 时,订单将被提交到订单簿。
    • 对于卖单,当触发价格低于 stopPx 时触发;对于买单,则为高于。
    • 注意:止损单在触发前不会占用保证金。请确保账户中有足够的保证金以便完全触发。
    • Close 止损单不需要 orderQty。参见下方执行指令。
  • StopLimit:类似止损市价单,但触发后提交的是限价单。指定 orderQtystopPxprice
  • MarketIfTouched:类似 Stop,但触发方向相反。适用于止盈订单。
  • LimitIfTouched:同上;用于止盈限价单。
  • Pegged:锚定订单允许用户基于当前市场价格提交相对的限价。指定 pegPriceTypepegOffsetValue
    • 锚定订单必须设置 execInstFixed。这意味着限价在订单被接受时确定,不会随参考价格变化而改变。
    • PrimaryPeg:价格相对于近端最优价设置。
    • MarketPeg:价格相对于远端最优价设置。
    • 提交了 pegPriceType 但未提供 ordType 时,将视为 Pegged 订单。

执行指令

支持以下 execInst。如使用多个,请用逗号分隔(例如 LastPrice,Close)。

  • ParticipateDoNotInitiate:也称为仅限挂单(Post-Only)。如果该订单在提交时会立即成交,则会被取消。 该机制旨在防止订单在传输过程中远端最优价向您移动而导致吃单。 不用于在提交后押注远端最优价远离的行为——此类行为被视为滥用并会被监控。
  • MarkPrice, LastPrice, IndexPrice:用于止损及 if-touched 订单以确定触发价格。 仅可使用一个。默认使用 MarkPrice(标记价格)。同时也用于锚定订单定义 LastPeg 的值。IndexPrice 不适用于现货交易品种。
  • ReduceOnlyReduceOnly 订单只能减少仓位,不能增加仓位。如果一个 ReduceOnly 限价单在订单簿中挂单期间仓位被其他订单减少,其订单数量将被下调或取消。如存在多个 ReduceOnly 订单,则最不激进的会优先被调整。不适用于现货交易品种。
  • CloseClose 等同于包含 ReduceOnly。当未平仓数量超过当前仓位时,Close 订单会取消同方向同品种的其他活动限价单。这对于止损很有用:通过取消这些订单,Close 止损单可确保具备执行所需的保证金,并且最多只会执行到您的全部仓位规模。如果未指定 orderQtyClose 订单的数量等于当前仓位规模。不适用于现货交易品种。
    • 注意:未指定 orderQtyClose 订单需要提供 side,以便 BitMEX 判断是在 stopPx 上方还是下方触发。
  • LastWithinMark:与使用 LastPrice(最新价)的止损单一起使用,仅在以下条件满足时允许触发:
    • 对于卖出止损市价 / 止损限价单
      • 最新价 < 止损价
      • 最新价 >= 标记价格 × (1 - 5%)
    • 对于买入止损市价 / 止损限价单:
      • 最新价 >= 止损价
      • 最新价 < 标记价格 × (1 + 5%)
    • 不适用于现货交易品种。
  • Fixed:锚定订单必须设置 execInstFixed。这意味着限价在订单被接受时确定,不会随参考价格变化而改变。

锚定订单

锚定订单允许用户基于当前市场价格提交相对的限价。 限价在订单提交时一次性确定,不会随参考价格变化而改变。 该订单类型不用于在提交后押注远端最优价远离的行为——此类行为被视为滥用并会被监控。

锚定订单的 ordTypePegged,且 execInstFixed

还必须提交 pegPriceTypepegOffsetValue

  • PrimaryPeg - 价格相对于近端最优价设置
  • MarketPeg - 价格相对于远端最优价设置

追踪止损锚定订单

使用 pegPriceTypeTrailingStopPeg 来创建追踪止损。

价格在提交时设定,并且当标的价格(最新价/标记价格/指数价格)变动超过 0.1% 时每秒更新一次。随后 stopPx 会在市场远离锚点时移动,在市场向锚点靠近时冻结。

使用 pegOffsetValue 设置订单的 stopPx。锚点基于 execInst 指定的触发价格(默认 MarkPrice)。对于止损卖单和买入 if-touched 订单,请使用负偏移。

需要 ordTypeStopStopLimitMarketIfTouchedLimitIfTouched

关联订单

关联订单是一项高级功能,功能强大,但使用时需要谨慎编码和测试。 开发时请严格遵循本文档,并使用 Testnet Exchange

BitMEX 提供四种高级关联订单类型:

  • OCOOne Cancels the Other。对标准止损/止盈策略的灵活扩展。 可使用单个 clOrdLinkID 关联多个订单。在订单中发送 contingencyTypeOneCancelsTheOther。首个完全或部分执行(或对 Stop 订单为触发)的订单将取消所有具有相同 clOrdLinkID 的其他订单。
  • OTOOne Triggers the Other。在主订单上发送 contingencyType'OneTriggersTheOther',具有相同 clOrdLinkID 的后续订单将在主订单完全执行之前不会被触发。

追踪止损

您可以使用 pegPriceType'TrailingStopPeg' 来创建追踪止损。锚定的 stopPx 将在市场远离锚点时移动,在市场向锚点靠近时冻结。

使用时,结合 pegOffsetValue 设置订单的 stopPx。锚点基于 execInst 指定的触发价格(默认 'MarkPrice')。对于止损卖单和买入 if-touched 订单,请使用负偏移。

需要 ordType'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'

速率限制

您可以通过使用 Amend 端点(PUT /order)来在不超过速率限制的情况下提高对市场变化的响应能力。这使您能够保持在市场中,避免取消/替换循环。

跟踪您的订单

如果您希望自行跟踪订单 ID,请为每个订单设置唯一的 clOrdID。 该 clOrdID 将作为订单及相关执行(包括 WebSocket)中的属性返回,并可用于查询或取消订单。最大长度为 36 个字符。

您还可以通过修改订单来更改 clOrdID,提供 origClOrdID,并将新的 ID 作为 clOrdID 参数,例如:

# 修改订单的 leavesQty,并将其 clOrdID 更新为 "def-456"
PUT /api/v1/order {"origClOrdID": "abc-123", "clOrdID": "def-456", "leavesQty": 1000}

Request

Responses