Take Profit and Stop Loss Orders (TP/SL)
Take Profit (TP) and Stop Loss (SL) orders are essential tools designed to help traders automate risk management and secure profits on their positions. They allow users to pre-set price levels that, when reached or crossed by the market, will automatically submit a closing order for the position.
What are TP/SL Orders and Their Function?
TP/SL orders are essentially Trigger Orders that enable you to:
- Take Profit (TP): Automatically lock in profits. When the market price reaches your set target, a closing order is triggered, helping you secure gains in favorable market conditions.
- Stop Loss (SL): Limit potential losses. When the market price moves against your position and reaches your defined price, a closing order is triggered to help you exit the position before losses escalate.
Trigger Price Basis
The trigger price for TP/SL orders is always based on the Mark Price of your contract.
- Stop Loss (SL) Trigger Conditions:
- For a Long Position: Triggered when the Mark Price is less than or equal to your set SL price.
- For a Short Position: Triggered when the Mark Price is greater than or equal to your set SL price.
- Take Profit (TP) Trigger Conditions:
- For a Long Position: Triggered when the Mark Price is greater than or equal to your set TP price.
- For a Short Position: Triggered when the Mark Price is less than or equal to your set TP price.
⚠️ Important Disclaimer
TP/SL is solely an automated assist program and does not guarantee successful order execution (Fill).
- Execution Depends on Liquidity: Once a TP/SL order is triggered, the system automatically submits a closing order to the order book. Whether this order is fully or partially executed depends entirely on the current order book and market liquidity. In volatile or illiquid markets, the submitted order may not be filled at the expected price, or at all.
- Slippage Risk: Especially during rapid market movements, the actual execution price may deviate from your set trigger price (known as slippage).
- Active Monitoring: Users should actively monitor their position status and order status to ensure their risk management strategy is executed and to prevent unnecessary losses.
TP/SL Order Types
Our perpetuals DEX offers two dimensions for setting TP/SL to cater to different trading needs:
- Order-Level TP/SL Orders: TP/SL attached to the initial opening order.
- Position-Level TP/SL Orders: TP/SL set directly on the existing position.
⚠️ Order Limit: Each trading pair has a maximum limit of 10 active TP/SL orders (combined total of both Order-Level and Position-Level). Please manage your TP/SL orders accordingly.
TP/SL Attached to the Opening Order (Order-Level TP/SL)
This TP/SL allows you to pre-define the corresponding Take Profit and Stop Loss prices when submitting your opening order.
![_max-w-[600px]](/_next/static/media/68cc69ec62aeb517dc81d244387909fd.1d6938f5.png)
- In the Execution Panel, check the TP/SL option to reveal the input fields (as shown in the image below).
- Set your desired Higher Price and Lower Price. You can input the price directly in DUSD or use the percentage (%) input.
- Visual Feedback: Immediately below each input field, you will see the estimated P&L for both Long and Short scenarios if the order is executed and the market reaches that TP/SL price.
- Higher Price (Top Field): Shows estimated Long Profit / Short Loss.
- Lower Price (Bottom Field): Shows estimated Long Loss / Short Profit.
- Once your opening order is fully filled, the system will automatically create and activate the corresponding TP/SL orders for you.
- If the opening order is only partially filled, the TP/SL orders will not be activated until the order is completely executed.
TP/SL for Existing Positions (Position-Level TP/SL)
Position-level TP/SL allows users to add or modify Take Profit/Stop Loss orders for the entire current position at any time. This is typically used to manage and close the remaining balance of the position.

- Close All Remaining Position: You can set a trigger price that, once reached, will prompt the system to submit a closing order to close all of your remaining position for that contract.
- Independent from Opening Orders: Regardless of whether your initial opening order included TP/SL, you can always add, modify, or delete Position-Level TP/SL via the position panel.
⚠️ Compatibility and Triggering
Position TP/SL and Order TP/SL are not mutually exclusive; they can coexist.
- Both are based on the Mark Price and whether a closing action is triggered depends on the different trigger prices set on each order.
- For example, if your initial opening order has a TP price of
X(Order-Level), and you later set a further TP price ofYon the position (Position-Level).- If the Mark Price reaches
Xfirst, the Order-Level TP order will be triggered. - If, after
Xis triggered, you still have a remaining position, and the Mark Price continues to move towardYand reaches it, the Position-Level TP order will then be triggered.
- If the Mark Price reaches
FAQ: Why Didn’t My TP/SL Trigger?
If your TP/SL order was not triggered as expected, it may be due to one of the following reasons:
Case 1: Price Already Passed the Trigger Level
TP/SL orders are triggered when the price moves to the trigger level, not simply when the price is at or beyond the level.
Example:
You hold a Long position on BTC at $100,000 and want to set a Stop Loss at $95,000 to limit your losses if the price drops.
- You set the SL trigger price at $95,000
- However, at the time you set this order, the current Mark Price is already $93,000
- The price is indeed below $95,000 — Yes
- Did the price drop to $95,000 after you set the order? — No, it had already fallen past that level
Result: The SL will not trigger because the system is waiting for the price to reach $95,000, but the price has already moved beyond it. The trigger condition requires the price to cross the threshold after the order is placed.
Solution: Set a new TP/SL at a price level that the market has not yet reached.
Case 2: Insufficient Margin Due to Open Orders
When a TP/SL order is triggered, the system attempts to create a closing order. However, if your available margin is insufficient because it’s being used by other open orders, the closing order cannot be created.
Example:
- You have a BTC Long position and set a TP order
- You also have several pending limit orders that are reserving your margin
- When the TP is triggered, the system tries to submit a closing order
- But there’s not enough free margin to place the order due to your existing open orders
Result: The TP/SL trigger fails because the closing order cannot be created.
Solution: Cancel some open orders to free up margin, or ensure you have sufficient available margin for your TP/SL orders to execute.