Trade Copier Ultimate · MT5

Multi-source signal execution engine for MT5.

Receive signals from Telegram, Discord, or a local Bridge app — and copy trades between two MT5 terminals on the same PC. Safe-by-default. Strict validation. Built for traders who want their signal provider's edge to actually run.

This overview and some screenshots were written for v7. Current releases may have additional controls; check the EA panel and the Bridge download page for current options.
Trade Copier Ultimate panel — DISARMED state, Home tab on XAUUSD
// Disarmed by default
Trade Copier Ultimate panel — ARMED, Bridge online, signals parsed, last signal showing on Home tab
// Armed · Bridge online · 4 signals parsed
// Quick start

Five steps to your first signal.

  1. Install from MQL5 Market. If you haven't already, buy or download the demo from the MQL5 product page. After install, the EA shows up under Navigator → Expert Advisors → Trade Copier Ultimate.
  2. Allow WebRequest URLs in MT5. Open Tools → Options → Expert Advisors. Tick Allow WebRequest for listed URL and add both of these (one per line, no trailing slash):
    http://127.0.0.1
    https://api.telegram.org
    Without this, Telegram polling and the Bridge app cannot reach the EA. http://127.0.0.1 is only used for the local Bridge — nothing leaves your PC on that URL.
    MT5 Tools → Options → Expert Advisors dialog with both WebRequest URLs added
    // MT5 → Tools → Options → Expert Advisors
  3. Attach the EA to any chart. Symbol doesn't matter — the EA executes on the symbols inside each signal. Make sure AutoTrading is on (green button in the toolbar) and Allow Algo Trading is checked in the EA dialog.
  4. Pick a mode in the on-chart panel. Open the panel, go to the Source tab, and turn on exactly one of:
    Trade Copier Ultimate Source tab with Telegram Bot and Bridge mode enabled
    // Source tab · Bot + Bridge enabled
    • Telegram Bot API — paste your Bot Token and Chat ID. The bot must be admin in the channel/group.
    • Bridge Mode — set the Bridge Port (default 5555) and run the Navigator Command Center app on the same PC.
    • Discord Mode — paste your Discord Webhook URL.
    • Local Copier — choose MASTER on the source MT5 and SLAVE on the target MT5, with the same CopierFileName.
  5. Test, then ARM. Click Test Connection in the panel — you should see ONLINE for the mode you enabled. The EA starts in DISARMED state (no trades fire). Click ARM when you're ready. The header pill turns green and the next valid signal will execute.
Two safety toggles you should turn ON in the panel: Duplicate Filter (blocks the same signal arriving from two sources) and Entry Armour (rejects messages without a clear direction + symbol + price). Both ship OFF so they don't surprise advanced users running stress tests, but new buyers should turn them on once and forget about them.
// Inside the panel

Every tab, at a glance.

// Bridge App

Navigator Command Center.

// Companion App · Windows · v8.30
Navigator Command Center · Bridge v8.30

The Bridge is a small Windows app that runs on the same PC as your MT5. It logs into your Telegram account (read-only via MTProto) so it can read private channels the Bot API can't reach, then routes per-account groups to the right MT5 terminal. Trade Copier Ultimate connects to it on http://127.0.0.1:<port> — nothing ever leaves your machine.

↓ Download Bridge v8.30 Bridge downloads and guide
Free · Windows 10/11
You don't need the Bridge for most setups. Bot API mode is enough for any Telegram channel where you can make your bot an admin (most public/group channels), and Discord mode handles webhooks directly. The Bridge is the answer only if your provider broadcasts in a private Telegram channel you can't bot-admin, or if you want one PC to route signals from multiple Telegram accounts to multiple MT5 terminals at once.

A standalone execution hub

The Bridge handles all the heavy lifting of parsing signals, rewriting formats, and managing multi-account fan-out. Learn more about its features on the dedicated documentation page.

View Full Bridge Documentation →
Bridge featureWhat it does
MTProto Telegram client Logs into your own Telegram account (with code + 2FA). Reads any group or channel you're a member of, including private rooms the Bot API cannot reach.
Multi-account fan-out One Bridge can route different Telegram groups to different MT5 terminals. Free MT5 demo + funded prop + main live, each fed by their own provider, from one PC.
Local HTTP endpoint EA polls http://localhost:5555/signals/copier. Loopback only — nothing leaves your machine. Configurable port + optional API key.
Duplicate filter Drops identical messages received within 60s, even across multiple groups. Toggle off if you want each source to fire independently.
Routing keywords Hashtags route to lanes (default #copier, #copy). Advanced: separate TP-manager and pending-order keywords for power users.
Skip keywords Built-in catches for "running", "TP1 hit", "stopped out", past-tense, etc. Add your own phrases for channels with custom wording.
Broker symbol suffix Tell Bridge your broker's symbol suffix (e.g. m, .pro). Auto-detected from the connected EA when possible.
Signal history audit Last 200 messages through the pipeline. Click a row to copy the raw signal text. Filter by Delivered / Queued / Rejected.
Auto-start with Windows Optional — Bridge starts on boot and reconnects Telegram automatically.
// Operating modes

Five ways to feed it signals.

ModeHow it worksEnable setting
Bridge Mode Receives signals from the Navigator Command Center companion app via local HTTP. Supports private Telegram channels and Discord routing on the same machine. EnableBridgeMode = true
Telegram Bot API Polls a Telegram bot directly for formatted signal messages. Requires bot admin access to the channel or group. EnableBotAPIMode = true
Local Copier Copies trades between MT5 terminals on the same PC via a shared CSV file. One EA acts as Master (writes trades), another as Slave (reads and executes). CopierMode = MASTER / SLAVE
Discord Mode Reads signals from a Discord webhook URL at a configurable polling interval. EnableDiscordMode = true
Telegram Broadcast Forwards your executed trades as messages to a Telegram channel or group. Useful for signal providers running their own room. EnableTelegramSend = true
// Signal format

What your provider can send.

Signal typeExampleWhat it does
Market + SL/TP BUY GOLD SL 2300 TP 2400 Executes immediately at market price.
Multi-TP market BUY GOLD SL 2300 TP1 2380 TP2 2420 TP3 2460 Splits into 3 positions using LotDistribution (default 40/30/30%).
Sequential bare TPs BUY GOLD SL 2300 TP 2380 TP 2420 TP 2460 Unlabelled TP lines auto-assigned as TP1 / TP2 / TP3.
Pending order GOLD BUY LIMIT 2310 SL 2290 TP 2370 Places a pending limit or stop order.
Pending range entry GOLD BUY LIMIT 2308-2312 SL 2290 TP 2370 Uses the lowest price in the range as entry.
Pending + multi-TP BUY LIMIT GOLD 2310 TP 2350 TP 2390 TP 2430 SL 2290 Places 3 separate pending orders, one per TP leg.
Close command CLOSE GOLD · CLOSE ALL · CLOSE BUY GOLD Closes matching positions by symbol and/or direction.
Breakeven BREAKEVEN · MOVE SL TO BREAKEVEN Moves SL to entry for all open positions.
SL/TP modify BUY GOLD SL 2285 TP 2395 (repeat) Updates the existing position instead of opening a duplicate.

Tip: the parser is case-insensitive and tolerant of common provider quirks (extra emoji, broker-suffixed symbols like EURUSDm ↔ EURUSD, aliases like GOLD → XAUUSD). If a specific provider has odd formatting, the Filter → Custom Symbol Mappings and Filter → Keyword Replace inputs let you rewrite incoming text before parsing.

// Lots & risk

Four ways to size.

ModeParameterDescription
Fixed FixedLotSize Always trades a set lot size (e.g. 0.10). Same lot every signal.
Multiplier LotMultiplier Multiplies the signal's lot value by a factor (only useful for sources that send a lot).
Risk % RiskPercent Calculates lot from account balance, SL distance, and tick value. If the signal has no SL, falls back to DefaultSLPoints.
Cap MaxLotSize Safety ceiling regardless of mode. Set Over Max Action to TRIM or SKIP.

Multi-TP example: BUY GOLD SL 2290 TP1 2360 TP2 2400 TP3 2450 with 0.10 lots and default distribution → Position 1: 0.04 / Position 2: 0.03 / Position 3: 0.03.

// Per-symbol lots · visual editor

Different lot per symbol.

Some symbols carry more risk than others. With v7 you can pin a different lot to each symbol from a visual editor — no input strings, no comma-separated syntax, no restart. The Lots tab has a Configure button that opens an overrides panel: type a symbol, click Add, TCU validates against your MarketWatch and rejects typos before saving. Suffixed brokers (EURUSDm, XAUUSD.pro) are matched automatically; the resolved name is shown beside the typed one.

Per-symbol lot overrides panel — Add field, three rows (GBPUSDm 0.50, XAUUSDm 0.15, AUDUSDm 2.00) with reorder, +/-, edit, remove buttons, plus live preview on the Lots tab
// Per-Sym Lots · Configure modal + live preview on the Lots tab
ActionWhat it does
Add Type a symbol, click Add. MarketWatch-validated. Suffix-tolerant. 20-entry cap.
Edit lot Click the lot value, type, press Enter. Or use + / − for broker-step nudges. Or use ↑ / ↓ to reorder priority.
Live preview Lots tab shows up to 10 active overrides under the Configure button. The footer shows N / 20 active at all times.
Fallthrough Symbols not listed use your Global Lot Mode (Fixed, Risk %, Multiplier, or Market). No silent skips.

Backward compatible: if you previously used the EURUSD=0.05, XAUUSD=0.03 input string, those settings load identically into the visual editor.

// Trade management

What it does after entry.

Trailing Stop
Moves SL behind price as it moves into profit. Configurable start distance, trail distance, and step size — no per-tick spam.
Partial Close
Closes a percentage or fixed lot at up to 4 pip-based targets. Optional move-SL-to-BE after the first target.
Breakeven on TP1
When a multi-TP split hits TP1, moves the remaining legs' SL to entry (with optional buffer pips).
SL → TP1 on TP2
After TP2 closes, moves the last leg's SL up to the TP1 level to lock in profit.
Smart SL/TP Modify
Repeat signals on an open position update its SL/TP instead of opening a duplicate trade.
Opposite Signal Action
Configurable: do nothing, close opposites only, or close all on the opposite signal.
Pending Expiry
Auto-cancels unfilled pending orders after a configurable number of hours so dead orders don't pile up.
Auto SL / Auto TP
Adds a fallback SL or TP when the signal omits them. Existing values are never overwritten.
News Pause
Reads the MT5 economic calendar and blocks new entries around configurable currency / impact / before-after windows. Existing trades keep being managed.
// Safety filters

Why it won't blow up your account.

Disarmed by default
EA starts in DISARMED state. No trades fire until you click ARM in the panel.
Duplicate Filter
Hashes each signal. The same signal arriving from two sources fires only once. Survives terminal restarts. Toggle ON in the panel.
Cooldown Timer
Default 3 minutes. Ignores re-entry on the same symbol + direction inside the window. SL/TP updates still apply.
Spread Filter
Skips trades when the live spread exceeds your configured point limit.
Time Filter
Only executes during your allowed hours. Useful for prop firms with restricted sessions.
Max Positions Cap
Blocks new trades when the open position count hits your configured limit.
Circuit Breaker
Suspends execution if more than N signals arrive in 60 seconds — protects you from a misfiring source.
Whitelist / Blacklist
Comma-separated symbol lists. Whitelist = only these. Blacklist = never these.
Skip Keywords
Ignores chat phrases like HIT TP, RUNNING, CLOSED IN PROFIT so commentary doesn't trigger trades.
Entry Armour
Requires direction + symbol + (price or SL or TP) before opening. Stops random text from firing. Toggle ON in the panel.
Universal Symbol Map
Auto-resolves broker suffixes both ways — EURUSDm ↔ EURUSD, XAUUSD ↔ GOLD. No manual setup needed for most brokers.
Prop Firm + Beginner Modes
One-click profiles. Prop = no comments, require SL, daily loss caps. Beginner = stricter lots and position counts.
// Local copier

MT5 → MT5 (and MT4) on one PC.

FeatureDetail
Copy speed~50 ms default — configurable via CopierPollMs.
Cross-brokerWorks between different brokers on the same PC. Symbol suffix differences handled automatically.
SL / TP syncWhen the master modifies SL/TP, the slave position updates automatically.
Partial close syncWhen the master partially closes, the slave reduces proportionally.
Auto-closeSlave closes when master closes. Optional — disable for independent management.
Initial syncOn first connect, existing master trades are registered without re-copying. No duplicates on attach.
MT4 slaveFree companion EA NTS Local Copier — MT4 Slave on MQL5 mirrors trades to any MT4 terminal on the same PC.
Local Copier in action — Master MT5 (left) and Slave MT5 (right) with trades mirrored
// Master (left) and Slave (right) — same PC, two brokers, trades mirrored
// Troubleshooting

Something not working?

Bridge says BLOCKED or Telegram won't connect
99% of the time this is the WebRequest checkbox in MT5. Open Tools → Options → Expert Advisors and confirm Allow WebRequest for listed URL is ticked, with both http://127.0.0.1 and https://api.telegram.org on separate lines (no trailing slash). Click OK, then click Test Connection in the EA panel again. If it still fails, your VPS or Windows firewall is blocking outbound HTTP from terminal64.exe — whitelist it.
Telegram bot is connected but no signals arrive
The bot must be an admin in the channel or group you're trying to read. Bot API mode cannot read messages otherwise. To check: open Telegram, go to the channel, tap the title → Administrators → confirm your bot is listed. If it's a private channel where you can't add bots, you need Bridge Mode (Navigator Command Center) instead. Also verify your Chat ID (negative number for groups, positive for DMs) — use @userinfobot to read it.
Signals come in but no trade opens
Walk down this list: (1) AutoTrading button green in the toolbar? (2) EA panel header pill says ARMED, not DISARMED? (3) Last Filtered on the Home tab — does it show a recent reject reason? (4) the broker actually has the symbol — check the Market Watch. (5) account has free margin to open the lot you've configured. The EA's diagnostic log (System tab → Diagnostic Log = ON) shows exactly which step rejected the signal.
The same trade opens twice
Two causes: (a) you have two sources turned on (e.g. Bot API and Bridge) and the same channel arrives in both — turn ON Filter → Duplicate Filter; (b) your provider re-sends the signal with slightly different formatting and the dedupe hash doesn't match — combine with a 3-minute Cooldown and Modify SL/TP If Position Exists = ON so a repeat signal updates instead of stacking.
Wrong lot size
Check the Lots tab. Lot Mode = Fixed with FixedLotSize = 0.10 always sends 0.10 — no auto-scaling. Risk % needs an SL on the signal (or a sane DefaultSLPoints fallback). Always verify MaxLotSize and Over Max Action: TRIM caps the lot, SKIP rejects the signal. On crypto/index symbols, the broker's contract size matters — test on demo first.
Pending order never fills
Either price didn't reach the entry (most common), or your broker has stop-level / freeze-level rules that rejected the order — the MT5 Experts log will say so. Pending Expiry deletes pending orders after the configured hours; if it's set too short, valid setups get cancelled before they fire. Check EnablePendingExpiry + PendingExpiryHours.
Broker symbol is named differently (e.g. BTCUSDm, XAUUSD.cash)
The universal symbol mapper handles common suffixes (m, .pro, #, .raw, .cash) automatically. If your broker uses something exotic, fill in Filter → Custom Symbol Mappings with a comma-separated list like EURUSD:EURUSDm,XAUUSD:GOLD. The first value is the signal's symbol, the second is your broker's.
Multi-TP split is missing a leg
Check that the signal actually has TP1 + TP2 + TP3 (or three sequential TP lines) and that SigTP → Multi-TP Split is ON. Verify Lot Distribution total ≤ 100% — if it's higher, the EA caps the last leg. The Max Signal TPs setting limits extraction (1, 2, or 3); if it's 1, you'll only get one trade no matter how many TPs the signal has.
Panel disappears or settings reset after restart
Panel state is auto-saved in MT5 GlobalVariables + a config file in MQL5/Files/Common/. If F7 inputs disagree with the saved panel state, the EA prefers the saved panel. To reset everything clean: remove the EA, run F3 → Global Variables, delete every variable starting with TCU_, then re-attach. If the panel visually disappears (no settings lost), drag the chart edge to redraw — known cosmetic glitch on rare DPI configurations.
EA freezes / lots of CPU on tick
Make sure you're on Hedging or Netting account type that matches your test plan — Netting accounts behave differently for multi-position ops. Lower BridgePollMs (default 1000 ms) and Bot Poll sec if you've set them too aggressive. Disable Diagnostic Log after setup is confirmed working — chatty logs slow things down on a busy chart. If you see runaway log spam, send the relevant lines to support and we'll trace it.
Can I run it on a prop-firm account?
Yes — turn ON Prop Firm Mode in the panel. It strips trade comments (some prop firms reject EA-tagged trades), enforces Require SL, and lets you cap daily loss in % or $. Combine with Auto SL fallback if your provider sometimes sends entries without SL. Always verify the prop firm allows EAs at all and that no DLLs are required (TCU is pure MQL5 — no DLLs).
Where are my settings / bot tokens stored?
Numeric and toggle settings live in MT5 GlobalVariables. String settings (bot tokens, webhooks, custom mappings) are saved as plain text in MQL5/Files/Common/TCU_*.cfg on your PC. Don't share that file — it contains your Telegram bot token, which gives full bot control to anyone who has it. If you ever post a settings export for support, redact the token line first.
// Honest disclaimer

What this EA does not do.

Trade Copier Ultimate is an execution utility. It does not generate trading signals or analysis. It does not guarantee profit or manage drawdown for you — that's your job and the job of the source you're copying. It does not include copy protection that limits your broker, account type, or number of charts.

Always test on a demo account before going live. Behaviour differs between Hedging and Netting accounts; verify your account type and re-run your edge cases. Past performance of any signal provider does not guarantee future results.

Demo versions from MQL5 run only inside the Strategy Tester. For end-to-end live testing on a demo broker account, use the paid version on a demo MT5 login.
// Get help

Stuck? Talk to us.