Cancel/Replace Orders Workflow: How It Works and Where It Breaks
Compartir
A cancel/replace workflow is a sequence of steps that changes a live order: you ask the venue to remove the working order and put a new one in its place, with a new price, size or other terms. It looks like one click. Underneath it is a request that can be accepted, rejected or beaten by a fill, and the outcome depends on your platform, your broker and the exchange. This guide walks through the workflow step by step, shows where it fails, and gives you a checklist for active trading.
TL;DR
- A cancel/replace is a request, not a guarantee. The original order can fill before the cancel arrives, and then you may end up with an unwanted second order or position.
- On US exchanges, changing price or increasing size generally sends you to the back of the queue. Decreasing size often keeps your place, but each venue’s rule decides.
- Many retail platforms handle a “modify” as delete-then-place for certain properties. MetaTrader 5, for example, cannot change a pending order’s volume in place.
- Protect yourself with a fixed routine: confirm the state, send one change, wait for the acknowledgment, then verify the working orders list.
Table of Contents
- What a cancel/replace actually is
- The workflow, step by step
- Why a replace can end badly
- Queue priority: the cost most traders ignore
- Platform by platform: what to expect
- A cancel/replace checklist you can reuse
- Why compliance cares
- Our perspective
- Taking the friction out of order management
- FAQ
- Sources
What a cancel/replace actually is
There are three related actions, and traders mix them up:
- Cancel: remove a working order. Nothing replaces it.
- Modify (amend): change a property of a working order, such as a stop-loss level, while the order keeps its identity.
- Cancel/replace: swap the working order for a new one that references the old one.
In FIX, the protocol used between institutions and brokers, the replace is a single message. According to the cTrader FIX specification, the request links to the original through the original client order ID (tag 41), so the broker can tie the new instruction to the old order record. That is an atomic request: one message, one decision.
Many retail workflows are different. The MQL5 documentation for MetaTrader 5 explains that you can change a pending order’s activation price, protection levels and expiration, but the order type and volume cannot be changed. If you want a different size, you delete the order and place a new one. Two steps, and a gap between them.
The workflow, step by step
Here is the sequence that holds across most platforms, with the failure point at each stage.
Step 1: Confirm the order is still working
Before you touch anything, check that the order is open. A limit order that sits near the market can fill while you are deciding. One forum thread about a cancel/replace on a thinkorswim web straddle order is a good example of the problem traders describe: the original executed while the revision was still being typed. The lesson is not about one platform. The state you saw on screen is already a little old when you act.
On thinkorswim, the Today’s Trade Activity panel separates working, filled and canceled orders, which is where you verify state.
Step 2: Decide what really needs to change
The cheapest change is the one that keeps your place and your order identity. Ask:
- Only the stop or target? On most platforms this is a plain modify, not a replace.
- Only a smaller size? This is often the friendliest change for queue priority.
- A new price or a larger size? Expect a true replace and a new queue position.
Step 3: Send one request, and only one
The common mistake under pressure is clicking twice. Sending a second cancel/replace before the first is acknowledged is how traders get duplicate orders, rejected messages and confusion about which order is live. Send once, then wait.
Step 4: Read the acknowledgment or the reject
In FIX, a broker that cannot honor a cancel or cancel/replace request answers with an Order Cancel Reject message (MsgType 9), as the FIX 4.3 dictionary entry describes. Retail platforms show the same event as an error or a “order not found” line in the journal. A reject usually means the order already filled, was already canceled, or the request was invalid. Treat it as information about your position, not as noise.
Step 5: Verify the final state
Open the working orders and positions list. Confirm that exactly one order exists at the new terms, or none, and that your net position is what you expect. Only then move on.
Why a replace can end badly
The race between cancel and fill
The cancel request travels to the venue, and a fill can happen on the way. According to MTrading’s terms of business, a broker confirms execution, cancellation or modification of a customer order electronically through MetaTrader 4 and 5, which is the confirmation you should wait for rather than assuming the change took effect. Practically, a cancel is a request until you see it confirmed.
The bad outcomes are:
- The original fills, the replacement is then also placed or filled, and you are double-sized.
- The cancel succeeds but the replacement is rejected, and you have no order at all while the market runs.
- The replacement fills at a worse price because the market moved during the gap.
Delete-then-place gaps
Where the platform does the replace in two steps, the gap is real. Say you want to change a 2-lot buy limit into a 1-lot buy limit on MetaTrader 5. You delete the 2-lot order, then submit a 1-lot order. Between those two events you have nothing working. If price touches your level in that window, you miss the fill.
NinjaTrader’s SuperDOM guide shows the fast version: you select the order and click the new price cell. It is quick on screen, but whether your broker processes that as an atomic update or a cancel followed by a new order depends on the connection. Ask your broker or check your order logs.
Queue priority: the cost most traders ignore
If you trade liquid stocks, ETFs or options, your place in the queue has value. Exchange rules define what keeps it.
The SEC’s approval order for Cboe’s Rule 5.32 amendment on cancel/replace handling is a useful read on how this is written down. The rule text, quoted in a related SEC filing, says a cancel/replace message for a resting order causes it to lose priority and take a position based on the time the message is received. The exceptions are narrow: only decreasing quantity, only modifying a reserve order’s max floor, or only modifying a stop price.
A simple summary for planning purposes, with the caveat that every venue publishes its own rules:
| Change | Typical effect on queue position |
|---|---|
| Decrease size only | Often keeps priority |
| Increase size | Usually loses priority |
| Change limit price | Loses priority |
| “No-change” replace | Can lose priority on some venues |
| Stop price only (stop orders) | Can keep priority on some venues |
The practical conclusion: if you want to reduce exposure, reduce size rather than cancel and re-enter. If you want to chase price, accept that you rejoin the queue.
For reference, the NYSE also has specific rules on when closing-auction orders can be canceled, covered in the SEC order on NYSE Rule 7.35B. If you trade into the close, read the cutoff rules for your venue before you rely on a late cancel.
Platform by platform: what to expect
MetaTrader 4 and 5
Stops and targets modify in place. Volume does not. For a size change on a pending order, plan on delete-then-place and accept the gap, or place a second order for the difference instead of replacing the first. For open positions, scaling down is a partial close rather than a replace, which our guide to MT5 partial close and scaling out covers.
cTrader
cTrader’s Open API has dedicated messages, including a request to cancel an existing pending order, documented in the Open API reference, and the FIX interface supports the atomic replace described above. If you manage orders through the interface, our overview of cTrader trade management features walks through what you can change and how.
NinjaTrader
Drag or click-to-modify on the SuperDOM is fast, and you can enable single-click modification for profit target and stop-loss orders. For futures, the daily problem is scaling out without disturbing your protective orders. See our NinjaTrader partial close guide for futures.
thinkorswim and TradingView
Both let you edit working orders from the order panel or chart. The behavior underneath is set by the broker connected to the platform. On TradingView in particular, speed depends on how few clicks sit between intent and action, which we cover in executing trades faster on TradingView.
If you want a broader frame for how execution quality affects results, this overview of trade execution best practices is a good companion to the platform specifics above.
A cancel/replace checklist you can reuse
Print this or pin it next to your screen.
- Check state. Is the order still working? Look at the orders list, not your memory of it.
- Pick the lightest change. Modify the stop, reduce size, or cancel. Replace only when you must.
- Know your platform’s behavior. Atomic replace, or delete-then-place?
- Send once. No second click until the first is acknowledged.
- Read the response. Acknowledged, rejected, or “order not found”.
- Verify exposure. Count working orders and net position.
- Log surprises. A double fill or a missed replace is a process bug. Write down what happened.
Professional systems add automation for the same ideas: they handle rejects and “order not found” responses instead of assuming success, and they never fire a second request on an unacknowledged first one.
Why compliance cares
If you work at a prop firm or desk, the workflow is also an audit trail. Market centers must track partial fills and cancellations accurately for SEC reporting, which the SEC discusses in its Rule 605 FAQ. For your own records, that means an order history that shows each cancel, replace and fill in sequence is worth keeping. Check your firm’s rules and your broker’s statements, and ask your compliance officer if a specific practice is unclear.
Our perspective
We build trading keypads, so we watch how traders actually lose money on order changes. It is rarely the protocol. It is a hurried second click, a stop moved on the wrong ticket, or a size change typed into the wrong field while the market is moving.
Three convictions come out of that.
First, the fewer decisions you make under pressure, the better. A programmed button that does one defined thing, such as moving a stop to break-even or closing a set portion, removes a field to mistype. That is why our keypads focus on stop-loss and take-profit modification, partial closures, break-even and risk settings for lot size, rather than free-form entry.

Second, the lightest change is the safest one. Moving protective levels in place is simpler than rebuilding an order, and a partial close is simpler than a cancel and a new order.
Third, no hardware replaces knowing your platform. Learn whether your setup does an atomic replace or a delete-then-place, and check your order list after every change.
— key-trade
Taking the friction out of order management
If your workflow involves frequent stop moves, partial closes and break-even adjustments, a dedicated keypad can make those actions repeatable. The Key-Trade Professional Trading Keyboard is available from 59 USD, one-off, and works with TradingView, MetaTrader 4 and 5, cTrader, NinjaTrader, SierraChart, Thinkorswim and Tradovate. It uses programmable buttons, needs no coding, and ships worldwide. To prevent accidental orders on a shared desk, our trading hotkeys setup guide for prop desks is a good place to start.
FAQ
Is cancel/replace the same as modifying an order?
Not always. A modify changes a property such as a stop level on an order that keeps its identity. A cancel/replace swaps the working order for a new one. Platforms often label both as “modify”, so check what your platform does for each property.
Can I lose my place in line when I replace an order?
Yes. On US exchanges, changing the price or increasing the size typically puts the order at the back of the queue, while decreasing size often keeps its place. The exact rule is set by each venue, as the Cboe rule filing shows.
What happens if my order fills while I am replacing it?
The replace is rejected or moot, because the original order no longer exists. Depending on your platform, you may then be left with a position you did not plan or a second order that is still live. Check your positions and working orders immediately after any reject.
Why can’t I change the volume of a pending order in MetaTrader 5?
The platform allows changes to activation price, protection levels and expiration, but not to order type or volume, according to the MQL5 documentation. For a different size, delete the order and place a new one.
Sources
- Cboe Rule 5.32 cancel/replace handling, SEC approval order
- Cboe Rule 5.32(e) proposed rule change, SEC filing
- NYSE Rule 7.35B approval order, SEC
- SEC Rule 605 FAQ
- MQL5: Modifying a pending order
- cTrader FIX API specification
- cTrader Open API messages
- NinjaTrader SuperDOM: modifying and cancelling orders
- MTrading terms of business
- thinkorswim Today’s Trade Activity
- FIX 4.3 dictionary: Order Cancel Reject