条件单下单
条件单下单
条件单是指当市场价格达到预设的触发价格时,系统自动下单 的订单类型
限频:每秒 1 次
请求地址
POST /deepcoin/trade/trigger-order
请求参数
| 字段名 | 是否必填 | 类型 | 字段描述 |
|---|---|---|---|
| instId | 是 | string | 产品 ID |
| productGroup | 是 | string | 交易类型 现货: Spot永续: Swap |
| sz | 是 | string | 委托数量 |
| side | 是 | string | 订单方向 买: buy卖: sell |
| posSide | 否 | string | 持仓方向 产品类型为 SWAP 时必填多: long空: short |
| price | 否 | string | 限价单价格 限价单时必填,市价单不需要 |
| isCrossMargin | 是 | string | 是否全仓 逐仓: 0全仓: 1 |
| orderType | 是 | string | 订单价格类型 限价: limit市价: market |
| triggerPrice | 是 | string | 条件单触发价格 当市场价格达到此价格时触发订单 |
| triggerPxType | 否 | string | 触发价类型 最新价: last指数价: index标记价: mark默认: last |
| mrgPosition | 否 | string | 合并仓位 产品类型为 SWAP 时必填合仓: merge分仓: split |
| closePosId | 否 | string | 平仓时指定的持仓ID 支持全仓和分仓模式 |
| tdMode | 是 | string | 交易模式 非保证金: cash全仓: cross逐仓: isolated |
| tpTriggerPx | 否 | number | 止盈触发价 条件单触发开仓后自动设置止盈订单 |
| tpTriggerPxType | 否 | string | 止盈触发价类型 最新价: last指数价: index标记价: mark默认: last |
| tpOrdPx | 否 | number | 止盈委托价-1 表示市价 |
| slTriggerPx | 否 | number | 止损触发价 条件单触发开仓后自动设置止损订单 |
| slTriggerPxType | 否 | string | 止损触发价类型 最新价: last指数价: index标记价: mark默认: last |
| slOrdPx | 否 | number | 止损委托价-1 表示市价 |
请求示例
// 场景1: 全仓合仓,开仓条件单市价
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
IsCrossMargin: "1",
OrderType: "market", // 市价
TriggerPrice: "150000",
MrgPosition: "merge",
TdMode: "cross",
}
// 场景2: 全仓合仓,开仓条件限价单
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
Price: "140000",
IsCrossMargin: "1",
OrderType: "limit", // 限价
TriggerPrice: "150000",
MrgPosition: "merge",
TdMode: "cross",
}
// 场景3: 全仓分仓,开仓条件单市价
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
IsCrossMargin: "1",
OrderType: "market", // 市价
TriggerPrice: "150000",
MrgPosition: "split",
TdMode: "cross",
}
// 场景4: 全仓分仓,开仓条件限价单
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
Price: "140000",
IsCrossMargin: "1",
OrderType: "limit", // 限价
TriggerPrice: "150000",
MrgPosition: "split",
TdMode: "cross",
}
// 场景5: 逐仓合仓,开仓条件单市价
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
IsCrossMargin: "0",
OrderType: "market", // 市价
TriggerPrice: "150000",
MrgPosition: "merge",
TdMode: "isolated",
}
// 场景6: 逐仓合仓,开仓条件限价单
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
Price: "140000",
IsCrossMargin: "0",
OrderType: "limit", // 限价
TriggerPrice: "150000",
MrgPosition: "merge",
TdMode: "isolated",
}
// 场景7: 逐仓分仓,开仓条件 单市价
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
IsCrossMargin: "0",
OrderType: "market", // 市价
TriggerPrice: "150000",
MrgPosition: "split",
TdMode: "isolated",
}
// 场景8: 逐仓分仓,开仓条件限价单
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
Price: "140000",
IsCrossMargin: "0",
OrderType: "limit", // 限价
TriggerPrice: "150000",
MrgPosition: "split",
TdMode: "isolated",
}
// 场景9: 合约条件单,带止盈止损
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
IsCrossMargin: "1",
OrderType: "market",
TriggerPrice: "95000",
TriggerPxType: "last",
MrgPosition: "merge",
TdMode: "cross",
TpTriggerPx: 100000, // 止盈触发价
TpTriggerPxType: "last", // 止盈触发价类型
TpOrdPx: -1, // 止盈委托价(市价)
SlTriggerPx: 90000, // 止损触发价
SlTriggerPxType: "last", // 止 损触发价类型
SlOrdPx: -1, // 止损委托价(市价)
}
// 场景10: 现货条件单,带止盈止损
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT",
ProductGroup: "Spot",
Sz: "0.001",
Side: "buy",
IsCrossMargin: "1",
OrderType: "market",
TriggerPrice: "95000",
TriggerPxType: "last",
TdMode: "cash",
TpTriggerPx: 100000,
TpTriggerPxType: "last",
TpOrdPx: -1,
SlTriggerPx: 90000,
SlTriggerPxType: "last",
SlOrdPx: -1,
}
// 场景11: 仅设置止盈
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "buy",
PosSide: "long",
IsCrossMargin: "1",
OrderType: "market",
TriggerPrice: "95000",
MrgPosition: "merge",
TdMode: "cross",
TpTriggerPx: 100000,
TpTriggerPxType: "last",
TpOrdPx: -1,
}
// 场景12: 仅设置止损
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "sell",
PosSide: "short",
IsCrossMargin: "1",
OrderType: "market",
TriggerPrice: "95000",
MrgPosition: "merge",
TdMode: "cross",
SlTriggerPx: 100000,
SlTriggerPxType: "last",
SlOrdPx: -1,
}
// 场景13: 使用条件单平仓指定持仓(分仓模式)
triggerOrder = &triggerOrderRequest{
InstId: "BTC-USDT-SWAP",
ProductGroup: "Swap",
Sz: "1",
Side: "sell",
PosSide: "long",
IsCrossMargin: "1",
OrderType: "market",
TriggerPrice: "105000",
MrgPosition: "split",
TdMode: "cross",
ClosePosId: "1001063717138767", // 指定要平仓的持仓ID
}
响应参数
| 字段名 | 类型 | 字段描述 |
|---|---|---|
| ordId | string | 订单 ID |
| clOrdId | string | 客户自定义订单 ID |
| tag | string | 订单标签 |
| sCode | string | 事件执行结果的状态码 0:成功 |
| sMsg | string | 事件执行失败时的消息 |
响应示例
{
"code": "0",
"msg": "",
"data": {
"ordId": "1000595855275418",
"clOrdId": "",
"tag": "",
"sCode": "0",
"sMsg": "Success"
}
}
止盈止损功能说明
功能概述
在下条件单时,可以选择性地设置止盈(TP)和/或止损(SL)参数。当条件单触发并开仓后,系统会自动为该持仓创建止盈止损订单。
工作流程
1. 用户下条件单,设置止盈止损参数
↓
2. 市场价格达到触发价格
↓
3. 条件单触发,执行开仓
↓
4. 系统自动为新开仓位设置止盈止损订单
止盈止损参数
止盈参数:
tpTriggerPx: 止盈触发价(设置止盈时必填)tpTriggerPxType: 触发价类型(last、index或mark),默认lasttpOrdPx: 止盈触发后的委托价,-1表示市价单
止损参数:
slTriggerPx: 止损触发价(设置止损时必填)slTriggerPxType: 触发价类型(last、index或mark),默认lastslOrdPx: 止损触发后的委托价,-1表示市价单
使用说明
-
可选功能:止盈止损参数为可选,您可以:
- 同时设置止盈和止损
- 仅设置止盈
- 仅设置止损
- 都不设置(标准条件单)
-
价格关系:
- 做多仓位:止盈触发价 > 条件单触发价 > 止损触发价
- 做空仓位:止损触发价 > 条件单触发价 > 止盈触发价
-
触发时机:止盈止损订单在条件单触发开仓后才会创建,不是在下条件单时立即创建
-
市价 vs 限价:
- 设置
tpOrdPx或slOrdPx为-1表示市价单 - 设置具体价格表示限价单
- 设置
-
触发价类型:
last: 最新成交价(默认)index: 指数价格mark: 标记价格
-
支持市场:现货(SPOT)和合约(SWAP)市场均支持条件单止盈止损
示例说明
示例1:做多仓位,完整止盈止损保护
{
"instId": "BTC-USDT-SWAP",
"productGroup": "Swap",
"sz": "1",
"side": "buy",
"posSide": "long",
"orderType": "market",
"triggerPrice": "95000",
"mrgPosition": "merge",
"tdMode": "cross",
"tpTriggerPx": 100000,
"tpTriggerPxType": "last",
"tpOrdPx": -1,
"slTriggerPx": 90000,
"slTriggerPxType": "last",
"slOrdPx": -1
}
示例2:现货买入,仅设置止盈
{
"instId": "BTC-USDT",
"productGroup": "Spot",
"sz": "0.001",
"side": "buy",
"orderType": "market",
"triggerPrice": "95000",
"tdMode": "cash",
"tpTriggerPx": 100000,
"tpTriggerPxType": "last",
"tpOrdPx": -1
}
示例3:做空仓位,仅设置止损
{
"instId": "BTC-USDT-SWAP",
"productGroup": "Swap",
"sz": "1",
"side": "sell",
"posSide": "short",
"orderType": "market",
"triggerPrice": "95000",
"mrgPosition": "merge",
"tdMode": "cross",
"slTriggerPx": 100000,
"slTriggerPxType": "last",
"slOrdPx": -1
}
相关接口
- 设置持仓止盈止损:
/deepcoin/trade/set-position-sltp- 为已有持仓设置止盈止损 - 修改持仓止盈止损:
/deepcoin/trade/modify-position-sltp- 修改已有的止盈止损订单 - 取消持仓止盈止损:
/deepcoin/trade/cancel-position-sltp- 取消止盈止损订单 - 查询未触发条件单:
/deepcoin/trade/trigger-orders-pending- 查询已有的条件单