Is there any order type that will allow me to set both an upper and lower bound at once. For example, let's say I buy stock in company ABC for $2. I believe it will rise to $3 and I want to sell at that price. However, if it falls to $1 I would like to cut my losses. Is this possible?


Yes there is, it is called a One-Cancels-the-Other Order (OCO). Investopedia defines a OCO order as:

Definition of 'One-Cancels-the-Other Order - OCO'

A pair of orders stipulating that if one order is executed, then the other order is automatically canceled. A one-cancels-the-other order (OCO) combines a stop order with a limit order on an automated trading platform. When either the stop or limit level is reached and the order executed, the other order will be automatically canceled. Seasoned traders use OCO orders to mitigate risk.

I use CMC Markets in Australia, and they allow free conditional and OCO orders either when initially placing a buy order or after already buying a stock.

See the Place New Order box below:

enter image description here

Once you have selected a stock to buy, the number of shares you want to buy and at what price you can place up to 3 conditional orders.

The first condition is a "Place order if..." conditional order. Here you can place a condition that your buy order will only be placed onto the market if that condition is met first.

Say the stock last traded at $9.80 and you only want to place your order the next day if the stock price moves above the current resistance at $10.00. So you would Place order if Price is at or above $10.00. So if the next day the price moves up to $10 or above your order will be placed onto the market.

The next two conditional orders form part of the OCO Orders.

The second condition is a "Stop loss" conditional order. Here you place the price you want to sell at if the price drops to or past your stop loss price. It will only be placed on to the market if your buy order gets traded.

So if you wanted to place your stop loss at $9.00, you would type in 9.00 in the box after "If at or below ?" and select if you want a limit or market order.

The third condition is a "Take profit" conditional order. This allows you to take profits if the stock reaches a certain price.

Say you wanted to take profits at 30%, that is if the price reached $13.00. So you would type in 13.00 in the box after "If at or above ?" and again select if you want a limit or market order.

Once you have bought the stock if the stop order gets triggered then the take profit order gets cancelled automatically. If on the other hand the take profit order gets triggered then the stop loss order gets cancelled automatically.

These OCO conditional orders can be placed either at the time you enter your buy order or after you have already bought the stock, and they can be edited or deleted at any time.

The broker you use may have a different process for entering conditional and OCO orders such as these.

  • 2
    Excellent answer, thank you! Appreciate the level of detail and screenshot!
    – JP.
    Jun 21 '14 at 18:36

In a way yes but I doubt you'd want that. A "Stop-Limit" order has both stop and limit components to it but I doubt this gives you what you want. In your example, if the stock falls to $1/share then the limit order of $3/share would be triggered but this isn't quite what I'd think you'd want to see.

I'd suggest considering having 2 orders: A stop order to limit losses and a limit order to sell that are separate rather than fusing them together that likely isn't going to work.

  • 2
    The problem in having 2 separate orders is that if one gets triggered you have to remember to manually cancel the other order, or else you may find yourself potentially getting into trouble. The answer is to use a OCO order so if one order gets triggered the other order gets cancelled automatically.
    – Victor
    Jun 21 '14 at 6:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.