A bracket order is an advanced order type that allows you to set both profit and loss targets for an existing position, similar to a take profit / stop loss order. These orders are reduce-only, meaning they can only reduce or close your positions.
Bracket orders are available on perpetual futures markets, as well as expiring futures markets that are available to US customers.
Bracket 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 bracket 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 bracket 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 bracket order.
Add and manage bracket orders
To place a bracket order, select the bracket 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
You can place multiple bracket 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.
Example:
You are long 2 BTC contracts with an average entry price of $62,000
You place a bracket sell order for 1 BTC contract with take profit price of $65,000 and stop loss price of $55,000
You place another bracket sell order for 1 BTC contract with take profit price of $70,000 and stop loss price of $50,000
You have now established bracket orders to exit your position if the price levels trigger and the orders fill
After placing a bracket 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 bracket orders, you'll see an "Add" button. Select this to enter a closing bracket order. If you have one or more active bracket orders, you'll see a "View" button. Select this to see all your active bracket orders for the position. From here, you can add new bracket orders or cancel existing ones.
Order execution
Bracket orders are unique because they accept two prices on either side of the current price. When you place a bracket 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 bracket order is triggered, the other portion will be canceled immediately. Example:
You are long 2 BTC contracts at an entry price of $62,000
You set a bracket 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
Bracket orders for derivatives can only be used to close or reduce a position. Coinbase has validations in place to prevent a bracket order from opening a new position. Here are some scenarios where these validations may occur:
Scenario 1: Placing a bracket order on the same side of your existing position.
Example:
You are long 2 BTC contracts
You try to place a bracket buy order for 2 BTC contracts
If the bracket 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 bracket orders can only reduce or close a position, so you’ll need to switch to the sell side
Scenario 2: Placing a bracket 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 bracket sell order for 2 BTC contracts
If the bracket 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 bracket 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 bracket order.
Example:
You are long 2 BTC contracts
You place a bracket 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 bracket order filled, you would end up with a short position of 2 BTC contracts
Instead, you’ll receive a prompt to first cancel open bracket orders before you attempt to reduce or close your position