Skip to content
AlgoVerdict

Signal Copier Semaphore: Execute Telegram Signals in MetaTrader 5 – Every Function Explained

Last updated: 04 October 2026

The signal copier Semaphore executes signals from Telegram channels in MetaTrader 5. A message like "XAUUSD BUY NOW 4318, SL 4311, TP1 4323, TP2 4330" becomes an order with the lot size that your risk produces – not the one the channel suggests. Follow-ups like "Move SL to entry" or "Close half" are applied to exactly the positions they belong to. And for every message you see what was read and what was done.

Semaphore has two parts: the EA in MetaTrader 5 and the free Windows app Semaphore Link, which reads your channels with your own Telegram account. MetaTrader 5 cannot log in to Telegram itself; that is why the app is needed.

Status 4 October 2026: Semaphore is finished and tested, but not yet released on the MQL5 Market. The planned price is 99 USD for the unlimited licence. There are no buyer reviews yet.

A Telegram message XAUUSD BUY NOW 4318 with SL 4311 and two TPs, below it the values read and the executed order of 0.68 lots at 1 % risk, on the right the Semaphore panel with status LISTENING, three channels and the last messages
Panel layout 1:1 from Semaphore v1.0, recreated as a graphic with sample channels and values – not a recording from a live account.

How a signal flows through

  1. Read: Semaphore Link sees a new message in a channel you ticked and reads symbol, direction, entry, stop and targets.
  2. Hand over: the app writes the signal as a small file into the shared MetaTrader 5 folder. Every file has a running number.
  3. Check: the EA checks whether the signal is already too old, whether price has moved too far, whether your risk per symbol or your daily limit would be exceeded and whether the channel is paused.
  4. Execute: it calculates the lot size from your risk, opens one position per take profit if there are several targets, and writes the result with its reason back.
  5. Follow up: if the provider later replies to the signal, Semaphore applies the follow-up to exactly these positions.

Because every file has a number and the EA writes to its journal before every order, a signal is never executed twice – not even after a crash or restart.

What Semaphore understands

Table of sample messages and what Semaphore does with them: zone, pending order, pips, break-even, partial close, move stop, TP hit, close, edited and deleted signal
Sample messages and Semaphore v1.0's reaction. The reading of every sample message is checked with the real parser.

Signals: market, limit and stop orders, entry zones ("SELL 4361–4365": market if price is inside the zone or better, otherwise a limit at the zone edge), stop loss and up to five targets in price or pips. Pip values are calculated from the market price at entry.

Follow-ups:

  • Break-even ("Move SL to entry", "risk free") – only if it tightens the stop.
  • Move stop ("Move SL to 4342") – only in your favour. A value more than 15 % from price is treated as a typo and refused.
  • Partial close ("Close half", "Take 30 %") – of the whole signal, the position with the nearest target first.
  • Close, cancel pending, TP hit (stop to break-even, can be switched off), SL hit (close the rest, can be switched off).
  • Edited signals: pending orders take the new prices – unless that would raise the risk. A changed direction is never applied automatically; you get an alert.
  • Deleted signals: their pending orders are cancelled (can be switched off).

Which signal does an update belong to? If the provider replies to their signal, Semaphore follows the reply, also across several replies. Without a reply, an update is applied only if exactly one signal of the channel is open and it is the newest one. Otherwise nothing happens, and the log names the reason.

Never traded: messages without a stop loss (unless you allow a default stop), with two different symbols, results posts ("Weekly results: +1250 pips"), analysis, negations like "don't close yet", pre-alerts without prices, and images.

Your risk, not the channel's

  • Lot size from % of balance, a fixed money amount or fixed lots, spread over the targets. Parts below the minimum lot are merged (TP1 and the last TP, then only TP1), never rounded up.
  • Per channel in Semaphore Link: risk multiplier (0.5 = half the risk), dry run, symbol whitelist and which MT5 accounts receive the channel.
  • Limits in the EA: maximum risk per symbol across all channels (default 3 % of balance, open pending orders included), at most 5 open signals, at most 5 lots per signal.
  • Daily loss limit on equity (default 5 %): closes the Semaphore trades and pauses until the next day, also across a restart.
  • Channel protection: a channel pauses itself after 4 losses in a row or at 6 % channel drawdown, with an alert.
  • No late entries: signals older than 120 seconds, or where price has moved more than 15 pips against the entry, are skipped. Messages caught up after a connection gap only trigger updates and closes, never a new entry.
Six cards: never twice, never late, never wider, dry run, limits and channel protection
Semaphore v1.0's safety mechanisms at a glance.

The panel on the chart

The panel shows the state at a glance: LISTENING (green), dry run or pause (amber), missing Link app, disconnected Telegram, Algo Trading switched off or daily limit reached (red). Below are the channels with signals, win rate and result, and the last messages with what the EA did – including the reason in plain words, for example "price moved 18.0 pips against the signal entry".

PAUSE blocks new signals; updates for open trades still apply. Both buttons need a second click.

Semaphore panel with status LISTENING, account, 1 % risk per signal, three channels with statistics, one paused channel and six last messages with EXECUTED, SKIPPED and INFO
Panel layout 1:1 from Semaphore v1.0 with sample channels and values.

Semaphore Link: the companion app

Semaphore Link is a free Windows app. You create your own API key on my.telegram.org once, log in (you type the code from the Telegram app yourself) and tick the channels. The interface runs in the browser but is only reachable on your own computer.

The app only reads; it never sends a message. It shows the whole path: message → read as → result in the EA, per account. With the parser check you paste a few old messages of a channel and see immediately how Semaphore reads them – before you follow the channel.

Semaphore Link in the browser: log of five messages, how they were read and the result in the EA, below the channel list with risk multiplier, dry run, target accounts and symbol whitelist
Semaphore Link v1.0 interface with sample channels and messages.

Setting up

  1. Download and start Semaphore Link (link and SHA-256 checksum are in the Semaphore blog post on MQL5).
  2. Create an app on my.telegram.org, enter api_id and api_hash, log in with your phone number.
  3. Tick the channels – leave dry run on.
  4. In MT5 switch on Algo Trading, drag Semaphore onto one chart per account, set your risk. The panel shows LISTENING.
  5. Read along in the log for a few days. When you agree with every decision, switch off the dry run for that channel.

If everything runs on a VPS, Semaphore Link belongs in the autostart, and Windows should log in automatically after a restart. What the VPS needs is explained in the guide VPS for a Telegram signal copier.

Tested – and what is still missing

Status on 4 October 2026:

  • Code: compiles without errors and warnings. Two code audits and one regression audit by independent review agents; all findings fixed.
  • Self-test in the Strategy Tester: on a BlackBull Markets demo account with real ticks, XAUUSD, 23 of 23 checks passed – including real orders, break-even, partial close, the "never twice" rule and "stop never wider". Earlier runs found four bugs (among them a wrong symbol choice at the broker), all fixed.
  • One-year run with demo signals (like the MQL5 validator): 582 orders on XAUUSD and 228 on EURUSD in 2026, no error.
  • Parser: checked on 221 real messages from signal channels; 214 were read the way we had classified them by hand beforehand. Of the other seven, only one would have opened a trade: a complete signal with entry, stop and targets that we had cautiously classified as "unclear".
  • Semaphore Link runs on Windows Server; a test run with eight messages was handed over correctly.
  • Not yet: a long-term test with real channels on a demo account, the official MQL5 validator check, the release and buyer reviews.

Semaphore gets no AlgoVerdict grade. Our methodology rates brokers, prop firms and Expert Advisors with their own strategy; Semaphore has no strategy of its own, it executes other people's signals. How good the result is depends entirely on the channel.

Setup in three steps, next to it the testing status: self-test 23 of 23, tester XAUUSD 582 orders without errors, EURUSD 228 orders without errors, parser 214 of 221
Testing status of 3/4 October 2026. The tester runs use built-in demo signals with the minimum lot; they say nothing about a real channel.

Requirements

  • A Windows PC or Windows VPS on which MetaTrader 5 and Semaphore Link run together. The MQL5 VPS from the terminal is not enough.
  • A Telegram account and your own API key from my.telegram.org.
  • Text signals – no images.
  • A hedging account for one position per take profit. On netting accounts there is one position per symbol (TP1 and stop); a second signal on an open symbol is skipped.
  • Which broker conditions matter for a signal copier is covered in the guide Brokers for a Telegram signal copier.

Risk warning

Trading forex and CFDs on margin carries a high risk of loss. A signal copier does not turn bad signals into good ones: it executes what the channel writes, only within your limits. Test every channel in dry run and only use money you can afford to lose. Past results of a channel say nothing about the future.

Where to get Semaphore

Semaphore is to be released on the MQL5 Market in the Utilities category for MT5, planned at 99 USD for the unlimited licence. As soon as it is live, the link to the product page will be here.

Read on: Brokers for a Telegram signal copier · VPS for a Telegram signal copier · What is an Expert Advisor?

Frequently asked questions

Does Semaphore trade on its own?

Yes – that is its purpose. Semaphore reads the Telegram channels you select and executes recognised signals and follow-ups in MT5 automatically. That is why there is a dry run: for every new channel you first see in the log what Semaphore would do, without any order being sent. Only when you agree with every decision do you switch the channel to live.

Do I need Windows?

Yes. The free companion app Semaphore Link runs on Windows (PC or VPS) on the same machine as MetaTrader 5, because EA and app talk through files in the shared MT5 folder. It does not run on macOS or Linux. The MQL5 VPS rented from the terminal is not enough either, because no second app can run there.

Is my Telegram account safe?

Semaphore Link logs in with your own account and your own API key from my.telegram.org, stores the session encrypted for your Windows user and never sends a message. There is no server in between and no telemetry. Semaphore Link is still an unofficial Telegram client – Telegram's terms apply to your account.

Which signals does Semaphore understand?

Text signals with symbol, direction and stop loss: market, limit and stop orders, entry zones, up to five take profits in price or pips. Plus the usual follow-ups: break-even, move stop, partial close, close, cancel pending, TP and SL hit, edited and deleted signals. Images and screenshots are not understood.

May I use Semaphore on a prop firm account?

That is up to the prop firm, not the technology. Many firms explicitly forbid copying third-party signals, FTMO for example. Check your firm's rules before you route a signal channel to a challenge or funded account.

Can I test Semaphore before buying?

There is no Telegram in the Strategy Tester. Semaphore runs built-in demo signals with the minimum lot through the real execution path there, so you can see the panel, the orders and the log. With real channels you test after buying, in dry run – no order is sent.

Has Semaphore been tested?

Yes, as of 4 October 2026: the built-in self-test ran in the Strategy Tester on a BlackBull Markets demo account and passed 23 of 23 checks, including real orders. A one-year run with demo signals produced 582 orders on XAUUSD and 228 on EURUSD without a single error. The parser read 214 of 221 real channel messages the way we had classified them by hand beforehand. Still open: a long-term test with real channels, the official MQL5 validator check and the release.