01
Both switches, and they are separate.
MT4 has a global AutoTrading button on the toolbar (Ctrl+E) and a per-EA Allow live trading checkbox under F7 → Common. The corner of the chart shows a smiling face only when both are on. A smiling face with no trades is almost always the second switch — there is no error, nothing in the log, the EA simply decides not to send anything. Some brokers turn AutoTrading back off after a reconnect, so look at it again after every login, not just the first one.
02
The symbol on the chart is not the symbol in the code.
Brokers append suffixes: EURUSD.raw, EURUSDm, EURUSD.a. If the EA hardcodes the string EURUSD, every OrderSend comes back 4106 and nothing else happens. If it calls Symbol() it follows the chart and this is not your problem. Test: attach it to the exact name shown in Market Watch, and look for a symbol field in its inputs.
03
The timeframe is part of the strategy, not a preference.
Most EAs read bars from the chart's own period. The same file on H4 and on M1 is not the same program: stop distance, signal threshold and trade frequency all scale with the bar. If the author's screenshots are H4 and yours is M1, you are not testing their result, you are testing a different one.
04
The lot size rounds to zero.
A risk-percent EA computes lots from balance × risk ÷ stop. On a small account that can land on 0.004, and MT4 normalises it to 0.00, so no order is ever sent. If it sends anyway you get 131 (invalid volume) or 134 (not enough money). The floor is 0.01 lots and it is a hard floor — below a few hundred dollars the smallest position the platform allows is already larger than the one the EA asked for.
05
A spread filter doing its job too well.
Plenty of EAs carry MaxSpread in points and refuse to trade above it. 15 points is comfortable on EURUSD at 10:00 and impossible at 23:59, when raw accounts widen by five to ten times into the rollover. If the EA is also restricted to an overnight window, it will never see a spread it accepts. Watch Market Watch at the hour it is meant to trade, not at the hour you installed it.
06
It is waiting for a bar, not for a tick.
An EA that evaluates once per bar does nothing for the rest of that bar. Attach at 14:03 on an H4 chart and the first decision is at 16:00 — two hours of watching a chart that looks dead. Some also have a session window that runs on the broker's server clock, which is not your clock: the server time is in the title bar of the Market Watch window.
07
DLL imports and WebRequest are off by default.
Tools → Options → Expert Advisors. If the file carries a licence check, a news filter or a Telegram notifier it needs one of those two and will sit silent without them. A few show a message box on attach; most do not.
08
The market is closed, or this symbol has a break in it.
Metals and indices have daily maintenance windows — XAUUSD is commonly shut 23:00–01:00 server time — and the Sunday open is the worst moment to judge an EA, because spreads are five to ten times normal until liquidity returns and a spread filter rejects everything for the first hour.
09
The file is the wrong platform, or the wrong build.
An .ex5 will never appear in MT4's Navigator. An .ex4 compiled for build 600 will not load on build 1492, and the Experts tab says so in a single line that is easy to scroll past. If the file came from a download page rather than a repository, do not assume anything about which platform it was compiled for.