Start free
Symbol resolution

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 exchange prefix is dropped: OANDA:EURUSD is read as EURUSD A six-letter pair is matched on the currencies your broker declares, not on its name A symbol that is disabled or close-only is excluded, never selected When nothing is certain, the original name is kept rather than the wrong instrument traded

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.

Scoring order: starts-with, then fewest extra characters, then a real currency pair

The whole resolution is opt-in per account; left off, the alert's name is used exactly as written

A 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.

Start with one alert.

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.