Bracket Orders and OCO for Futures: Automate Your Trade Management
Category: Getting Started
Master bracket orders and OCO setups for futures trading. Learn NinjaTrader ATM strategies, multi-target exits, and how to automate trade management.
What Are Bracket Orders?
A bracket order is a three-part order structure: an entry order flanked by a profit target above and a stop loss below (for longs) or the reverse (for shorts). When one exit order fills, the other automatically cancels. This is the OCO — One Cancels Other — logic that keeps you from holding a dead order after you've exited.
In futures trading, bracket orders are non-negotiable for disciplined execution. They remove the emotional decision of "should I take profit here?" or "should I move my stop?" before the trade even begins. Your exit plan is locked in the moment you enter.
If you've read our risk management guide, you know that predefined exits are the foundation of every risk framework. Bracket orders are how you implement that framework mechanically.
How OCO Orders Work in Futures
OCO stands for One Cancels Other. It links two (or more) orders so that when any one of them fills, the remaining orders are automatically cancelled.
The most common OCO setup in futures:
- Profit target (limit order) at your planned exit price
- Stop loss (stop order) at your maximum acceptable loss
When price hits your target, the limit fills and the stop cancels instantly. When price hits your stop, the stop fills and the target cancels. Either way, you're flat with no resting orders left in the market.
Without OCO, you'd have to manually cancel the remaining order every time — which means you're one distraction away from accidentally being in two positions or holding a stop order with no position to protect.
Advanced OCO Configurations
Beyond the basic bracket, OCO logic enables several powerful order structures:
- OCO entry orders: Place a buy stop above resistance AND a sell stop below support. Whichever direction breaks first, you're in — and the other entry cancels. This is a classic breakout capture technique used in opening range breakout (ORB) trading.
- Multi-target brackets: Scale out of a 3-contract position with targets at 3 different levels. Each target is a separate limit order, all linked via OCO to your single stop loss.
- Bracket + trailing stop: Start with a fixed bracket, then switch the stop to a trailing stop after price moves a certain amount in your favor.
NinjaTrader ATM Strategies: Bracket Orders Done Right
NinjaTrader's ATM (Advanced Trade Management) system is one of the most powerful bracket order implementations available. It lets you define complex order management templates that attach to every trade automatically.
Setting Up a Basic ATM Strategy
- Open any order entry window (Chart Trader, SuperDOM, or Basic Entry).
- Click the ATM Strategy dropdown and select <Custom>.
- Set your Stop Loss (in ticks or points).
- Set your Profit Target (in ticks or points).
- Click Save As and name your template (e.g., "ES_2pt_Stop_4pt_Target").
- Select this template before placing any order — the bracket attaches automatically.
Once saved, you select your ATM template and every market or limit order you place automatically gets the bracket. One click to enter, full exit plan deployed instantly.
Multi-Target ATM Setup
Scaling out is where ATM strategies really shine. Here's how to set up a 2-target exit on a 2-contract position:
- In the ATM custom dialog, set Quantity to 2 contracts.
- Target 1: 1 contract at +8 ticks (2 points on ES).
- Target 2: 1 contract at +16 ticks (4 points on ES).
- Stop Loss: All contracts at -8 ticks (2 points on ES).
When Target 1 fills, you've locked in profit on half the position. The remaining contract rides to Target 2 with the same stop — or you can configure the stop to move to breakeven after Target 1 fills. This is a proven approach that reduces risk while capturing larger moves.
The allocation percentages auto-normalize. If you're trading 3 contracts with targets at different levels, NinjaTrader distributes the quantity evenly or by your specified percentages.
Auto-Breakeven and Trailing Stops in ATM
NinjaTrader ATM supports conditional stop modifications:
- Auto-breakeven: Move your stop to entry price after price moves X ticks in your favor. This eliminates risk on the trade after initial momentum confirms your direction.
- Trailing stop: After a specified trigger, the stop trails price by X ticks. As price moves in your favor, your stop follows — locking in progressively more profit.
- Simulated stop: NinjaTrader can simulate stop orders client-side, which can reduce slippage on stop-limit orders in fast markets.
These features turn a static bracket into a dynamic trade management system. You enter with a fixed plan, and the plan evolves as the trade develops — all automatically. For more on trailing stop techniques, see our trailing stop strategy guide.
Bracket Order Strategies for Common Scenarios
Scenario 1: ORB Breakout Bracket
For opening range breakout trades:
- Entry: OCO bracket with a buy stop above the opening range high and a sell stop below the opening range low.
- Stop: Opposite side of the opening range.
- Target: 1.5x to 2x the opening range width.
This captures the directional break without requiring you to predict which way the market will go. The OCO ensures only one side fills.
Scenario 2: Pullback Entry with Tight Bracket
For trend pullback entries:
- Entry: Limit order at a key pullback level (EMA, VWAP, Fibonacci level).
- Stop: 4–8 ticks below the pullback level (for longs on ES).
- Target: Prior swing high or 2x the stop distance.
The bracket ensures that if the pullback level fails, you're out with a small loss. If it holds, you ride the trend continuation to your target.
Scenario 3: Scale-Out Bracket for Runners
For high-conviction trades where you want to capture large moves:
- Position: 3 contracts on NQ.
- Target 1: 1 contract at +20 ticks (5 points, $100).
- Target 2: 1 contract at +40 ticks (10 points, $200).
- Target 3: 1 contract with trailing stop (no fixed target, ride the trend).
- Stop: All contracts at -12 ticks (3 points, $60 per contract).
Target 1 is a quick win that reduces position risk. Target 2 captures the expected move. Target 3 is the lottery ticket — it has a wide trailing stop and captures the rare large-move days that generate outsized returns.
For small accounts, the same logic works with micro futures (MES/MNQ) at 1/10th the dollar value.
Common Bracket Order Mistakes
Even experienced traders get these wrong:
- Forgetting to activate OCO before placing entries. In NinjaTrader, OCO must be enabled (Ctrl+Z or right-click menu) before placing paired orders. If you forget, your orders aren't linked and both can fill — creating an unintended position.
- Stops too tight for the instrument. A 4-tick stop on NQ during the opening 15 minutes is almost certain to get stopped out by noise. Match your stop width to the instrument's volatility. See our stop loss placement guide for data-driven approaches.
- Not accounting for slippage on stops. Stop-market orders in fast markets can slip several ticks. If your risk calculation assumes zero slippage, you're underestimating your actual risk.
- Moving stops manually. The whole point of a bracket is to remove emotional interference. If you're constantly adjusting your stop during the trade, you've defeated the purpose. Set it and honor it.
- Ignoring partial fill scenarios. On multi-target brackets with low-liquidity instruments, one target might fill while another doesn't. NinjaTrader handles this well with ATM, but always verify your position after partial fills.
Bracket Orders and Position Sizing
Your bracket order defines your risk per trade. This connects directly to position sizing:
- Define your dollar risk per trade (e.g., $200 max loss).
- Set your stop distance in ticks (e.g., 8 ticks on ES = 2 points = $100 per contract).
- Calculate position size: $200 / $100 = 2 contracts.
- Set your ATM template to 2 contracts with 8-tick stop and your target levels.
This formula keeps your risk constant regardless of market conditions. When volatility expands and you need wider stops, the formula reduces your position size automatically. When volatility contracts, you can trade more contracts with tighter stops.
NocNoe's trade journal tracks your bracket configurations alongside trade outcomes, letting you analyze which stop/target ratios produce the best results for each instrument and session. The AI Coach can identify patterns in your bracket performance — for example, whether your Target 2 gets hit often enough to justify holding, or if you'd be better off with a tighter single target.
Automating Beyond Brackets
Bracket orders are the first step toward fully automated trade management. The next level:
- Time-based exits: Auto-flatten positions 5 minutes before the end of RTH, regardless of target or stop.
- Condition-based modifications: If the market prints a reversal signal (e.g., a VWAP rejection), tighten the trailing stop automatically.
- Portfolio-level brackets: If you're trading multiple instruments (ES + NQ), set a daily max loss that flattens all positions and disables trading for the day.
NinjaTrader's NinjaScript allows all of these. For traders who prefer not to code, NocNoe's automated strategies handle entry, exit, and risk management as an integrated system — brackets are just one piece of the execution puzzle.
Whether you trade manually with ATM templates or run fully automated strategies, bracket orders are the mechanical backbone of disciplined trading. They enforce your plan when your emotions won't.
\n\nBracket Orders Across Different Market Conditions
\nYour bracket parameters should adapt to market conditions — not remain static regardless of volatility and session.
\n\nHigh-Volatility Sessions (FOMC, CPI, NFP)
\nDuring major economic events, volatility can spike 3–5x above normal. Standard brackets that work on a typical Tuesday morning will get stopped out instantly during an FOMC release. Widen your stops by 50%–100% during scheduled high-impact events, and either reduce position size proportionally or skip the first 5 minutes of post-announcement action entirely.
\n\nLow-Volatility Sessions (Lunch Hour, Summer Fridays)
\nDuring quiet periods, tighten your brackets. A 4-point stop on ES during the lunch hour means you're risking too much relative to the available movement. Consider 2–3 point stops with correspondingly tighter targets, or simply step away. The best trade during low volatility is often no trade.
\n\nTrending vs. Range-Bound Days
\nOn trend days — when price moves directionally all session — your bracket's trailing stop component matters most. Let runners run. On range-bound days, your fixed targets matter more — take profit at the range boundary because the breakout isn't coming. Identifying the day type early using market profile analysis helps you select the right bracket configuration.
\n\nBuilding Your Bracket Order Playbook
\nCreate 3–5 ATM templates in NinjaTrader, each designed for a specific scenario:
\n- \n
- Scalp template: Tight stop (4–6 ticks on ES), single target (8–10 ticks), no trailing. For quick momentum trades. \n
- Standard template: Medium stop (8–10 ticks), two targets (12 and 20 ticks), auto-breakeven after Target 1. Your everyday setup. \n
- Runner template: Wider stop (12–16 ticks), first target at 16 ticks, second target trailing. For high-conviction trend trades. \n
- News template: Wide stop (16–24 ticks), single wide target (30+ ticks). For post-event momentum captures. \n
Label each template clearly and select the right one before entering. This eliminates the in-the-moment decision of how to manage the trade — you've already decided during your pre-market preparation.
\nLog which template you use on each trade in your trade journal. After a month of data, you'll know which templates are working and which need adjustment. That's how you evolve from guessing at bracket parameters to knowing them based on your own performance data.
Risk Disclosure: Futures trading involves substantial risk of loss and is not suitable for all investors. Past performance is not indicative of future results. The information in this article is for educational purposes only and should not be considered financial advice. Always trade with capital you can afford to lose and consult a licensed financial advisor before making trading decisions.
NinjaTrader® is a registered trademark of NinjaTrader Group, LLC. No NinjaTrader company has any affiliation with the owner, developer, or provider of the products or services described herein, or any interest, ownership or otherwise, in any such product or service, or endorses, recommends or approves any such product or service.