Your broker does not spell it the way TradingView does
It is the single most common reason a correct alert does nothing. TradingView sends EURUSD; the account holds EURUSD.r, EURUSDm, EURUSD_i or EURUSD.pro. Rather than asking you to maintain a translation table, the robot looks the symbol up in your broker's own list, at execution time — so it follows your broker when it renames something, and it stops rather than guess when it cannot be sure.
The four passes, in the order they run
The robot stops at the first pass that yields a tradable symbol. Knowing the order tells you why a given name matched — and why another did not.
As written: the name from the alert is tried exactly as it arrived
Normalised: uppercase, exchange prefix removed, and everything from the first non-alphanumeric character onward dropped — this is what turns EURUSD.r into EURUSD
Currency-aware, for six-letter names: the pair is split into base and quote, and matched against the currencies the broker declares — Market Watch first, then every available symbol
What it refuses to do
The last pass is a substring search, and it is the one that could go wrong — so it is scored rather than taken first-come. A symbol that starts with your key beats one that merely contains it; between two candidates, the one with fewer extra characters wins; and a genuine currency pair breaks the tie. If nothing scores, the resolver returns nothing and the caller keeps the name from your alert. Opening the wrong instrument is a worse outcome than not opening at all.
- 01Scoring order: starts-with, then fewest extra characters, then a real currency pair
- 02The whole resolution is opt-in per account; left off, the alert's name is used exactly as written
- 03A case-insensitive exact fallback stays active regardless — it cannot pick the wrong symbol, since it demands a perfect match
Check what yours resolves to, before it costs you a trade
The free webhook tester reads your alert with the exact parser production uses and shows the symbol it extracts — no account, nothing executed. It tells you what the gateway understood; the broker-side match then happens on your terminal, against your own symbol list.
The tester shows the extracted symbol and names the exact reason for any refusal
Available on MT4, MT5 and cTrader, on the free Basic tier
A rejected alert in your history links straight to the tester, already filled in
Frequently asked questions.
Do I have to maintain a symbol translation table?
No. The lookup happens against your broker's live symbol list at execution time, so it follows a renaming without you touching anything. Nothing is stored on our side, which is also why the answer can differ between two brokers using the same alert.
Why did my alert open nothing at all?
Two common causes. Either the symbol resolved to something the broker has disabled or set to close-only — those are excluded on purpose — or nothing scored well enough and the original name was kept, which your broker then rejected. Your order history names which of the two happened.
Does it work for indices and metals, not just currency pairs?
Yes, through the normalisation and scored-substring passes: US30.cash and XAUUSD.m are handled the same way. The currency-aware pass is the one reserved to six-letter names, because it needs a base and a quote to work with.
Can I turn the matching off?
Yes, per account. Switched off, the name from your alert is used exactly as written — which is what you want if your alerts already carry your broker's own spelling. The exact, case-insensitive fallback stays on either way.
Keep exploring.
Your first alert goes out today.
Free account, 30 days of Elite included, no card. Nothing to cancel if it is not for you.