MT5 to Telegram MultiChannel Sender — Setup Guide

MT5 to Telegram MultiChannel Sender — Setup Guide

21 September 2026, 16:42
Sergio Marquez Uroz
0
8

Setup Guide: MT5 to Telegram MultiChannel Sender

This guide takes you from zero to a working signal channel: create your Telegram bot, connect it to MetaTrader 5 and decide what each channel receives. Everything is configured from the panel on the chart — the inputs can stay blank.

Total preparation time: about 5 minutes.

Product page: MT5 to Telegram MultiChannel Sender (Expert Advisor for MetaTrader 5).

The EA does not trade. It watches your MT5 account and posts every opening, modification, partial close, close and pending order to one or more Telegram channels, groups or private chats.

📑 Table of contents

  1. Step 1: Create your Telegram bot
  2. Step 2: Add the bot to your channel
  3. Step 3: Allow Telegram in MetaTrader 5
  4. Step 4: Attach the EA and follow the 3 setup steps
  5. The panel
  6. VIP and Free channels
  7. The message editor
  8. Screenshots and watermark
  9. Inputs reference
    • 1. Telegram connection
    • 2. Events to notify
    • 3. Message content
    • 4. Filters
    • 5. Reports
    • 6. Interactive panel
    • 7. Advanced
  10. Running on a VPS
  11. Troubleshooting
  12. Support

Step 1: Create your Telegram bot

The EA posts through your own bot. Creating one is free and takes one minute.

Step 1: In Telegram, search for @BotFather (the official one has a blue check mark) and open the chat.

Step 2: Send the command /newbot.

Step 3: Choose a display name (for example "My Signals") and then a username that ends in bot (for example "mysignals_alerts_bot").

Step 4: BotFather replies with your token, a line like 1234567890:AAH.... Copy it; you will paste it in the panel in Step 4.

⚠️ Important: the token is the password of your bot. Anyone who has it can post in your channels. Never share it. If it leaks, send /revoke to @BotFather, get a new one and paste it in the panel (⚙ Settings → Change).

💡 Tip: use a bot that is dedicated to this EA. If another program already uses the same bot (another signal tool, a copier), the "Detect channels" button cannot read the bot's updates.

Step 2: Add the bot to your channel

Step 1: Open your channel → channel name → AdministratorsAdd Admin → search your bot's username.

Step 2: Give it at least Post messages. If you want the signal message to be updated in place (see "How SL/TP changes and closes appear in the channel"), also enable Edit messages of others.

Step 3: Post any message in the channel (a simple "hello" is enough). The EA finds your channels from recent activity, so this post is what makes "Detect channels" work.

Repeat for every channel you want to use (for example a VIP channel and a Free channel). Groups work the same way; for a private chat, just send a message to your bot.


Step 3: Allow Telegram in MetaTrader 5

MetaTrader only lets an EA talk to websites you allow. This is a one-time setting per terminal.

Step 1: In MT5 go to Tools → Options → Expert Advisors (or press Ctrl+O).

Step 2: Tick Allow WebRequest for listed URL.

Step 3: Add this address and press OK:

https://api.telegram.org

Without this step nothing can be sent. The panel shows it as step 2 of the setup and has a Check button to test it.


Step 4: Attach the EA and follow the 3 setup steps

Step 1: Open any one chart (the symbol does not matter — the EA reports the whole account) and drag the EA onto it. Make sure Algo Trading is enabled in the toolbar.

⚠️ Attach the EA to ONE chart only. If you attach it twice on the same account, the second copy stays silent on purpose (the panel shows "Duplicate EA on another chart") so your subscribers never receive a message twice.

Step 2: You can leave every input blank and press OK. The panel opens in the top-left corner with the setup assistant "Connect your channel — 3 steps and you are live". Each step has its own button:

  1. Bot token → Paste. A box appears under the step. Click inside the box, press Ctrl+V (or right-click → Paste) and press Save. The EA verifies the token with Telegram and the step turns green with your bot's name. If you copied the whole BotFather message, it still works: the token is extracted automatically.
  2. Allow api.telegram.org → Check. Tests the connection. If Step 3 above was not done, the box shows the address ready to copy.
  3. Add your channels → Detect. The EA asks Telegram which channels your bot belongs to and adds them to the list. New channels are added switched OFF — turn them on in the channel list.

Setup assistant: paste the bot token

When the three steps are green the assistant turns into the normal panel with your channel list. By default the EA sends a test message when it starts (input "Send a test message when the EA starts"), so you can confirm immediately that the channel receives it.

The three setup steps completed

ℹ️ Note: what you set in the panel (token, detected channels, on/off, content and delay per channel) is saved on your computer and survives restarts. You only need the inputs if you prefer to type everything there, or for a VPS (see "Running on a VPS").

The panel

The on-chart panel with a VIP and a Free channel

Title bar (hover any icon to see what it does):

  • Pause: mutes all sending. The button turns red while paused. Nothing is queued while paused — trades made during the pause are not posted later.
  • Paper plane: sends a test message to the enabled channels.
  • Pencil: opens the message editor.
  • Gear: Settings — bot token (Change), connection (Check) and channels (Detect), at any time.
  • Arrow: folds the panel into a small bar so it does not cover the chart.

Channel list — one row per channel:

  • Switch: click the row to turn the channel on or off.
  • Content tag (Full / No SL/TP / Results): what this channel receives. Click to change. See "VIP and Free channels".
  • Delay tag (0, 1m, 5m, 15m, 30m, 1h): how long the OPEN signal waits before it is posted in this channel. Click to cycle. 0 = instant.

Detect channels adds channels your bot was added to after the first setup. Stats posts a performance summary (win rate, profit factor, best and worst trade, net result and current streak for the last N days, set by "Days covered by the Stats button of the panel").

The footer shows the status: Active / Paused, messages sent, queued and failed.


VIP and Free channels

The EA is built for the classic setup where paying members see everything instantly and a free channel sees less, later. Each channel has two independent settings in its row.

1. Content tag

Full Every message: signals with SL/TP, modifications, results, pending orders, screenshots, reports.
No SL/TP The signal arrives with the levels locked (SL: 🔒 TP: 🔒), plus results and cancellations. SL/TP modifications and screenshots are not sent (a chart picture would reveal the levels).
Results Only closed trades, reports and stats. Ideal for a public "track record" channel.

On No SL/TP and Results channels you can add an invitation line to every signal and result with "Extra line on No SL/TP and Results channels", for example 🔒 Full signals in VIP: t.me/yourvip.

2. Delay tag

The delay applies only to the opening signal — that is where the value is. Modifications and closes are sent at once, but they always wait behind their own signal, so a delayed channel never sees a close before the signal it belongs to.

Typical setup
VIP channel: Full · 0 (instant)
Free channel: No SL/TP · 15m
Results channel: Results · 0

The message editor

Click the pencil in the panel. The editor opens next to it, with the text on the left and a live preview of the Telegram post on the right.

The message editor with the live preview

  • ‹ › move between the six messages: OPEN, CLOSE, PARTIAL, SL/TP, PENDING and CANCEL.
  • The text box has 5 lines (one Telegram line each, up to 63 characters per line — an MT5 limit).
  • INSERT DATA: click a chip (Direction, Symbol, Price, SL, TP, Profit...) to add its value to the message. Hover a chip to see an example. If a line is full, the chip goes to the next line.
  • EMOJI: click to insert. Emojis are written as short codes such as :fire: and become real emojis when the message is sent.
  • Everything is saved automatically. Restore default brings back the original message; Send test to Telegram posts the current message with sample data.

Message styles

The row at the top of the editor keeps whole sets of messages under a name. Write one style for your VIP channel and a shorter one for the free channel, and switch between them in two clicks.

The style selector of the editor

  • Save as: the row turns into a box. Type a name, press Save, and the six messages are stored together under that name.
  • ‹ ›: move through the styles you have saved.
  • Load: replaces the six messages with the ones of the selected style.
  • Delete: removes the selected style. The messages you are using now are not touched.

Naming a style before saving it

Every style is a plain text file in your terminal's MQL5\Files folder, named TGSender_style_<name>.txt, with one line per message. You can back it up, edit it in Notepad or copy it to another computer. The messages in use live in TGSender_templates.txt and are saved while you type.

Available data per message

All messages {TYPE} {SYMBOL} {TIME} {ACCOUNT} {BROKER} {BALANCE} {EQUITY} {CURRENCY}
OPEN {ICON} {LOTS} {PRICE} {SL} {TP} {RISK}
CLOSE / PARTIAL {ICON} {PROFIT} {PIPS} {OPEN} {CLOSE} {DURATION} {REASON}
SL/TP {OLDSL} {SL} {OLDTP} {TP}
PENDING {LOTS} {PRICE} {SL} {TP}
CANCEL {PRICE} {REASON}

Telegram formatting is allowed: <b>bold</b>, <i>italic</i>, <u>underline</u>, <code>code</code>.

Emoji codes: :rocket: :fire: :check: :x: :up: :down: :target: :stop: :money: :bolt: :green: :red: :warn: :bell: :star: :clock: :moneybag: :chart: :bull: :bear: :tool: :hourglass:

The messages are written in the language chosen in "Message language" (10 languages). A message you edit keeps your own words.


Screenshots and watermark

With "Attach a chart screenshot to open/close messages" the signal is posted as a picture of the chart with the message as caption. The EA uses the symbol's chart if it is open, or opens a temporary one with "Timeframe of the screenshot chart" and closes it afterwards. The panel never appears in the picture.

Chart screenshot with a diagonal watermark

To protect your signals from being copied, type your brand in "Text stamped on screenshots" (for example @MySignals) and choose where it goes:

  • A corner — discreet, clear of the price and time scales.
  • Large, in the center.
  • Diagonal pattern over the whole image — the strongest protection; use an opacity of 10-20 % so the candles stay readable.

Inputs reference

Every input can stay at its default value. The names below are the labels you see in the Inputs tab.

1. Telegram connection

Bot token (text, default: empty)
Can be blank: paste the token in the panel. If you fill it here, the input is used until you paste another token in the panel.
Chat ID(s) (text, default: empty)
Can be blank: use Detect. Comma-separated IDs or @usernames, for example -1001234567890,@mychannel. Channels detected in the panel are added to these.
Channel names (text, default: empty)
Friendly names for the panel, same order as the IDs. Example: VIP,Free.
Delay per channel in seconds (text, default: empty)
Same order as the IDs. Example: 0,900. A delay set in the panel wins.
Content per channel (text, default: empty)
Same order as the IDs: 0 = Full, 1 = No SL/TP, 2 = Results. A choice made in the panel wins.
Send a test message when the EA starts (true/false, default: true)
WebRequest timeout in milliseconds (number, default: 10000)

2. Events to notify

Position opened, Position closed, Partial close of a position, SL/TP modified on an open position, Pending order placed, Pending order modified, Pending order cancelled or expired (true/false, default: true)
Turn off any event you do not want to post.
Group SL/TP changes (trailing stops) into one message every N seconds (number, default: 60)
A trailing stop moves the SL every few seconds. Instead of flooding the channel, the EA sends one message per period with the first and the final level ("SL: 4346.06 → 4348.46"). If the level returns to where it started, nothing is sent. 0 = one message per change.
EA started / stopped on the account (true/false, default: false)

3. Message content

Message language (list, default: English)
English, Español, Português, Deutsch, Français, Italiano, Русский, Türkçe, العربية, 中文.
Use emojis in messages (true/false, default: true)
Position size shown in signals (list, default: Lot size)
Lot size, Risk % of balance (the money lost at the stop loss as a percentage of your balance — needs a stop loss) or Hidden. Risk % lets subscribers with any account size copy you without revealing your lots.
Show SL and TP levels (true/false, default: true)
Show profit on close (true/false, default: true)
How profit and balance are shown (list, default: In account currency)
In account currency, As % of balance or Hidden. With % or Hidden, reports and stats do not show your balance or equity.
Show profit in pips on close, Show how long the trade was open (true/false, default: true); Show server time on each message (default: false)
Show masked account number + broker (true/false, default: false)
How SL/TP changes and closes appear in the channel (list, default: New message replying to the signal)
New message replying to the signal: every update is a reply linked to its signal. Edit the signal message: the signal post itself is updated with the change or the result — one clean post per trade (the bot needs "Edit messages of others"). Edit the signal AND send a reply: both. If a signal can no longer be edited, a normal message is posted.
Optional first line / Optional last line (text, default: empty)
Added to every message. Formatting allowed, for example <b>MySignals VIP</b> or t.me/mychannel.
Extra line on No SL/TP and Results channels (text, default: empty)
Your invitation to the VIP, added to signals and results of limited channels.
Attach a chart screenshot to open/close messages (list, default: No screenshots)
No screenshots, On position open, On position close, On open and close.
Timeframe of the screenshot chart (default: M15), Screenshot width in pixels (default: 1024), Screenshot height in pixels (default: 768)
Text stamped on screenshots (text, default: empty) · Watermark position (default: Bottom left corner) · Watermark text size in pixels (default: 20) · Watermark opacity % (default: 40) · Watermark color (default: white)

4. Filters (which trades to send)

Send trades placed manually (true/false, default: true) · Send trades from EAs (true/false, default: true)
Allowed magics / Blocked magics (text, default: empty)
Comma-separated magic numbers. Use them to post only one strategy of several running on the account.
Allowed symbols / Blocked symbols (text, default: empty)
Comma-separated symbols, for example XAUUSD,EURUSD. Empty = all.

5. Reports (daily / weekly / monthly)

Daily report of closed trades (true/false, default: false) · Server time HH:MM to send the reports (default: 22:00)
Weekly report (true/false, default: false) · Day of the weekly report (default: Friday) · Monthly report (true/false, default: false — sent on day 1 for the previous month)
Days covered by the Stats button of the panel (number, default: 30)

6. Interactive panel

Show the on-chart control panel (true/false, default: true) · Which corner the panel is anchored to (default: Top left) · Panel width in pixels · Panel font size (default: 9)
Panel background color, Accent color, Channel enabled color, Channel disabled color, Pause / close color — to match your chart theme.

7. Advanced

Seconds between retries of failed sends (default: 10) · Max retries per message before discarding (default: 5)
If Telegram or your internet is briefly unavailable, messages are retried instead of lost.
Also show a plain status line (default: false) · Verbose log in the Experts tab (default: false — turn on only when support asks for it)

Running on a VPS

The EA works on any Windows VPS where MT5 runs 24/5 — set it up exactly as on your PC.

On the MQL5 built-in VPS (migration from the terminal) keep in mind:

  • Allow https://api.telegram.org (Step 3) before migrating; the setting travels with the migration.
  • The migration copies the EA and its inputs, not what you set in the panel. Fill Bot token, Chat ID(s) and, if you use them, Channel names, Delay per channel in seconds and Content per channel in the inputs, then migrate.
  • Screenshots need a chart window; on the MQL5 VPS keep them off.

Troubleshooting

The Experts tab (Toolbox → Experts) always says why a message was not sent. Look for lines starting with "Not sent".

Nothing arrives in the channel
1. The panel is not paused (pause button not red). 2. The channel row is switched on. 3. Its content tag accepts that message (a Results channel does not receive openings). 4. The bot is an administrator with "Post messages". 5. Send a test with the paper plane.
"WebRequest failed, error 4014"
https://api.telegram.org is not in Tools → Options → Expert Advisors (Step 3). Check the spelling, with https.
Detect finds no channel
Post a new message in the channel after adding the bot and press Detect again — Telegram only shows recent activity. "Bot busy (another app)" means another program uses the same bot: use a dedicated bot.
"Invalid token"
The token was revoked or mistyped. Get it again from @BotFather and paste it in ⚙ Settings → Change.
"Duplicate EA on another chart"
The EA is attached twice on this account. Remove one copy; the silent copy takes over automatically if the main one is removed.
A trailing stop shows only one SL message per minute
That is the grouping of SL/TP changes. Set "Group SL/TP changes..." to 0 for one message per change.
"Edit the signal message" posts new messages
The bot needs "Edit messages of others" in the channel, and the signal must have been posted by this EA since it started.
Pasting in the panel box does nothing
Click inside the box first, then Ctrl+V or right-click → Paste, and press Save.

Support

If something does not work as described, send me a private message on MQL5 with a screenshot of the panel and the last lines of the Experts tab. I will help you personally.

Product page: MT5 to Telegram MultiChannel Sender · Copying signals the other way round? Telegram to MT5 MultiChannel Copier