下条件单 (TRADE)
接口描述
下条件单
HTTP请求
POST /fapi/v1/algoOrder
请求权重
IP rate limit(x-mbx-used-weight-1m)为0
请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| algoType | ENUM | YES | 仅支持 CONDITIONAL |
| symbol | STRING | YES | 交易对 |
| side | ENUM | YES | 买卖方向 SELL, BUY |
| positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
| type | ENUM | YES | 条件订单类型 STOP, TAKE_PROFIT, STOP_MARKET, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET |
| timeInForce | ENUM | NO | IOC or GTC or FOK, 默认 GTC |
| quantity | DECIMAL | NO | 下单数量,使用closePosition不支持此参数。 |
| price | DECIMAL | NO | 委托价格 |
| triggerPrice | DECIMAL | NO | 触发价 |
| workingType | ENUM | NO | 触发类型: MARK_PRICE(标记价格), CONTRACT_PRICE(合约最新价). 默认 CONTRACT_PRICE |
| priceMatch | ENUM | NO | OPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20/QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20;不能与price同时传 |
| closePosition | STRING | NO | true, false;触发后全部平仓,仅支持STOP_MARKET和TAKE_PROFIT_MARKET;不与quantity合用;自带只平仓效果,不与reduceOnly 合用 |
| priceProtect | STRING | NO | 条件单触发保护:"TRUE","FALSE", 默认"FALSE". |
| reduceOnly | STRING | NO | true, false; 非双开模式下默认false;双开模式下不接受此参数; 使用closePosition不支持此参数。 |
| activationPrice | DECIMAL | NO | 追踪止损激活价格,仅TRAILING_STOP_MARKET 需要此参数, 默认为下单当前市场价格(支持不同workingType) |
| callbackRate | DECIMAL | NO | 追 踪止损回调比例,可取值范围[0.1, 10],其中 1代表1% ,仅TRAILING_STOP_MARKET 需要此参数 |
| clientAlgoId | STRING | NO | 用户自定义的条件订单号,不可以重复出现在挂单中。如空缺系统会自动赋值。必须满足正则规则 ^[\.A-Z\:/a-z0-9_-]{1,36}$ |
| newOrderRespType | ENUM | NO | "ACK", "RESULT", 默认 "ACK" |
| selfTradePreventionMode | ENUM | NO | EXPIRE_TAKER/ EXPIRE_MAKER/ EXPIRE_BOTH; 默认NONE |
| goodTillDate | LONG | NO | TIF为GTD时订单的自动取消时间, 当timeInforce为GTD时必传;传入的时间戳仅保留秒级精度,毫秒级部分会被自动忽略,时间戳需大于当前时间+600s且小于253402300799000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
条件单的触发必须:
- 如果订单参数
priceProtect为true:
- 达到触发价时,
MARK_PRICE(标记价格)与CONTRACT_PRICE(合约最新价)之间的价差不能超过改symbol触发保护阈值- 触发保护阈值请参考接口
GET /fapi/v1/exchangeInfo返回内容相应symbol中"triggerProtect"字段STOP,STOP_MARKET止损单:
- 买入: 最新合约价格/标记价格高于等于触发价
stopPrice- 卖出: 最新合约价格/标记价格低于等于触发价
stopPriceTAKE_PROFIT,TAKE_PROFIT_MARKET止盈单:
- 买入: 最新合约价格/标记价格低于等于触发价
stopPrice- 卖出: 最新合约价格/标记价格高于等于触发价
stopPriceTRAILING_STOP_MARKET跟踪止损单:
- 买入: 当合约价格/标记价格区间最低价格低于激活价格
activationPrice,且最新合约价格/标记价高于等于最低价设定回调幅度。- 卖出: 当合约价格/标记价格区间最高价格高于激活价格
activationPrice,且最新合约价格/标记价低于等于最高价设定回调幅度。
TRAILING_STOP_MARKET跟踪止损单如果遇到报错{"code": -2021, "msg": "Order would immediately trigger."}
表示订单不满足以下条件:
- 买入: 指定的
activationPrice必须小于 latest price- 卖出: 指定的
activationPrice必须大于 latest price
STOP_MARKET,TAKE_PROFIT_MARKET配合closePosition=true:
- 条件单触发依照上述条件单触发逻辑
- 条件触发后,平掉当时持有所有多头仓位(若为卖单)或当时持有所有空头仓位(若为买单)
- 不支持
quantity参数- 自带只平仓属性,不支持
reduceOnly参数- 双开模式下,
LONG方向上不支持BUY;SHORT方向上不支持SELL
selfTradePreventionMode仅在timeInForce为IOC或GTC或GTD时生效.
响应示例
{
"algoId": 2146760,
"clientAlgoId": "6B2I9XVcJpCjqPAJ4YoFX7",
"algoType": "CONDITIONAL",
"orderType": "TAKE_PROFIT",
"symbol": "BNBUSDT",
"side": "SELL",
"positionSide": "BOTH",
"timeInForce": "GTC",
"quantity": "0.01",
"algoStatus": "NEW",
"triggerPrice": "750.000",
"price": "750.000",
"icebergQuantity": null,
"selfTradePreventionMode": "EXPIRE_MAKER",
"workingType": "CONTRACT_PRICE",
"priceMatch": "NONE",
"closePosition": false,
"priceProtect": false,
"reduceOnly": false,
"activatePrice": "", //TRAILING_STOP_MARKET order
"callbackRate": "", //TRAILING_STOP_MARKET order
"createTime": 1750485492076,
"updateTime": 1750485492076,
"triggerTime": 0,
"goodTillDate": 0
}