What an OCO order is and when to use it
An OCO order (One-Cancels-Other) is a pair of orders you set up at the same time: one to sell at a higher price if the stock goes up, and one to sell at a lower price if it goes down. When one order fills, the other cancels automatically. You use it to lock in a profit target and a loss limit without having to watch the stock all day.
OCO orders are useful when you own a stock but want to exit in either direction — you don't want to hold through a big swing. Instead of placing two separate orders and hoping you remember to cancel the second one, an OCO order does that work for you.
Key Takeaways
- Robinhood's OCO order requires you to own the stock first; you cannot create an OCO order to enter a position.
- You set a profit target (the higher price) and a stop-loss level (the lower price) at the same time, and whichever fills first cancels the other.
- OCO orders are available on stocks and some ETFs, but not on options or crypto in Robinhood.
- The order appears in your order history as two linked orders, and you can cancel the entire OCO pair before either one fills.
Step-by-step: placing an OCO order in Robinhood
Open the stock you own in Robinhood. Tap or click the "Sell" button. At the top of the order screen, you will see order type options: "Market", "Limit", "Stop Loss", and others. Swipe or scroll to find "OCO" and select it.
The screen will show two price fields. The first is your profit target — the price at which you want to sell if the stock rises. Enter that price. The second is your stop price — the price at which you want to sell if the stock falls. Enter that price too. Robinhood will calculate how many shares you are selling (usually all of them, but you can change the quantity). Review the order and tap "Place Order".
Robinhood will send both orders to the market. From that moment on, if the stock hits your profit target first, that sell order fills and the stop-loss order cancels. If the stock hits your stop price first, that order fills and the profit target cancels. If neither price is reached, both orders stay open until you cancel them or the market closes.
What happens if only one price is hit
Once one leg of your OCO order fills, the other is cancelled immediately. You will see a notification in Robinhood showing that one order filled and the other was cancelled. Your position in that stock is closed (or reduced, if you sold only part of your holding).
If neither price is reached by the end of the trading day, both orders remain open the next day — they do not expire at market close. You can cancel them manually at any time by going to your orders and selecting "Cancel Order".
Common mistakes and how to avoid them
The most common mistake is setting the stop price too close to the current stock price. If a stock is trading at $50 and you set a stop at $49, a small dip will trigger the sale and lock in a loss. Give yourself a realistic buffer based on how much the stock normally moves in a day.
Another mistake is forgetting that OCO orders stay open overnight. If you place an OCO order at 3:50 p.m. and neither price is hit before the close, both orders will still be active the next morning when the market opens. Check your open orders before you leave for the day if you do not want overnight exposure.
Do not assume an OCO order will protect you in a gap down (a stock opening far below your stop price). If a stock opens at $40 but your stop is set at $45, your stop order will fill at the market price ($40 or lower), not at $45. A stop order becomes a market order once triggered, so you may sell for less than you expected.
OCO orders versus other order types
A limit order lets you set one price to sell at, but it will not fill if the stock never reaches that price. An OCO order gives you two prices at once, so you are covered in both directions. A stop-loss order only protects you on the downside; it does not capture upside. An OCO order does both.
If you want to sell only if the price rises above a certain level, a regular limit order is simpler. If you want to sell at a profit or cut losses, an OCO order is the right tool. Robinhood does not offer trailing stops (orders that adjust automatically as the price rises), so an OCO order with a fixed stop price is your main way to automate a loss limit.
Fees and restrictions on OCO orders
Robinhood does not charge a commission to place an OCO order. There is no fee for the order itself, and no fee when one leg fills and the other cancels. You pay the standard bid-ask spread when your order fills, just as you would with any other order type.
OCO orders work only during regular market hours (9:30 a.m. to 4:00 p.m. Eastern time on weekdays). If you place an OCO order during extended hours, Robinhood will reject it. You also cannot use OCO orders on fractional shares, so if you own 2.5 shares of a stock, you can only sell whole shares using an OCO order.
Frequently Asked Questions
Can I place an OCO order to buy a stock I don't own yet?
No. OCO orders in Robinhood work only for selling stock you already own. To enter a position, you must place a regular buy order first, then set up an OCO order to exit later.
What if the stock gaps past both my profit target and my stop price?
Whichever price is hit first will fill. If a stock opens at $60 but your profit target is $55 and your stop is $65, the order that was set to trigger first in the price direction will fill at the market price. The other order cancels. You cannot control which one fills in a gap scenario.
Do OCO orders work on options or crypto in Robinhood?
No. OCO orders are available only on stocks and some ETFs. Robinhood does not offer OCO orders for options trading or cryptocurrency.
Can I change the prices on an OCO order after I place it?
No. Once an OCO order is placed, you cannot edit it. You must cancel the entire order and place a new one with the new prices.
What happens to my OCO order if the market is closed?
Your OCO order stays open and active. If neither price is hit during the trading day, both orders carry over to the next market open. If you do not want them active overnight, cancel them before the close.