Binance OCO Orders: One-Click Take-Profit and Stop-Loss Guide
An OCO (One-Cancels-the-Other) order allows you to bind a take-profit and a stop-loss order together. Once one is triggered, the other is automatically canceled. This guide uses BTC as an example to explain it in depth.
OCO orders allow you to set both take-profit and stop-loss levels simultaneously, eliminating the need for manual management. Start by completing your account setup on the Binance Website and download the Binance Official App (iOS users can refer to the iOS Installation Guide). This article provides a clear walkthrough of the precise usage of OCO.
The Logic of OCO
OCO stands for One-Cancels-the-Other. As the name suggests, when one part of the order becomes active or is filled, the other part is automatically canceled.
In standard trading, take-profit and stop-loss orders are independent. If you manually set a take-profit order and it gets filled, you must immediately cancel the stop-loss order yourself. Failing to do so could result in a "ghost" order where you end up selling assets you no longer hold if the market subsequently reverses. OCO automates this entire process for you.
Where Can You Use OCO?
- Spot Trading: Limit OCO (combining a take-profit limit order and a stop-loss limit order).
- Futures Trading: OCO functionality is integrated within conditional orders.
This guide focuses specifically on Spot OCO.
Entering the OCO Order Panel
- Go to the Spot trading page for any trading pair.
- In the order panel, select OCO from the dropdown menu that includes "Limit / Market / Stop-Limit".
- Several input fields will appear.
Field Definitions
For a Sell OCO order in Spot, you need to fill in:
| Field | Meaning |
|---|---|
| Price | The limit price for your take-profit target. |
| Stop | The trigger price for your stop-loss. |
| Limit | The limit price for the order executed after the "Stop" is triggered. |
| Amount | The total quantity of assets you wish to sell. |
Example: Holding BTC at 60,000, setting TP at 65,000 and SL at 56,000
- Price (TP Limit): 65,000
- Stop (SL Trigger): 56,000
- Limit (SL Limit): 55,950
- Amount: 0.05 BTC
Once set, Binance will manage two orders for you:
- A limit sell order at 65,000.
- A stop-limit sell order that triggers at 56,000 to sell at 55,950.
The moment either one starts to fill, the other is immediately cancelled by the system.
Two Ideal Scenarios for OCO
Scenario 1: Unsure of Market Direction
If you are uncertain whether the next candle will be green or red but know you want to exit at either 65,000 (profit) or 56,000 (loss), OCO protects you on both ends.
Scenario 2: Unable to Monitor the Market
Whether you are sleeping, working, or away from your desk, setting an OCO order is like hiring a 24/7 executor to manage your trade discipline.
When OCO is NOT Recommended
1. Strong One-Sided Trends
If you are highly confident that BTC will continue to rise, a stop-loss might be unnecessary and could lead to being "shaken out" of a winning trade. A simple limit order might be better.
2. Extremely Low Volatility
If the range between your TP and SL is too narrow (e.g., 0.5%), trading fees might consume a significant portion of your potential profit.
3. Flash Crashes or Pumps
If prices move too rapidly, a stop-loss limit might not find a buyer, leaving the order unfilled. In such highly volatile markets, market stop-orders are more reliable, though they offer less control over the final execution price.
OCO + Trailing Stop
Binance also offers "Trailing Stop" as a dynamic protection tool for one-sided trends. While OCO cannot directly incorporate a trailing stop, you can manage them separately:
- Set a standalone Trailing Stop for the downside.
- Use OCO solely for profit-taking.
Alternatively, use more advanced conditional orders available in the Futures market.
Multi-Level OCO
Binance Spot currently only supports one-to-one OCO pairs. If you want to scale out of a position (e.g., "sell 30% at 64,000, 30% at 65,000, and 40% at 66,000"), you must place three independent OCO orders:
- OCO 1: TP 64,000, SL 56,000, 30% quantity.
- OCO 2: TP 65,000, SL 56,000, 30% quantity.
- OCO 3: TP 66,000, SL 56,000, 40% quantity.
Note that these OCO orders are independent. If one "OCO 1" is triggered, the others remain active.
Common Mistakes to Avoid
1. Incorrect Quantity
If you enter an amount that exceeds your actual balance, the system will reject the order.
2. Stop Price Higher Than TP Price
This creates logical confusion for the system, which will usually reject the order or force a correction.
3. Stop Price vs. Limit Price
It is easy to mix these up. Rule of thumb: For a sell stop-loss, the Limit should be ≤ Stop. For a buy stop-loss, the Limit should be ≥ Stop.
4. Partial Cancellation
In your "Open Orders" list, an OCO appears as two separate entries. Manually canceling one will NOT automatically cancel the other. You should use the "Cancel OCO Group" button to ensure both are removed.
Placing OCO Orders in the App
- Select your trading pair in the app.
- Tap Buy or Sell.
- Select OCO from the order type dropdown.
- Fill in the required fields.
- Swipe or tap to confirm.
The app may hide advanced OCO fields by default; you might need to tap "Advanced" or "Show More".
OCO vs. Grid Trading
Grid trading involves continuous buying low and selling high within a range. OCO is a one-time dual-exit strategy. They can be used together; for example, you can run a BTC grid between 55,000 and 65,000 and use OCO as an "insurance policy" outside that range (e.g., exit all if > 67,000 or < 53,000).
FAQ
Q: How are OCO fees calculated? A: Standard Taker/Maker fees apply to the portion that actually fills. There is no fee for simply placing the order.
Q: Can I have multiple OCO orders active at once? A: Yes, as long as you have the balance to support them. Each pair is independent.
Q: Can I cancel just one part of the OCO? A: No, canceling one part effectively cancels the whole OCO group.
Q: What if the stop is triggered but the limit order doesn't fill? A: The limit order will stay on the book. However, the take-profit side is already cancelled once the stop is triggered. You must monitor this manually.
Q: Does Binance Futures have OCO? A: Yes, the "Conditional Order" type in Futures provides equivalent OCO functionality.
Further Reading
OCO makes "setting a trade before bed and checking the result in the morning" a reality. By integrating it with limit and stop orders, you can significantly enhance your trading discipline in the spot market.