An MT4 order is rejected when the trade server, or the terminal itself, refuses the request. The message tells you which check failed: price, stops, volume, margin, market hours, or a permission switch. Read the exact wording and code first, then fix that one parameter. This guide covers the common messages, including off quotes, invalid volume and trade disabled, and the MT5 equivalents. It also shows how to find the cause in your logs and how to keep copied orders from being rejected.
TL;DR
- Every rejection comes with a code. In MT4, 129 to 138 cover price, stops, volume, market hours, permissions, margin and requotes. MT5 uses 10006 and up.
- “Off quotes” means the server had no valid price to fill at that moment. Check market hours and volatility, then read the Mailbox and Journal.
- “Invalid volume” means your lot is outside the symbol’s minimum or maximum, or is not a multiple of the lot step.
- “Trade is disabled” is either a broker restriction on the account or symbol, or a platform switch such as Allow live trading.
- When a trade copier sends the order, the same rules apply on every client account. Lot size, symbol names and account permissions must all fit each broker.
What a rejection actually is
When you click Buy or Sell, MT4 sends a request to your broker’s trade server. The server checks it against the rules for your account and the symbol. If one check fails, it returns an error code and nothing is opened. Your terminal then shows a short message, and the full detail goes to the log.
MetaQuotes publishes the list of these codes in its MQL4 error code reference. The ones you will meet most often in manual trading:
| Code | Message | What it usually means |
|---|---|---|
| 129 | Invalid price | The price breaks the price step or the logic of the order type |
| 130 | Invalid stops | Stop loss or take profit is wrong or too close to the market |
| 131 | Invalid trade volume | Lot size is not allowed for this symbol |
| 132 | Market is closed | The instrument is outside its trading session |
| 133 | Trade is disabled | Trading is blocked for the account or symbol |
| 134 | Not enough money | Free margin does not cover the order |
| 135 | Price changed | The price moved between click and execution |
| 136 | Off quotes | No valid quote available for the request |
| 138 | Requote | The server offers a new price and asks you to confirm |
| 146 | Trade context busy | Another process is using the trading thread |
| 148 | Too many orders | You hit the broker’s limit on open and pending orders |
The same reference also lists 145 (modification denied because the order is too close to market), 147 (expiration denied), 149 (hedging prohibited) and 150 (closing prohibited by FIFO rules). Those last two matter a great deal for US accounts, covered below.
Off quotes: why the server had no price for you
“Off quotes” is the most searched MT4 rejection, and the most misunderstood. It does not mean your internet failed. It means the server could not give you a valid price at the moment your request arrived.
An AMarkets troubleshooting guide explains that MT4 shows this message when no current or still-valid market price exists for the instrument, or when the instrument is closed. It suggests checking trading hours and avoiding highly volatile, low-liquidity conditions.
In practice, off quotes clusters around a few situations:
- Market open and close. Liquidity is thin, quotes are sparse and the feed can skip.
- News releases. Prices jump faster than the server can confirm your price.
- Weekend gaps and rollover. Quotes may be paused or stale.
- Your price is stale. You clicked on a quote the server no longer honors.
OANDA’s US MT4 troubleshooting guide gives a useful first step: when Off quotes appears after an order attempt, open the Mailbox tab in the Terminal window, where the platform logs details about why the order was rejected.
What to do
- Check whether the symbol is inside its trading session in Market Watch.
- Wait a few seconds and retry rather than clicking repeatedly. Repeated clicks can produce a busy trade context (146).
- If you use market execution, set a reasonable slippage tolerance in the order window where your broker allows it.
- If it happens only around news or at the open, the cause is the market, not your setup.
Note that an order can be rejected for price reasons and still be correct in every other way. Retrying at a quiet moment is usually all it takes.
Invalid volume: getting lot size right
Error 131 (invalid trade volume) is almost always arithmetic. Every symbol has three volume rules set by the broker: a minimum lot, a maximum lot and a lot step. Your order must sit between the first two and be an exact multiple of the step.
Example: if the minimum is 0.01, the step is 0.01 and the maximum is 100, then 0.015 is rejected because it is not a multiple of the step, and 0.005 is rejected because it is below the minimum. If a different symbol uses a step of 0.1, then 0.25 fails there even though it would pass on another instrument.
To check the values in MT4:
- Open Market Watch (Ctrl+M).
- Right-click the symbol and choose Specification. Some builds use Ctrl+U for the symbol list.
- Read the minimal volume, maximal volume and volume step.
In MT5 the same failure comes back as return code 10014, invalid volume in the request, listed in MetaQuotes’ trade server return codes.
Volume limits differ between brokers and even between symbols at the same broker. Gold, indices and forex pairs often have different steps. A fixed lot that works on EURUSD may fail on another instrument. This is exactly where copying trades between accounts can bite, and it is why lot rounding needs to follow each account’s own rules.

Trade is disabled: permissions and restrictions
The question “what does Trade is disabled mean on MT4?” has two very different answers, depending on the code.
Error 133 (trade is disabled). The server refuses trading on this account or symbol. Common causes:
- The account is not yet activated, or is read-only (an investor password login).
- The broker set the instrument to close-only.
- The market is closed for that instrument.
Our guide on why trading is disabled on MT4 walks through each cause, including accounts that are not yet activated, instruments set to close only and closed markets. If you see it on a copied account, read Local Trade Copier and error 133 on the MT4 client account.
Error 4109 (trading not allowed). This one is a switch in your own terminal. The MQL4 reference says to enable Allow live trading in the EA’s properties. Check the Common tab of the EA and the automated trading button in the toolbar.
Other permission codes from the same MetaQuotes list:
- 4110: long positions are not allowed.
- 4111: short positions are not allowed.
- 4112: the trade server has disabled automated trading by Expert Advisors or scripts.
So a sell order rejected while buys work points to 4111, a broker-side restriction on that account or symbol. Only your broker can lift it.
Invalid stops, invalid price and modification denied
Error 130 appears when a stop loss or take profit is placed too close to the current price, or on the wrong side of it. Brokers define a minimum distance, often called the stops level, and some also set a freeze level that blocks changes to orders very near the market price. Look for both in the symbol Specification window.
The usual fixes:
- Move the stop or target farther from the price, at least the stops level.
- Check you did not swap them: for a buy, the stop loss goes below the entry and the take profit above.
- For pending orders, make sure the entry price is valid for the order type.
Error 129 (invalid price) often shows up when an order is sent with a price that does not match the current quote, or one that breaks the price step. Error 145 means a modification was denied, typically for the same proximity reason.
Not enough money, hedging and FIFO on US accounts
Error 134 means your free margin does not cover the requested volume. Reduce the lot size, close other positions or add funds. Leverage and margin involve real capital risk, and past results do not guarantee future performance, so size every order to your own account rather than to the maximum the platform allows.
US traders face two extra rules. Hedging is prohibited (error 149) and closing must follow FIFO order (error 150) on many US-regulated accounts. If an opposite order bounces, read why MT4 hedging is blocked for US traders under NFA Rule 2-43. If you copy trades to such accounts, see how the copier behaves with netting on FIFO accounts and its limitations.
Reading the logs: how to find the real cause
The pop-up message is only the headline. MT4 writes the detail in three places at the bottom of the terminal, and you can find them under View, then Terminal (Ctrl+T):
- Experts tab: messages printed by Expert Advisors and scripts, including the error code an EA received when its order failed.
- Journal tab: what the terminal itself did: connection events, login, and server replies to order requests.
- Mailbox tab: server notices, which can explain rejections as OANDA’s guide describes.
The EA-Coder guide to MT4 log files explains that the Experts and Journal tabs usually reveal the cause of a trading problem before you need to open the log files themselves. Use them in this order:
- Note the exact time of the rejection.
- Open the Journal and look at the lines at that timestamp. A connection drop or “no connection” points to the network, not the order.
- Open the Experts tab. An error number such as 130, 131 or 134 maps directly to the table above.
- If the number is above 4000 (for example 4106 for an unknown symbol, or 4109), the problem is in the terminal or EA settings, not the server.
- Right-click either tab and choose Open to reach the daily log files if you need a longer history.
In MT5, the code range is different. MetaQuotes defines 10006 as request rejected, 10015 as invalid price, 10016 as invalid stops, 10017 as trade disabled, 10018 as market closed, 10019 as insufficient money, 10020 as prices changed and 10021 as no quotes to process the request. It also defines 10024 as too-frequent requests, 10026 and 10027 as autotrading disabled by server or client, 10030 as an invalid filling type, 10033 as the pending-order limit and 10040 as the position limit. All are in the MT5 trade server return codes.
The filling type error (10030) is the one MT4 users do not expect. Brokers allow only certain fill policies for each symbol, and a request using another one is refused.
Rejections when you copy trades
A trade copier does not change any of these rules. It sends the same kind of request to each client account, and each broker’s server judges it independently. So a trade that fills on the master can be rejected on a client for reasons that were never visible on the master:
- The client’s minimum lot or lot step is different, so a scaled lot becomes invalid.
- The client broker names the symbol differently (a suffix or prefix), so the order cannot find it.
- The client account has less free margin, so the scaled order fails with 134.
- Trading is disabled on one account, or one instrument is close-only.
- The broker’s stops level is wider than the master’s.
Most of these are fixed at the setup stage, not by retrying. Our guide on instant versus market execution and symbol mapping covers the symbol and execution-mode side. If copies are missing altogether, what to do when Local Trade Copier does not copy trades is a step-by-step checklist.
A habit worth building: after you connect a new client account, send a small test order on each symbol you plan to copy and watch the Journal on that terminal. It takes a minute and shows you the account’s real limits.
A quick diagnostic checklist
| Symptom | First thing to check |
|---|---|
| Off quotes at news or open | Market hours, volatility; retry once |
| Invalid volume | Min, max and step in Specification |
| Trade is disabled (133) | Account activation, close-only, session hours |
| Trading not allowed (4109) | Allow live trading in EA and toolbar |
| Only sells or only buys rejected | Long or short restriction (4110, 4111) |
| Invalid stops (130) | Stops level and freeze level |
| Not enough money (134) | Free margin versus lot size |
| Trade context busy (146) | Too many EAs or scripts sending at once |
| Unknown symbol (4106) | Exact broker symbol name |
| Rejected only on copied accounts | Lot step, symbol mapping, permissions on that account |
Our view on rejections
After years of watching support questions, we see the same pattern: a rejection is rarely a mystery, it is a rule the trader could not see. The server enforces limits on volume, distance, margin and permissions, and each broker sets them differently.
That is why we built Local Trade Copier to run on your own Windows machine or VPS. Every order leaves from one place, one IP address, with no cloud hop in between, so when something fails the log you need is on the machine in front of you.
Our copier is designed to scale lots per client account and to follow each account’s own settings, because a fixed lot size is the most fragile part of any multi-account setup. It is replication software only. It copies trades that already exist and has no market logic of its own.
For accounts where the rules require trades to look manually placed, we also built a manual-like execution mode. We think a copier should adapt to each account’s rules, not ask you to memorize them.
Rimantas
Copying across several accounts without the guesswork
If you manage a few personal or funded accounts and are tired of hunting down why one of them rejected an order, Local Trade Copier handles MT4 and MT5 under one plan, with a 7-day free trial. Plans are published on our pricing page: Personal at €29 per month or €290 per year, Manager at €89 per month or €890 per year, and VIP at €199 per month or €1,990 per year.

You can see how it works first in the demo video, and read how the manual-like execution mode works for accounts that restrict automated trading. Setup steps are in the installation guide.
FAQ
Why is my sell order being rejected?
Start with the code. If buys work and sells fail, the account or symbol may not allow short positions (error 4111), and only your broker can change that. Other common causes are an invalid stop, a lot size outside the symbol’s limits, or insufficient free margin. On a US account, an opposite order against an existing position can also be refused under hedging rules.
Is MT4 being phased out?
There is no single answer, because availability depends on your broker. Some brokers have moved clients to MT5 while others still offer MT4, so check what your broker supports. If you run both platforms, a copier that handles MT4 to MT5 copying lets you keep one workflow.
What does “Trade is disabled” mean on MT4?
It usually means error 133: the server is not allowing trading on that account or symbol. Causes include an unactivated account, a read-only investor login, a close-only instrument or a closed market. If the code is 4109, the switch is in your terminal instead: enable Allow live trading in the EA properties.
How do I fix “off quotes” on MT4?
Confirm the market is open for that symbol, then retry after a few seconds instead of clicking repeatedly. Read the Mailbox and Journal tabs for the server’s explanation. If it recurs only during news or at the open, the cause is thin liquidity, and waiting for quieter conditions is the practical answer.
Why does MT5 show “order rejected” when MT4 did not?
MT5 reports separate return codes and adds checks such as the filling type. A request that MT4 accepted can fail in MT5 with 10030 if the fill policy is not allowed for that symbol. Check the symbol’s specification and the return code in the Journal.

