下达策略订单
POST🔒 Trading
下达算法(策略)订单。支持的 orderType 类型:OCO、TRAILING、CONDITIONAL、TWAP 和 PEG;每种类型都有各自的必填字段。
请求头
| 名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| BROKER-ID | String | 否 | 可选的经纪商/合作方标识符,用于标记通过其下达的订单 |
请求体
Conditional
| 名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| orderType | String | 是 | 订单类型。此类型必须为 CONDITIONAL。 — LIMIT · MARKET · OCO · TWAP · PEG · CONDITIONAL · TRAILING |
| clOrderId | String | 否 | 用于跟踪和幂等性的客户端分配订单标识符。 |
| symbol | String | 是 | 交易对。 |
| orderSide | String | 是 | 订单方向:BUY 或 SELL。 |
| orderSize | Long | 是 | 订单数量(合约张数)。 |
| positionMode | String | 否 | 此订单适用的仓位模式(单向或对冲)。 — ONE_WAY · HEDGE · ISOLATED |
| timeInForce | String | 否 | 订单触发后应用的有效期策略。 — FOK · GTC · IOC · HALFSEC · HALFMIN · FIVEMIN · HOUR · TWELVEHOUR · DAY · WEEK · MONTH |
| reduceOnly | Boolean | 否 | 若为 true,该订单只能减少现有仓位,不能开仓或加仓。 |
| postOnly | Boolean | 否 | 若为 true,当触发后的订单会吃单(消耗流动性)时将被拒绝,确保仅作为 maker 成交。 |
| orderPrice | Double | 否 | 订单触发后 使用的限价。市价式触发时省略。 |
| triggerPrice | Double | 否 | 订单转为激活状态的价格。 |
| triggerType | String | 否 | 用于评估触发的参考价格类型。 — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
| takeProfitTriggerType | String | 否 | 用于评估止盈触发的参考价格类型。 — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
| stopLossTriggerType | String | 否 | 用于评估止损触发的参考价格类型。 — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
| takeProfitTriggerPrice | Double | 否 | 附加到最终订单上的止盈触发价格。 |
| stopLossTriggerPrice | Double | 否 | 附加到最终订单上的止损触发价格。 |
OcO
| 名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| orderType | String | 是 | 订单类型。此类型必须为 OCO。 — LIMIT · MARKET · OCO · TWAP · PEG · CONDITIONAL · TRAILING |
| clOrderId | String | 否 | 用于跟踪和幂等性的客户端分配订单标识符。 |
| symbol | String | 是 | 交易对。 |
| orderSide | String | 是 | 订单方向:BUY 或 SELL。 |
| orderSize | Long | 是 | 订单数量(合约张数)。 |
| positionMode | String | 否 | 此订单适用的仓位模式(单向或对冲)。 — ONE_WAY · HEDGE · ISOLATED |
| timeInForce | String | 否 | 触发后应用于每一分支的有效期策略。 — FOK · GTC · IOC · HALFSEC · HALFMIN · FIVEMIN · HOUR · TWELVEHOUR · DAY · WEEK · MONTH |
| reduceOnly | Boolean | 否 | 若为 true,两个分支都只能减少现有仓位。 |
| postOnly | Boolean | 否 | 若为 true,当任一分支会吃单(消耗流动性)时将被拒绝,确保仅作为 maker 成交。 |
| takeProfitOrderPrice | Double | 是 | 止盈分支的限价。 |
| stopLossOrderPrice | Double | 是 | 触发后止损分支的限价。 |
| stopLossTriggerPrice | Double | 是 | 触发止损分支的价格。 |
| stopLossTriggerType | String | 否 | 用于评估止损触发的参考价格类型。 — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
Peg
| 名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| orderType | String | 是 | 订单类型。此类型必须为 PEG。 — LIMIT · MARKET · OCO · TWAP · PEG · CONDITIONAL · TRAILING |
| clOrderId | String | 否 | 用于跟踪和幂等性的客户端分配订单标识符。 |
| symbol | String | 是 | 交易对。 |
| orderSide | String | 是 | 订单方向:BUY 或 SELL。 |
| orderSize | Long | 是 | 订单数量(合约张数)。 |
| positionMode | String | 否 | 此订单适用的仓位模式(单向或对冲)。 — ONE_WAY · HEDGE · ISOLATED |
| orderPrice | Double | 否 | 可选的最差价格限制;挂钩价格不会越过此边界。 |
| deviation | Double | 是 | 应用于挂钩参考价格的偏移量。 |
| stealth | Double | 是 | 在订单簿上显示的订单数量比例;其余部分被隐藏。 |
Trailing
| 名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| orderType | String | 是 | 订单类型。此类型必须为 TRAILING。 — LIMIT · MARKET · OCO · TWAP · PEG · CONDITIONAL · TRAILING |
| clOrderId | String | 否 | 用于跟踪和幂等性的客户端分配订单标识符。 |
| symbol | String | 是 | 交易对。 |
| orderSide | String | 是 | 订单方向:BUY 或 SELL。 |
| orderSize | Long | 是 | 订单数量(合约张数)。 |
| positionMode | String | 否 | 此订单适用的仓位模式(单向或对冲)。 — ONE_WAY · HEDGE · ISOLATED |
| reduceOnly | Boolean | 否 | 若为 true,该订单只能减少现有仓位,不能开仓或加仓。 |
| trailValue | Double | 是 | 止损价格相对于所达到的最优参考价格保持的跟踪距离。 |
| trailValueType | String | 是 | trailValue 的解释方式(绝对价格偏移或百分比)。 — DISTANCE · PERCENTAGE |
| trailTriggerPriceType | String | 是 | 用于评估跟踪触发的参考价格类型。 — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
| activationTriggerPrice | Double | 否 | 跟踪逻辑开始生效的可选价格。在达到此价格之前,跟踪处于非激活状态。 |
| activationTriggerType | String | 否 | 用于评估激活价格的参考价格类型。 — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
Twap
| 名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| orderType | String | 是 | 订单类型。此类型必须为 TWAP。 — LIMIT · MARKET · OCO · TWAP · PEG · CONDITIONAL · TRAILING |
| clOrderId | String | 否 | 用于跟踪和幂等性的客户端分配订单标识符。 |
| symbol | String | 是 | 交易对。 |
| orderSide | String | 是 | 订单方向:BUY 或 SELL。 |
| orderSize | Long | 是 | 订单总数量(合约张数),分配到各子订单中。 |
| reduceOnly | Boolean | 否 | 若为 true,该订单只能减少现有仓位,不能开仓或加仓。 |
| timePeriod | Long | 否 | 分发子订单的总执行窗口,单位为秒。 |
| randomizeSize | Boolean | 否 | 若为 true,各子订单数量将在限度内随机化,以降低可预测性。 |
| subTwapMaxOrderSize | Double | 否 | 每个子订单的最大数量。 |
| maxSpread | Double | 否 | 可接受的最大买卖价差。当价差更宽时,子订单将暂停。 |
| makerFirst | Boolean | 否 | 若为 true,子订单优先以 maker 成交,然后再回退到 taker 行为。 |
| maxDistanceThroughBook | Double | 否 | 子订单可穿越进入订单簿的最大距离。 |
| pausePrice | Double | 否 | 超过该参考价格后,TWAP 计划将暂停以避免不利成交。 |
| activationTriggerPrice | Double | 否 | TWAP 计划开始执行的可选价格。在达到此价格之前处于非激活状态。 |
| activationTriggerType | String | 否 | 用于评估激活价格的参考价格类型。 — INDEX_PRICE · LAST_PRICE · MARK_PRICE |
响应内容
| 名称 | 类型 | 描述 |
|---|---|---|
| status | Integer | 本次下单返回的订单状态码。 |
| type | Integer | 订单类型代码。 |
| symbol | String | 交易对。 |
| postOnly | Boolean | 若订单被接受为仅 maker,则为 true。 |
| orderSide | String | 订单方向:BUY 或 SELL。 |
| orderId | String | 服务器分配的订单 ID。 |
| clOrderID | String | 从请求中回传的客户端分配订单 ID。 |
| timestamp | Long | 下单的服务器时间戳,单位为自 epoch 起的毫秒数。 |
| price | Double | 随订单提交的限价。 |
| avgFilledPrice | Double | 迄今为止各笔成交的平均成交价。若尚无成交则为零。 |
| message | String | 平台返回的可读消息(例如拒绝原因)。 |
| originalOrderSize | Long | 提交时的原始订单数量(合约张数)。 |
| currentOrderSize | Long | 成交或修改后的当前剩余订单数量。 |
| filledSize | Long | 最近一次撮合的成交数量(合约张数)。 |
| totalFilledSize | Long | 所有撮合的累计成交数量(合约张数)。 |
| remainingSize | Long | 剩余未成交数量(合约张数)。 |
| positionMode | String | 此订单适用的仓位模式(单向或对冲)。 — ONE_WAY · HEDGE · ISOLATED |
| positionDirection | String | 订单将影响的仓位方向:LONG 或 SHORT。 |
| positionId | String | 订单所绑定仓位的标识符。 |
| timeInForce | String | 应用于订单的有效期策略(例如 GTC、IOC、FOK)。 |
example
POST
https://api.btse.com/futures/api/v3/trade/orders/algoRequest (Conditional)
{
"symbol": "BTC-PERP",
"orderType": "CONDITIONAL",
"orderSide": "SELL",
"orderSize": 1,
"reduceOnly": true,
"triggerPrice": 63010.5,
"triggerType": "MARK_PRICE"
}
Request (OCO)
{
"symbol": "BTC-PERP",
"orderType": "OCO",
"orderSide": "SELL",
"orderSize": 1,
"reduceOnly": true,
"takeProfitOrderPrice": 63010.5,
"stopLossOrderPrice": 57009.5,
"stopLossTriggerPrice": 57009.5,
"stopLossTriggerType": "MARK_PRICE"
}
Request (Trailing)
{
"symbol": "BTC-PERP",
"orderType": "TRAILING",
"orderSide": "SELL",
"orderSize": 1,
"reduceOnly": true,
"trailValue": 3000.5,
"trailValueType": "DISTANCE",
"trailTriggerPriceType": "MARK_PRICE",
"activationTriggerPrice": 63010.5,
"activationTriggerType": "MARK_PRICE"
}
Request (Twap)
{
"symbol": "BTC-PERP",
"orderType": "TWAP",
"orderSide": "SELL",
"orderSize": 1,
"reduceOnly": true,
"timePeriod": 3600,
"activationTriggerPrice": 63010.5,
"activationTriggerType": "MARK_PRICE"
}
Request (Peg)
{
"symbol": "BTC-PERP",
"orderType": "PEG",
"orderSide": "BUY",
"orderSize": 1,
"orderPrice": 57009.5,
"deviation": 0,
"stealth": 1
}
Response (Conditional)
{
"status": 9,
"type": 0,
"symbol": "BTC-PERP",
"postOnly": false,
"orderSide": "SELL",
"orderId": "5591478a-c3ed-45b6-a1d4-f14404996d51",
"clOrderID": "",
"timestamp": 1784882344679,
"price": 0,
"avgFilledPrice": 0,
"message": null,
"originalOrderSize": 1,
"currentOrderSize": 1,
"filledSize": 0,
"totalFilledSize": 0,
"remainingSize": 1,
"positionMode": "ONE_WAY",
"positionDirection": null,
"positionId": "BTC-PERP-USDT",
"timeInForce": "GTC"
}
Response (OCO)
{
"status": 2,
"type": 0,
"symbol": "BTC-PERP",
"postOnly": false,
"orderSide": "SELL",
"orderId": "cfb7efd5-59d3-45d1-9eb3-a053d644108a",
"clOrderID": "",
"timestamp": 1784882344747,
"price": 63010.5,
"avgFilledPrice": 0,
"message": null,
"originalOrderSize": 1,
"currentOrderSize": 1,
"filledSize": 0,
"totalFilledSize": 0,
"remainingSize": 1,
"positionMode": "ONE_WAY",
"positionDirection": null,
"positionId": "BTC-PERP-USDT",
"timeInForce": "GTC"
}
Response (Trailing)
{
"status": 9,
"type": 0,
"symbol": "BTC-PERP",
"postOnly": false,
"orderSide": "SELL",
"orderId": "2c6a3aaf-d0c5-46f7-a71d-cda3ffc62cbb",
"clOrderID": "2c6a3aaf-d0c5-46f7-a71d-cda3ffc62cbb",
"timestamp": 1784882344836,
"price": 0,
"avgFilledPrice": 0,
"message": null,
"originalOrderSize": 1,
"currentOrderSize": 1,
"filledSize": 0,
"totalFilledSize": 0,
"remainingSize": 1,
"positionMode": "ONE_WAY",
"positionDirection": null,
"positionId": "BTC-PERP-USDT",
"timeInForce": "GTC"
}
Response (Twap)
{
"status": 9,
"type": 0,
"symbol": "BTC-PERP",
"postOnly": false,
"orderSide": "SELL",
"orderId": "4196fd02-5bd0-48e9-acba-496d88dd64f0",
"clOrderID": "4196fd02-5bd0-48e9-acba-496d88dd64f0",
"timestamp": 1784882344913,
"price": 0,
"avgFilledPrice": 0,
"message": null,
"originalOrderSize": 1,
"currentOrderSize": 1,
"filledSize": 0,
"totalFilledSize": 0,
"remainingSize": 1,
"positionMode": "ONE_WAY",
"positionDirection": null,
"positionId": "BTC-PERP-USDT",
"timeInForce": "GTC"
}
Response (Peg)
{
"status": 2,
"type": 0,
"symbol": "BTC-PERP",
"postOnly": false,
"orderSide": "BUY",
"orderId": "484fd831-8399-4b25-933a-8a5dd111e488",
"clOrderID": "",
"timestamp": 1784882344954,
"price": 57009.5,
"avgFilledPrice": 0,
"message": null,
"originalOrderSize": 1,
"currentOrderSize": 1,
"filledSize": 0,
"totalFilledSize": 0,
"remainingSize": 1,
"positionMode": "ONE_WAY",
"positionDirection": null,
"positionId": "BTC-PERP-USDT",
"timeInForce": "GTC"
}