Reduce-Only is available on all order types:
Market
Limit
Stop Market
Stop Limit
Take Profit Market
Take Profit Limit
Trailing Stop
You can also turn Reduce-Only on for orders via API using the reduceOnly
option.
Requirements
On dYdX, Reduce-Only is compatible with any order type, as long as the order is either Fill-Or-Kill (FOK) or Immediate-Or-Cancel (IOC). At this time, we do not support Reduce-Only for orders that sit on the book like Good Til Time (GTT).
How It Works
Reduce-Only ensures that your order:
Will only reduce the size of your current position, not increase
Will not open a position with side opposite to your current position (long to short or short to long)
You can enable Reduce-Only through the "Advanced" menu for any order type:
The mechanism for Reduce-Only depends on the order type you are using:
Market and Limit
Since orders have to be FOK or IOC to enable Reduce-Only, Market and Limit orders are handled in the same way if they are Reduce-Only. If your Market or Limit order would cause your position to increase or change sides, the order will be rejected.
Reduce-Only is not enabled by default for Market and Limit orders. The exception is when placing a Market order through the "Close Position" modal, where Reduce-Only is always enabled.
Stop and Take Profit
For all Reduce-Only Stop and Take Profit orders, you can set an order size of any amount. When your Stop or Take Profit order triggers, the order will automatically be resized to your remaining position size (if your order size is greater than your position size) before it fills.
Reduce-Only is enabled by default for all Stop and Take Profit orders.
Examples
Let's say you have a 5 ETH-USD LONG open.
If you try to place a Reduce-Only order to SELL 6 ETH, you will receive an error and won't be able to place the order.
If you try to place a Reduce-Only order to BUY any size, you will receive an error and won't be able to place the order.
If you place a Reduce-Only Stop Market SELL 6 ETH, you will be able to place this order with a valid trigger price. When your order triggers, the size of your order will automatically be resized from 6 ETH to 5 ETH. Then, the remaining SELL 5 ETH order will execute to fully close your LONG position to 0.
You can read more about our authors here.
During Outages
Under rare circumstances that could potentially arise during an outage, reduce-only orders may not execute as intended. In such a scenario, placing multiple reduce-only orders may result in an opposite position.