条件单下单
条件单下单
条件单是指当市场价格达到预设的触发价格时,系统自动下单的订单类型
请求地址
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,支持全仓和分仓模式(分仓(split)模式时必填) |
| 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表示市价单