Skip to main content

Modify Position Take Profit and Stop Loss

Modify Position Take Profit and Stop Loss

Modify existing position take profit and stop loss orders, supporting both spot and contract trading.

Request frequency limit: 1/s

Rate limit rule: UserID

Request URL

POST /deepcoin/trade/modify-position-sltp

Request Parameters

Field NameRequiredTypeDescription
instTypetruestringProduct type
Spot: SPOT
Contract: SWAP
instIdtruestringProduct ID
e.g., BTC-USDT for spot, BTC-USDT-SWAP for contract
ordIdtruestringSLTP Order ID (obtained from set-position-sltp response)
posSidefalsestringPosition side (required for contract)
Long: long
Short: short
mrgPositionfalsestringMargin position mode (for contract)
Merged: merge
Split: split
tdModefalsestringTrade mode (for contract)
Cross margin: cross
Isolated margin: isolated
posIdfalsestringPosition ID (required when mrgPosition is split)
tpTriggerPxfalsestringTake profit trigger price
At least one of TP or SL must be set
tpTriggerPxTypefalsestringTake profit trigger price type
Last price: last
Index price: index
Mark price: mark
Default: last
tpOrdPxfalsestringTake profit order price
-1 means market price
Default: -1
slTriggerPxfalsestringStop loss trigger price
At least one of TP or SL must be set
slTriggerPxTypefalsestringStop loss trigger price type
Last price: last
Index price: index
Mark price: mark
Default: last
slOrdPxfalsestringStop loss order price
-1 means market price
Default: -1
szfalsestringPosition size for partial TP/SL
Empty means full position

Notes:

  • ordId is required and must be a valid pending SLTP order ID
  • At least one of tpTriggerPx or slTriggerPx must be provided
  • For contract trading with split position mode (mrgPosition=split), posId is required
  • For spot trading, posSide, mrgPosition, tdMode, and posId are not applicable
  • The order ID is obtained from the set-position-sltp API response

Request Example

Spot - Modify both take profit and stop loss:

{
"instType": "SPOT",
"instId": "BTC-USDT",
"ordId": "1000762096073860",
"tpTriggerPx": "110000",
"slTriggerPx": "103000"
}

Contract - Modify TP/SL for long position (merged mode):

{
"instType": "SWAP",
"instId": "BTC-USDT-SWAP",
"ordId": "1000596069447069",
"posSide": "long",
"mrgPosition": "merge",
"tdMode": "cross",
"tpTriggerPx": "110000",
"tpTriggerPxType": "mark",
"tpOrdPx": "-1",
"slTriggerPx": "103000",
"slTriggerPxType": "mark",
"slOrdPx": "-1"
}

Contract - Modify TP/SL for specific position (split mode):

{
"instType": "SWAP",
"instId": "BTC-USDT-SWAP",
"ordId": "1000596069492933",
"posSide": "long",
"mrgPosition": "split",
"tdMode": "isolated",
"posId": "1000596069432784",
"tpTriggerPx": "111000",
"tpTriggerPxType": "mark",
"tpOrdPx": "-1",
"slTriggerPx": "104000",
"slTriggerPxType": "mark",
"slOrdPx": "-1",
"sz": "200"
}

Modify only take profit:

{
"instType": "SWAP",
"instId": "BTC-USDT-SWAP",
"ordId": "1000596069447069",
"posSide": "long",
"mrgPosition": "merge",
"tdMode": "cross",
"tpTriggerPx": "112000",
"tpTriggerPxType": "mark",
"tpOrdPx": "-1"
}

Modify only stop loss:

{
"instType": "SWAP",
"instId": "BTC-USDT-SWAP",
"ordId": "1000596069447069",
"posSide": "long",
"mrgPosition": "merge",
"tdMode": "cross",
"slTriggerPx": "101000",
"slTriggerPxType": "mark",
"slOrdPx": "-1"
}

Response Parameters

Field NameTypeDescription
ordIdstringSLTP Order ID
sCodestringEvent execution result status code
0: Success
sMsgstringRejection message if the request is unsuccessful

Response Example

Successful response:

{
"code": "0",
"msg": "",
"data": {
"ordId": "1000596069447069",
"sCode": "0",
"sMsg": ""
}
}

Failed response:

{
"code": "51400",
"msg": "Order not found",
"data": {
"ordId": "",
"sCode": "51400",
"sMsg": "Order does not exist or has been executed"
}
}

Description

Functionality

  • Modify existing position take profit and/or stop loss orders
  • Supports both spot (SPOT) and contract (SWAP) trading
  • Allows partial position TP/SL modification by specifying sz parameter
  • Supports different trigger price types (last, index, mark)
  • Can modify market or limit order price for TP/SL execution
  • Can modify only take profit or only stop loss independently

Use Cases

  1. Strategy Adjustment: Adjust TP/SL levels based on market conditions
  2. Risk Management: Tighten or loosen stop loss based on position performance
  3. Profit Optimization: Adjust take profit targets as price moves favorably
  4. Partial Position Management: Modify TP/SL for only part of the position

Important Notes

  1. Order ID Required: Must provide valid ordId from the set-position-sltp response
  2. Order Status: Can only modify pending TP/SL orders (not yet triggered or executed)
  3. Price Precision: Trigger prices must comply with the product's price precision requirements
  4. Parameter Consistency: Parameters like instId, posSide, mrgPosition should match the original order
  5. At Least One: Must modify at least one of take profit or stop loss
  6. Split Mode: For split position mode, posId is required
  7. Query Orders: Use trigger-orders-pending API to query existing TP/SL orders and get their IDs
  • Set Position TP/SL: /deepcoin/trade/set-position-sltp - Create new TP/SL orders
  • Cancel Position TP/SL: /deepcoin/trade/cancel-position-sltp - Cancel TP/SL orders
  • Query Pending Trigger Orders: /deepcoin/trade/trigger-orders-pending - Query existing TP/SL orders

Common Errors

Error CodeError MessageSolution
51400Order not foundCheck if ordId is correct and order has not been canceled or executed
51000Parameter errorVerify all required parameters are provided and formatted correctly
51001At least one of TP or SL must be setProvide at least tpTriggerPx or slTriggerPx