MT4 error 4106: Unknown symbol (ERR_UNKNOWN_SYMBOL)
The symbol name isn't known to this MT4 terminal. Brokers often use suffixes like EURUSDm, so match the exact name.
What it means
You see this code in GetLastError() in MQL4, raised inside the terminal.
The name you passed doesn't match any symbol in the terminal. Names are exact.
The same instrument can have a different name at each broker, and even on each account type.
Common causes
- A broker suffix or prefix, such as
EURUSDm,EURUSD.proor#US30. - A typing mistake.
- A name copied from another broker.
How to fix it
- List the symbols with
SymbolsTotal()andSymbolName(), and match on the part you need. - Check that
MarketInfo(sym, MODE_BID)is above 0 before trading the symbol.
Example in MQL4:
string FindSymbol(string base)
{
for(int i = 0; i < SymbolsTotal(false); i++)
{
string name = SymbolName(i, false);
if(StringFind(name, base) == 0) return name;
}
return "";
}
// FindSymbol("EURUSD") might return "EURUSDm" at one broker. Is it safe to retry?
After a fix. With the right name.
Could the order have executed?
No. The terminal stopped the call before it reached the server.
How Tickwire handles it
Tickwire checks the symbol before sending on both platforms. An unknown name comes back with numericCode 4301 and nothing is sent. Read routes answer symbol_not_found.
Related codes
One API for MT4 and MT5
Clear trade outcomes, idempotent orders and an audit log. Read the error reference or the quickstart.