What is OCO Order?
One-Cancels-Other (OCO) pairs two working orders so that when either fills, the broker cancels the other. Traders typically place a profit target and a stop-loss together after entry.
Formula
OCO Exit Strategy: You own 100 shares at ₹500 Order 1: Sell limit at ₹550 (take profit) Order 2: Sell stop at ₹475 (stop loss) Link: OCO Scenario A: Price rises to ₹550 → Limit order triggers, sells at ₹550 → Stop at ₹475 automatically cancels → Position closed for profit Scenario B: Price falls to ₹475 → Stop order triggers, sells at ~₹475 → Limit at ₹550 automatically cancels → Position closed for loss
Indian market context (NSE)
Reference levels: Nifty 50 at 24,300, Reliance Industries at ₹1,300, Bank Nifty futures at 55,000 (lot size 30). Examples below show how OCO Order shows up on Indian index, equity, and futures books — update to live quotes in your journal.
Nifty 50 perspective
OCO Order on Nifty futures at 24,300: verify freeze quantity and tick size on NSE; market orders in opening auction behave differently from continuous session.
Reliance Industries perspective
OCO Order on Reliance (₹1,300): AMO and GTT rules vary by broker; intraday MIS auto-square-off at 15:15 IST overrides resting oco order unless converted.
Bank Nifty futures perspective
OCO Order on Bank Nifty (55,000): bracket/OCO availability depends on broker stack — test fill quality on 100-point stop triggers before live size.
OCO vs bracket vs cover order on Indian brokers
| Product | What it links | Typical use on NSE |
|---|---|---|
| OCO | Two sibling orders (target + stop) | After you are already filled |
| Bracket order | Entry + target + stop as one ticket | Entry automation on MIS/intraday |
| Cover order | Entry with compulsory stop | Forced risk wrapper; target optional |
Do not treat these labels as interchangeable in your journal. A “bracket” fill that was really a manual entry plus OCO exits will look like perfect automation in broker UI while your process score should mark it as discretionary entry + OCO exit.
Worked example: Bank Nifty OCO after a long call
You buy one lot of Bank Nifty 52,000 CE at ₹185 after a morning breakout. Immediately place an OCO: sell limit at ₹260 (target) and stop-market at ₹140 (stop). Planned risk is ₹45 × lot size before charges. If the stop fills on a fakeout, the target cancels automatically — you should still tag the outcome as a planned stop, not a “broker error,” unless the OCO link failed and both legs somehow remained live.
- Log planned target and stop prices in the entry note before the OCO is placed.
- Record whether the exit was target-hit, stop-hit, or you cancelled OCO and managed manually.
- On weekly review, compare expectancy for OCO-managed tags vs discretionary exits on the same setup.
Failure modes that distort journal stats
- Partial fills on one leg while the other stays live — broker rules differ; screenshot the order book.
- Modifying quantity on one leg breaks the OCO pair on some platforms.
- Gap opens through the stop — stop becomes marketable and slippage exceeds planned R.
- Trailing the stop outside OCO while leaving the original target — hybrid management needs a separate tag.
How to validate
- Validate OCO Order fills against broker contract notes monthly.
- Measure median slippage in points/₹ for OCO Order on Bank Nifty vs mid-caps.
- Flag sessions with abnormal rejections or partial fills for separate review.
- Compare limit vs market tags only on symbols with similar liquidity.
How to track in TradeLyser
- Record order type, limit price, fill price, and latency on the trade.
- Tag “slippage > plan” when OCO Order fills worse than expected.
- Monthly slippage report by symbol and order type in analytics.
- Reconcile with broker order log quarterly.
Best practices
- Choose OCO Order before the move, not after FOMO entry.
- Default to limits on illiquid mid-caps; markets on urgent exits only.
- Log rejected orders — they reveal unrealistic limit discipline.
- Review slippage in R-multiples, not only rupees.
Common pitfalls
- Chasing with market orders after OCO Order already moved.
- Using limits on fast Bank Nifty breaks without timeout rules.
- Not recording partial fills — skews performance stats.
- Assuming broker fills match intended OCO Order every time.
How to use this in TradeLyser
Create tags “oco-exit” and “manual-exit” under each strategy. Every Friday, sort by exit method — if manual exits beat OCO on the same setup, your OCO distances may be too tight for Bank Nifty noise, not your edge.
Related terms
A bracket order places entry with predefined profit target and stop-loss (OCO). It enforces planned R:R if fills match plan.
Cover order is broker product combining main order with mandatory stop-loss leg.
Day trading opens and closes positions within the same session, avoiding overnight gap risk on cash products.
A stop loss is a pre-defined exit when the market moves against you by a set amount. It caps loss per trade when fills match your plan.
Take-profit order closes position when price reaches profit level.
FAQ
Is OCO available on all Indian brokers?
Naming and support vary (OCO, BO, cover, Smart Order). Map your broker’s product to one journal tag family so expectancy stays comparable across platforms.
Should I use OCO on illiquid stock options?
Prefer liquid index options first. Thin books can fill one leg with large slippage while the cancel of the other arrives late — planned R becomes fiction.
What if I cancel OCO mid-trade?
Tag the trade “oco-cancelled.” Review whether cancellations cluster after losses — that pattern often predicts revenge size-ups.
OCO vs leaving a naked stop only?
A stop-only exit protects downside but leaves profit taking discretionary. OCO enforces both sides; choose based on whether your edge is entry quality or exit discipline.
Start journaling with
TradeLyser
Connect your broker, tag strategies, and review performance with AI-assisted insights.