When you enter the Spot trading interface on the Binance official website, you might be confused by a tab labeled "OCO" in the order types. The Binance official app places it on the right side of the order type selector, which requires scrolling to see. If you haven't installed the app yet, follow our iOS Installation Guide first. OCO stands for One-Cancels-the-Other. Essentially, it is a "bundled order": you simultaneously place a take-profit limit order and a stop-limit order. Whichever one is triggered by the market, the other is automatically cancelled. It is most commonly used to set a profit/loss range and then step away from the screen.
Below, we’ll explain the OCO mechanism, its parameters, typical use cases, and scenarios where it is not suitable.
The Core Mechanism of OCO
A: Grouping two orders with the same direction together, so that triggering one component automatically cancels the other.
OCO is a standard order type in financial trading, supported by almost all major exchanges. Binance's implementation involves three specific prices:
- Limit Price: The price for your take-profit target.
- Stop Price: The trigger condition for your stop-loss.
- Stop Limit Price: The actual limit price at which your stop-loss order is placed once the Stop Price is triggered.
After submission, the system creates two independent orders linked by a single "Order List ID":
- Order 1: A limit order with the price set to the Limit Price.
- Order 2: A stop-limit order (Stop Price + Stop Limit Price).
As soon as either order begins to execute (even partially), the other is immediately and automatically cancelled.
Price Relationship Constraints
For an OCO Sell order (the most common type), the prices must satisfy:
Stop Price < Current Market Price < Limit Price
In simple terms: Stop-loss price < Current price < Take-profit price. Otherwise, the system will immediately identify one as "triggered" and reject the order.
For an OCO Buy order, it is the reverse: Limit Price < Current Market Price < Stop Price.
When to Use OCO
A: Six typical scenarios where OCO is highly effective.
Scenario 1: Leaving the screen after a day trade
This is the most common use case. You buy in the morning with a 3%-5% profit target and a 2%-3% stop-loss. By placing an OCO order, you can go to work, sleep, or travel, knowing the market will automatically exit your position at either price level.
Scenario 2: Range-bound arbitrage
When the price oscillates within a specific range (e.g., BTC between 90,000 and 100,000), and you buy near 90,000, you can set an OCO:
- Take-profit at 99,500 (near the upper bound)
- Stop-loss at 89,000 (breaking the lower bound)
As long as the range holds, you collect profits consistently. If the range breaks (up or down), the OCO automatically closes your position.
Scenario 3: Breakout strategy
If the price is consolidating just below a resistance level and you anticipate a massive surge upon breakout, you can use an OCO buy order (less common but valid):
- Stop Buy Price (Trigger) = Above the resistance level
- Limit Price = A "fake breakout pullback" level below the resistance
If the breakout succeeds, you chase the high; if it's a fake breakout, you buy the dip at the lower limit.
Scenario 4: Hedging before earnings or major events
When you know a major event is coming (e.g., a Bitcoin ETF decision, a Binance founder announcement, or a Fed meeting) but don't know the direction, you can buy and set a wide-range OCO to exit regardless of whether the price spikes or crashes.
Scenario 5: Two-way protection for long-term holdings
If you are bullish long-term but want to avoid a "black swan" crash, you can set an OCO:
- Take-profit far away (e.g., cost +50%)
- Stop-loss at a moderate level (cost -20%)
This serves as "free insurance" that stays active for a long time without needing constant monitoring.
Scenario 6: Following someone else's trading plan
If someone shares a plan like: "Buy BTC at 95,000, target 100,000, stop-loss 92,000," and you want to follow it but can't watch the chart 24/7, an OCO order handles it perfectly.
How to Fill OCO Parameters
A: Determine your take-profit and stop-loss levels first, then calculate the buffer for the stop-limit.
Step 1: Set the Limit Price (Take-Profit)
Reference resistance levels, psychological round numbers (90,000, 100,000, etc.), or historical highs. Guidelines:
- Don't be greedy; a 5%-15% target is reasonable for beginners.
- Don't set the take-profit too high, or it may never be triggered.
Step 2: Set the Stop Price (Trigger)
Reference support levels, 5%-10% below your entry price, or technical breakdown points. Guidelines:
- The stop-loss determines your maximum loss per trade; ensure you can afford it.
- Setting it too tight may lead to being stopped out by minor volatility; too loose makes the protection meaningless.
Step 3: Set the Stop Limit Price
Stop Limit = Stop Trigger Price - Buffer
| Coin Type | Suggested Buffer |
|---|---|
| BTC, ETH | 0.3% - 0.5% |
| Major Altcoins (BNB, SOL, XRP) | 0.5% - 1% |
| Mid-cap coins | 1% - 2% |
| Small-cap coins | 2% - 3% or use market stop-loss |
Example: If the stop trigger is 90,000 for BTC with a 0.3% buffer, the Stop Limit = 90,000 × 99.7% = 89,730.
Step 4: Enter the Amount
The OCO amount must be ≤ your current spot balance. 100% of the position is most common, but you can also manage positions in batches (e.g., split 1 BTC into two halves with different OCO ranges).
Scenarios Where OCO is Not Suitable
A: In these four cases, OCO may do more harm than good.
1. Strong one-way trends
In a raging bull market, you don't need a take-profit; it only forces you out of a winning trade too early. In such cases, a simple "Stop-Limit + Trailing Stop" is more appropriate.
2. Low-liquidity small-cap coins
OCO requires the market to fluctuate normally between the two price points. On coins with poor liquidity, your take-profit might not trigger while your stop-loss suffers massive slippage.
3. High-frequency scalping
Once an OCO is placed, the funds are locked. Short-term traders who move in and out frequently need the flexibility of market orders.
4. Need for partial profit-taking
OCO is designed for an "all-out" exit. If you want to take profits in batches (e.g., 30% / 30% / 40%), OCO cannot do this in a single order; you would need three separate limit sell orders.
Combining OCO with Other Orders
A: OCO is not isolated; it can be paired with other order types.
OCO + Trailing Stop
Apply different strategies to different parts of your position:
- 50% of the position using OCO (fixed take-profit/stop-loss).
- 50% of the position using Trailing Stop (letting profits run).
OCO + Limit Buyback
Place a limit buy order below your OCO stop-loss level. If the stop-loss triggers, the position is closed; if the price continues to drop, the lower limit order catches the "cheap" tokens. This is a "pre-set pyramid entry."
Tiered OCOs
Split your position into 3-5 parts, each with a different OCO. For example, with 1 BTC:
- 0.3 BTC on OCO A: TP 100,000, SL 92,000
- 0.3 BTC on OCO B: TP 105,000, SL 90,000
- 0.4 BTC on OCO C: TP 110,000, SL 88,000
This achieves "tiered take-profit + tiered stop-loss."
Real-World Workflow
Scenario: You hold 1 ETH with a cost of 3,500. You are bullish but worried about a correction.
Steps:
- Go to "Spot Trading → ETH/USDT."
- Switch to the "OCO" order type.
- Select "Sell."
- Amount: 1 ETH.
- Limit (Take-Profit): 3,850 (+10%).
- Stop (Trigger): 3,300 (-5.7%).
- Stop Limit: 3,280.
- Review and click "Sell OCO."
After submission, your "Open Orders" will show two orders marked with the same OCO ID.
Three Possible Outcomes:
- Price rises to 3,850: The take-profit executes, the stop-loss is automatically cancelled, and you receive approximately 3,850 USDT (minus 0.1% fee = 3,846.15 USDT).
- Price drops to 3,300: A limit sell order at 3,280 is placed. Once the price hits 3,280, it executes, and you receive around 3,280 USDT.
- Price fluctuates between 3,300 and 3,850: Nothing triggers, and the orders remain open until you cancel them or the market moves.
Frequently Asked Questions
Q: Does OCO occupy my balance? A: It locks the "Token balance," not USDT (for sell orders). A Sell OCO freezes the corresponding amount of tokens to ensure they can be sold immediately upon triggering. A Buy OCO freezes the corresponding USDT.
Q: Can the two components of OCO have different amounts? A: No. In Binance OCO, the amounts for both components must be equal. If you want to take profit on half but stop loss on the whole position, you must split them into multiple independent orders.
Q: Can I modify an OCO order? A: No, you cannot modify it directly. You must cancel the existing OCO and place a new one. Cancellation is free.
Q: What happens if OCO partially fills? A: As soon as the triggered component starts to fill (even a small fraction), the other component is immediately cancelled. The remaining part of the triggered order stays on the book.
Q: Are there fees for OCO orders? A: Fees are only charged for the executed part (0.1%, or 0.075% if using BNB). There is no fee for the component that is cancelled without triggering.
Q: Where is OCO in the mobile app? A: On the trading pair page → the order type selection bar in the trading panel → scroll to "OCO" (some versions label it as a "Stop-Limit + Limit" combination). If you can't find it, update to the latest app version or use the web version.
For more details on using Binance, visit About BabiaHub, and please read our Disclaimer before trading.