新建条件单
接口描述
创建一个 Binance 兼容的条件单(algo 单)。支持止盈、止损和跟踪止损等多种类型,由 ZTDX 的触发单引擎提供支持。
HTTP请求
POST /fapi/v1/algoOrder (HMAC SHA256)
请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| algoType | ENUM | NO | CONDITIONAL(仅接受此值) |
| symbol | STRING | YES | 交易对 |
| side | ENUM | YES | BUY, SELL |
| positionSide | ENUM | NO | 必须为 BOTH —— ZTDX 仅支持单向持仓模式 |
| type | ENUM | YES | STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET |
| timeInForce | ENUM | NO | GTC(默认), GTD。其他值被接受但视为 GTC |
| quantity | DECIMAL | NO | 基础资产数量。除非 closePosition=true,否则必填。内部会换算为 USD 名义规模(quantity × 参考价,参考价为 triggerPrice,TRAILING_STOP_MARKET 则为 activatePrice / 标记价)—— 见下方响应说明。 |
| price | DECIMAL | NO | 限价价格;对于 STOP 和 TAKE_PROFIT 必填 |
| triggerPrice / stopPrice | DECIMAL | YES(除 TRAILING_STOP_MARKET 外) | 触发价格 |
| workingType | ENUM | NO | MARK_PRICE, CONTRACT_PRICE(默认) |
| closePosition | BOOL/STRING | NO | true 时 在触发时平掉整个仓位。与 quantity 和 reduceOnly 互斥。仅对 STOP_MARKET / TAKE_PROFIT_MARKET 有效。 |
| priceProtect | BOOL/STRING | NO | 接受,v1 版本无效果 |
| reduceOnly | BOOL/STRING | NO | true 时使触发订单仅减仓 |
| activatePrice | DECIMAL | NO | 跟踪止损激活价格。默认为当前标记价格 |
| callbackRate | DECIMAL | YES(对于 TRAILING_STOP_MARKET) | 跟踪回调比例,范围 [0.1, 10](百分比) |
| clientAlgoId | STRING | NO | 用户自定义 ID |
| newOrderRespType | ENUM | NO | ACK, RESULT。默认 ACK |
| goodTillDate | LONG | YES(若 timeInForce=GTD) | 自动撤销时间戳(ms)。必须 ≥ 当前时间 + 600s |
| recvWindow | LONG | NO | 接受但被忽略 —— 服务端固定执行 ±60 秒的时间戳窗口 |
| timestamp | LONG | YES | 请求时间戳(ms) |
响应示例
{
"algoId": 12345,
"clientAlgoId": "myStopLoss-001",
"algoType": "CONDITIONAL",
"orderType": "STOP_MARKET",
"symbol": "BTCUSDT",
"side": "SELL",
"positionSide": "BOTH",
"timeInForce": "GTC",
"quantity": "600",
"algoStatus": "NEW",
"triggerPrice": "60000",
"price": "0",
"closePosition": false,
"priceProtect": false,
"reduceOnly": true,
"activatePrice": null,
"callbackRate": null,
"workingType": "CONTRACT_PRICE",
"createTime": 1716000000000,
"updateTime": 1716000000000,
"triggerTime": 0,
"goodTillDate": 0
}
关于
quantity的说明: 响应中报告的是订单的 USD 名义规模 (请求 quantity × 参考价),不是提交时的基础资产数量。上例中, 以quantity=0.01、triggerPrice=60000提交的请求返回"quantity": "600"。
错误
| 代码 | 原因 |
|---|---|
| -1100 | 无效的数值(如负数价格、callbackRate 超出范围) |
| -1102 | 缺少必需参数 |
| -1106 | quantity / closePosition / reduceOnly 组合无效 |
| -1121 | 交易对不存在 |
| -1130 | 不支持的 type / side / positionSide |
| -2010 | 达到用户 / 仓位维度的条件单数量限制 |
没有立即触发拒绝: 与
POST /fapi/v1/order不同,本接口不会 预检提交时触发条件是否已被满足。triggerPrice已经命中的订单会被 正常接受,并在下一个价格 tick 触发 —— 不会返回-2021。