Take profit/stop loss (TP/SL) orders (Derivatives)

A take profit/stop loss (TP/SL) order (sometimes known as a bracket order) allows you to set both profit and loss targets for an existing position. These orders are reduce-only, meaning they can only reduce or close your positions.

TP/SL orders are available on perpetual futures markets, as well as expiring futures markets that are available to US customers.

TP/SL order functionality

Consider you have a long position of 1 BTC contract with an average entry price of $62,000. To manage risk, you place a TP/SL order for 1 BTC contract. You set a take profit price at $65,000 and a stop loss price at $59,000. If the market price of Bitcoin reaches either of these prices, a limit order to sell 1 BTC contract will be triggered. The other order will be automatically canceled, helping you manage risk effectively.

Note: A stop-limit order is different from a TP/SL order. It sets a stop price (when the order becomes active) and limit price for a single order, without the dual-target functionality of a TP/SL order.

Add and manage TP/SL orders

To place a TP/SL order, select the TP/SL order type on the order form. The form will show an estimated profit and loss (PnL) for each side of the order. 

  • Estimated PnL = (Take Profit Price / Stop Loss Price - Average Entry price) * Order Amount

For international perpetual futures markets, you can also add one-sided TP/SL orders. This means that if you do not prefer to add both Take Profit price and Stop Loss price, you have flexibility to simply add only Take Profit portion or only Stop Loss portion based on your trading strategy. Note: This one-sided feature is coming soon for US derivatives (futures and perpetual-style futures) markets.

You can place multiple TP/SL orders as long as their total is less than or equal to the position size plus any open reducing orders. This lets you exit the position at different price points. For example:

  • You are long 2 BTC contracts with an average entry price of $62,000

  • You place a TP/SL sell order for 1 BTC contract with take profit price of $65,000 and stop loss price of $55,000

  • You place another TP/SL sell order for 1 BTC contract with take profit price of $70,000 and stop loss price of $50,000

  • You have now established TP/SL orders to exit your position if the price levels trigger and the orders fill

After placing a TP/SL order, you can view and manage it from the positions tray under the price chart. In the positions tray, you'll see a column labeled "TP/SL." If you don't have any active TP/SL orders, you'll see an "Add" button. Select this to enter a closing TP/SL order. If you have one or more active TP/SL orders, you'll see a "View" button. Select this to see all your active TP/SL orders for the position. From here, you can add new TP/SL orders or cancel existing ones.

For international perpetual futures markets, you can also edit the existing TP/SL orders. If you have one or more active TP/SL orders, you’ll see a “Manage TP/SL” button. Select this to see all your active TP/SL orders for the position. From here, you can edit existing TP/SL orders. You can edit the amount of the TP/SL order and/or the Take Profit/Stop Loss price of the TP/SL order. Note: This edit feature is coming soon for US derivatives (futures and perpetual-style futures) markets.

Order execution

TP/SL orders are unique because they accept two prices on either side of the current price. When you place a TP/SL order, the take profit portion becomes active as a limit order. If the contract price crosses the take profit price, the take profit portion will start to fill and the stop loss portion will be canceled. 

However, if the contract price reaches the stop loss price first, the order will automatically switch to an aggressive limit order.

  • For perpetual futures, the new limit price will be set as 1.5% lower for sells or 1.5% higher for buys than the current price. If the contract price moves outside the 1.5% range, it will stop filling.

  • For expiring futures available to US customers, the new limit price will be set at a more aggressive price, where the offset from current price is set to be a tick size within the price banding limit for the market.

Price band limits are set by the exchange and maintained here. This protects your order from executing during a sharp price change.  

Remember, if either portion of the TP/SL order is triggered, the other portion will be canceled immediately. For example:

  • You are long 2 BTC contracts at an entry price of $62,000

  • You set a TP/SL sell order with take profit price of $65,000 and stop loss price of $55,000

  • The order behaves like a normal limit sell order with limit price of $65,000

  • If the contract price exceeds that limit price, the order will begin to fill on the take profit side, and the stop loss side is no longer valid

  • Instead, if the contract price falls below the stop loss price of $55,000, the order will immediately flip to an aggressive limit sell order and begin to fill on the stop loss side

    • For perpetuals, the new limit price would be $55,000 * (1 - 0.015) = $54,175

    • For expiring futures, the new limit price would be $55,000 - $695 = $54,305

Reduce-only validations

TP/SL orders for derivatives can only be used to close or reduce a position. Coinbase has validations in place to prevent a TP/SL order from opening a new position. Here are some scenarios where these validations may occur:

Scenario 1: Placing a TP/SL order on the same side of your existing position.

Example:

  • You are long 2 BTC contracts.

  • You try to place a TP/SL buy order for 2 BTC contracts.

  • If the TP/SL order were placed and filled, you would end up with a long position of 4 BTC contracts..

  • Instead, you’ll receive an error indicating that TP/SL orders can only reduce or close a position, so you’ll need to switch to the sell side.

Scenario 2: Placing a TP/SL order for an amount greater than your open position plus any open reducing orders for that position.

Example:

  • You are long 2 BTC contracts.

  • You have an open limit sell for 1 BTC contract.

  • You try to place a TP/SL sell order for 2 BTC contracts.

  • If the TP/SL order were placed and filled, you would end up with a short position of 1 BTC contract.

  • Instead, you’ll receive an error indicating that TP/SL orders can only reduce or close a position, so you need to reduce the order amount or cancel open orders.

Scenario 3: Trying to close a position with an active TP/SL order.

Example:

  • You are long 2 BTC contracts.

  • You place a TP/SL sell order for 2 BTC contracts. 

  • You try to separately close the BTC position by either placing a sell order or using the close position shortcut button.

  • If the position were closed and the TP/SL order filled, you would end up with a short position of 2 BTC contracts.

  • Instead, you’ll receive a prompt to first cancel any open TP/SL orders before you attempt to reduce or close your position.