Step 1: Verify Your Account Login Credentials
A surprising number of MT4 trade disabled errors trace back to a single overlooked detail: the wrong password. Before adjusting any EA settings or platform toggles, confirm which account type you are logged into — because the credential type alone determines whether trading is possible at all.
⚠ Warning: MetaTrader accounts have two distinct passwords. The Master password grants full trading access. The Investor password grants read-only chart access only. Logging in with the Investor password globally disables the
OrderSend()function, triggering MQL4 error 133 (trade disabled) on every EA trade attempt — regardless of how your Expert Advisor is configured.
According to the EA-Coder Troubleshooting Guide, Investor passwords provide read-only access, which globally disables OrderSend() at the platform level. No EA modification or MQL4 setting can override this restriction.
Follow these steps to verify and correct your login credentials:
- Open MetaTrader 4 or MetaTrader 5 and navigate to File > Login to Trade Account.
- Re-enter your account number and confirm you are using the Master password provided by your broker — not the Investor password.
- Click Login and wait for the connection to establish.
- Open the Journal tab at the bottom of the terminal (MT4: Terminal > Journal).
- Check the log entry — a successful Master login displays “Login successful”, while an Investor login displays “Login read-only”.
- Contact your broker directly if you have lost your Master password; never attempt to trade on a read-only connection.
Confirming a "Login successful" entry in the Journal eliminates credential-level restrictions as the source of the error. With account access verified, the next step is ensuring the platform's global and local algorithmic trading settings are correctly enabled for your EA.
Step 2: Enable Global and Local Algo Trading Settings
Once your login credentials check out, the next most common cause of a disabled trade error is a two-tier permission system that catches many traders off guard. MetaTrader separates trading permission into a global switch (platform-wide) and a local switch (per-chart EA). Both must be active simultaneously. According to the MetaTrader 5 Help Documentation, Error 4752 (TRADE_RETCODE_TRADE_DISABLED) is frequently triggered when the global Algo Trading button is disabled — meaning your EA configuration is irrelevant until the platform-level switch is on. This is the most direct path to resolving an MT5 trade disabled error before touching a single line of MQL5 code.
Follow these steps to enable both permission layers:
- Toggle the global switch to green. In MT4, locate the AutoTrading button in the toolbar and click it until it turns green. In MT5, the equivalent button is labeled Algo Trading. A gray or red button means all EAs are blocked platform-wide, regardless of their individual settings.
- Right-click the chart running your EA and navigate to Expert Advisors > Properties to open the EA configuration dialog.
- Select the Common tab and confirm that Allow Live Trading (MT4) or Allow Algo Trading (MT5) is checked. Per the [MT4 platform documentation](https://www.metatrader4.com/en/trading-platform/help/autotrading/experts/experts_setup), this checkbox controls whether the individual EA has permission to place orders, independent of the global switch.
- Click OK to save the properties and apply the change immediately to the running EA.
- Verify the chart icon. In MT4, a smiley face icon appears in the top-right corner of the chart when the EA is active and permitted to trade — a frown indicates a permission block. In MT5, a blue icon serves the same purpose. If either icon shows an error state after completing the steps above, the block is likely originating elsewhere.
- Check the Experts tab in the terminal window for any logged permission errors that may clarify whether the remaining block is local or broker-side.
With both permission layers confirmed active and the chart icon displaying correctly, your EA should resume normal execution. If the icon still shows a blocked state, the restriction is most likely coming from the broker side — which symbol suffixes, account verification status, and market hours can all cause.
Step 3: Resolve Broker-Side Symbol and KYC Restrictions
Even after confirming credentials and enabling algo trading permissions, a persistent err_trade_disabled MT4 fix often lives at the broker level. Brokers frequently disable standard symbols in favor of account-type suffixes — meaning an EA calling on EURUSD may silently fail when your account only recognizes EURUSD.pro or GBPUSD.m, triggering error 133. Completing the steps below will confirm your account is permitted to trade and that your EA is targeting a symbol that actually exists on your broker's server.
- Open Market Watch and scan the symbol list for suffixes such as .pro, .m, .ecn, or .cent appended to any pair your EA targets.
- Right-click anywhere inside Market Watch and select Show All to reveal every symbol available on the server — hidden symbols are a common reason an EA cannot find its target instrument.
- Update the EA’s symbol parameter to match the exact suffixed name your broker uses; trading the vanilla pair on a suffix account will produce a trade-disabled error every time.
- Navigate to the Account tab in the terminal and check your account status; unverified accounts are frequently placed in Close Only mode, which blocks new order placement regardless of EA settings.
- Complete any outstanding KYC steps through your broker’s portal — identity verification, address proof, or funding confirmation — then request that the account be restored to full trading access.
- Confirm the market is open before any diagnostic test; weekend gaps, public holidays, and broker maintenance windows will all return a trade-disabled condition that no settings change can override.
Once the symbol matches, the account is verified, and the market is confirmed live, broker-side causes are effectively ruled out. If trading remains blocked, the issue has likely moved deeper — into the EA's own code logic. That is precisely where the next step focuses, examining how pre-trade checks written directly into MQL4 or MQL5 can catch these conditions before an order is ever sent.
Step 4: Implement Code-Level Pre-Trade Checks
With broker-side symbol restrictions and KYC requirements addressed, the final layer to examine lives inside your EA's source code. Adding programmatic guards before every order attempt prevents silent failures and eliminates log spam that obscures genuine trading activity.
This step walks you through adding pre-trade validation logic to your MQL4 or MQL5 code so your EA reports the exact reason trading is blocked rather than failing without explanation.
- Call
IsTradeAllowed()before everyOrderSend(). This built-in function checks whether the terminal has trading enabled at both the global level — the “allow live trading MT4” toggle — and the EA level. If it returnsfalse, skip the order and log a descriptive message immediately. - Capture and log error code 133 in MT4. According to the [PineConnector Error Guide](https://newyorkcityservers.com/blog/metatrader-error-survival-guide-2025-fix-trade-disabled-more), MQL4 Error 133 specifically signals that trade is disabled. Catching it programmatically stops the same error from flooding your Experts tab on every tick.
- Handle error 4752 in MT5. The equivalent MT5 code is 4752 (
TRADE_RETCODE_TRADE_DISABLED). Log both the code and the symbol so you can cross-reference against broker-side restrictions identified in the previous step. - Check account trade mode with
AccountInfoInteger(ACCOUNT_TRADE_MODE). A return value ofACCOUNT_TRADE_MODE_CONTESTor a close-only flag indicates the account itself restricts new orders regardless of EA settings. Surface this in your log output rather than lettingOrderSend()fail silently. - Verify DLL import permissions if your EA requires them. Advanced [Expert Advisors](https://www.metatrader5.com/en/terminal/help/algotrading/trade_robots_indicators) that rely on external libraries must have “Allow DLL imports” enabled in the EA properties dialog; without it, initialization can fail before any pre-trade check runs.
- Add a structured pre-trade guard block. Combine the checks above into a single validation function called at the top of your
OnTick()handler. One practical approach is returning early with a timestamped log entry that names the blocking condition, keeping your Experts tab readable.
With these guards in place, your EA will report exactly what is blocking execution — whether a disabled toggle, an account restriction, or a missing DLL — giving you actionable diagnostic output every time. Understanding these patterns at the code level also sets the foundation for the broader maintenance habits covered next.
How to Prevent Future Trading Disruptions
Resolving a single instance of ERR_TRADE_DISABLED is useful; building a repeatable verification routine is what keeps your EA running cleanly across sessions, broker migrations, and symbol changes. The same layered approach that surfaces MQL5 error 4752 trade disabled conditions after the fact can be applied proactively, before your EA misses a single entry.
Follow this sequence each time you open a new trading session or deploy an EA to a new account:
- Confirm you are logged in with the Master Password. Investor-read-only access silently blocks all order execution. Verify your login type in the Navigator panel before anything else.
- Verify the Algo Trading button is green and that the individual EA’s properties have “Allow live trading” checked, as described in the MT4 Client Terminal Settings.
- Open Market Watch and select “Show All” to confirm the exact symbol suffix your broker uses. Mismatched suffixes are a silent execution killer.
- Monitor the Experts and Journal tabs after each EA initialization. These tabs surface silent errors — including trade-disabled conditions — that never appear as visible alerts. The MT5 EA setup guide confirms this as a standard diagnostic step.
- Add code-level pre-trade checks inside your EA that log trade context before every order attempt, so permission failures are captured immediately rather than discovered after a missed trade.
- Consider a professional custom trading interface built through a platform like MQL UI Studio. As the platform notes, professional visual interfaces transform trading ideas into systematic, measurable workflows that prevent execution surprises — exposing permission status, symbol validity, and risk controls at a glance rather than buried in log files.
Applied consistently, this routine converts a reactive debugging process into a proactive trading workflow — one where execution surprises become the exception, not the pattern.