跳到主要内容

条件单下单

条件单下单

条件单是指当市场价格达到预设的触发价格时,系统自动下单的订单类型

限频:每秒 1 次

请求地址

POST /deepcoin/trade/trigger-order

请求参数

字段名是否必填类型字段描述
instIdstring产品 ID
productGroupstring交易类型
现货: Spot
永续: Swap
szstring委托数量
sidestring订单方向
买: buy
卖: sell
posSidestring持仓方向
产品类型为 SWAP 时必填
多: long
空: short
pricestring限价单价格
限价单时必填,市价单不需要
isCrossMarginstring是否全仓
逐仓: 0
全仓: 1
orderTypestring订单价格类型
限价: limit
市价: market
triggerPricestring条件单触发价格
当市场价格达到此价格时触发订单
triggerPxTypestring触发价类型
最新价: last
指数价: index
标记价: mark
默认: last
mrgPositionstring合并仓位
产品类型为 SWAP 时必填
合仓: merge
分仓: split
closePosIdstring平仓时指定的持仓ID 支持全仓和分仓模式
tdModestring交易模式
非保证金: cash
全仓: cross
逐仓: isolated
tpTriggerPxnumber止盈触发价
条件单触发开仓后自动设置止盈订单
tpTriggerPxTypestring止盈触发价类型
最新价: last
指数价: index
标记价: mark
默认: last
tpOrdPxnumber止盈委托价
-1 表示市价
slTriggerPxnumber止损触发价
条件单触发开仓后自动设置止损订单
slTriggerPxTypestring止损触发价类型
最新价: last
指数价: index
标记价: mark
默认: last
slOrdPxnumber止损委托价
-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
}

响应参数

字段名类型字段描述
ordIdstring订单 ID
clOrdIdstring客户自定义订单 ID
tagstring订单标签
sCodestring事件执行结果的状态码 0:成功
sMsgstring事件执行失败时的消息

响应示例

{
"code": "0",
"msg": "",
"data": {
"ordId": "1000595855275418",
"clOrdId": "",
"tag": "",
"sCode": "0",
"sMsg": "Success"
}
}

止盈止损功能说明

功能概述

在下条件单时,可以选择性地设置止盈(TP)和/或止损(SL)参数。当条件单触发并开仓后,系统会自动为该持仓创建止盈止损订单。

工作流程

1. 用户下条件单,设置止盈止损参数

2. 市场价格达到触发价格

3. 条件单触发,执行开仓

4. 系统自动为新开仓位设置止盈止损订单

止盈止损参数

止盈参数:

  • tpTriggerPx: 止盈触发价(设置止盈时必填)
  • tpTriggerPxType: 触发价类型(lastindexmark),默认 last
  • tpOrdPx: 止盈触发后的委托价,-1 表示市价单

止损参数:

  • slTriggerPx: 止损触发价(设置止损时必填)
  • slTriggerPxType: 触发价类型(lastindexmark),默认 last
  • slOrdPx: 止损触发后的委托价,-1 表示市价单

使用说明

  1. 可选功能:止盈止损参数为可选,您可以:

    • 同时设置止盈和止损
    • 仅设置止盈
    • 仅设置止损
    • 都不设置(标准条件单)
  2. 价格关系

    • 做多仓位:止盈触发价 > 条件单触发价 > 止损触发价
    • 做空仓位:止损触发价 > 条件单触发价 > 止盈触发价
  3. 触发时机:止盈止损订单在条件单触发开仓后才会创建,不是在下条件单时立即创建

  4. 市价 vs 限价

    • 设置 tpOrdPxslOrdPx-1 表示市价单
    • 设置具体价格表示限价单
  5. 触发价类型

    • last: 最新成交价(默认)
    • index: 指数价格
    • mark: 标记价格
  6. 支持市场:现货(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 - 查询已有的条件单