A Telegram to MT5 copier from GitHub is almost always the same three parts: a Python Telegram client (Telethon or Pyrogram) signed in as your user account, a set of regular expressions that pull the trade out of the message, and the official MetaTrader5 Python package sending the order to a terminal running on Windows. You can get one working in an afternoon. Keeping it right on a live account, with somebody else's channel, is the hard part, and that's where most people decide to pay.
How a DIY Telegram to MT5 copier is built
There are two ways for code to read Telegram. The Bot API is the simple one: you create a bot with BotFather, get a token, and receive updates. The catch is that a bot only sees a channel's posts if the channel admin adds it as an administrator. That works for your own channel. For a paid VIP channel run by someone else, it's a dead end, because no provider is going to make your bot an admin.
So nearly every GitHub copier uses the other route, the MTProto user API, through Telethon or Pyrogram. You register an app at my.telegram.org to get an api_id and api_hash, sign in with your phone number and the login code, and the library stores a session file. From then on the script is you, as far as Telegram is concerned. It sees every channel and group your account is in.
Then the parser. A typical repo has a handful of regexes looking for BUY or SELL, a symbol, an entry, "SL" and "TP" followed by numbers. It turns a message into a small dictionary and hands it on.
Then MetaTrader. The MetaTrader5 package on PyPI talks to an MT5 terminal installed on the same machine. It's Windows only, and the terminal has to be open and logged in. That's why "free" scripts usually end up on a Windows VPS. The alternative is a cloud MetaTrader API such as MetaApi, which connects to your broker account from its own servers so your code can run anywhere, Linux and Mac included. It's what we use under the hood.
What breaks once real signals arrive
Edits come first. A provider posts "SELL XAUUSD 4150 SL 4160" and edits it 20 seconds later to add three TPs. A basic script only listens for new messages, so it opened the trade with no take-profit and never looks back. Telethon does fire a MessageEdited event, but you have to handle it and match it to the positions you already opened.
Replies are the next problem. "Close half" or "SL to entry" sent as a reply to the signal means nothing unless your script remembers which tickets came from which message ID. Most repos keep no state at all, or keep it in memory and lose it on restart.
Re-posted signals look like duplicates. Some channels post a short version first and then the full version as a new message, not an edit. A naive copier opens the trade twice.
Symbol suffixes catch people. Your broker may call gold XAUUSD.s, XAUUSDm or GOLD. order_send with "XAUUSD" just fails on those accounts. Filling modes and lot steps also differ by broker, and the error codes are not friendly.
Partial closes need arithmetic. Half of 0.03 lots has to round to a valid lot step, and with three tickets open you must pick which to close.
Reconnects replay the past. After a network drop or a restart, Telegram delivers the messages you missed. If the script doesn't check each message's date, it happily opens a signal from 40 minutes ago at today's price. This one has hurt more DIY accounts than any parsing bug.
And rate limits. Telegram answers aggressive API use with FloodWait errors, which tell the client to back off. Scripts that poll get_messages every second, or sign in again and again while debugging, are the ones that hit them. Your main Telegram account has all your contacts on it, so be gentle with it.
Before you run a random GitHub repo
A Telegram copier needs two of the most sensitive things you own: a full Telegram session and access to a trading account. Before you run someone's code, go through it yourself.
Read every file, not only the README. Look for any network call that isn't to Telegram or to MetaTrader. A session file sent to a webhook or a pastebin hands over your whole Telegram account. Search the code for requests.post, urllib, base64 strings and anything that reads the .session file.
Check where credentials live. Hard-coded broker passwords, .env files committed by mistake, or a "config" that phones home are all bad signs.
Look at the activity. A repo untouched for two years was written against older versions of Telethon or the MT5 package and may misbehave.
Run it on a demo account first, for at least a week of real channel traffic. Watch it handle an edit, a reply, a restart and a news spike before any real money goes near it.
Afterwards, check Telegram's Settings, then Devices. The script's session shows up there like any other login, and you can end it with one tap if something looks wrong.
What a paid copier handles for you
Most of the list above is what you pay for. Here is how each problem maps to our product, with the setting names from the dashboard. We sell it, so weigh this part accordingly.
Telegram is connected as your own account (phone number plus login code), the same way a GitHub script signs in, so it reads private channels you're in. The session shows in Settings, then Devices.
The parser reads symbol, direction, entry price or zone, "NOW" signals, SL, several TPs and pip-based levels. It follows replies and edits, and management messages like close, close partial, move SL to BE, TP hit and SL hit. It's rule-based, and when a channel has its own slang you add phrases under Custom words.
Re-posted signals have their own setting: copy as new, or update the open trades if the original was opened in the last 30 minutes (you can change the window).
Symbols are matched automatically, suffixes like XAUUSD.s included, with a rename map such as GOLD=XAUUSD for the odd ones (symbol mapping).
Old messages after a reconnect are skipped by "Ignore signals older than", 60 seconds by default.
MT5 is reached through MetaApi, so there's no Windows terminal or VPS to keep alive. Your MT5 password is passed to MetaApi to connect and isn't stored by us. MT5 only, no MT4.
Build or buy: when each makes sense
Building wins when you write Python for fun and copy one channel, ideally your own so you control the format. It also wins if you just want to learn how copiers work.
If you're after an MT4 version, there's no official Python package for MT4, so people bridge it with an EA reading a file or a socket. We can't help there; we're MT5 only.
Buying wins when the channel belongs to someone else and changes its format without warning, when you need follow-ups handled reliably, and when your time during market hours is worth more than the subscription. Our plan is EUR 24.99 a month for one Telegram account, one channel and one MT5 account, and EUR 24.99 for each extra channel plus MT5 account. Details are on pricing, and the full list of what the parser and settings cover is on features.
Whichever you choose, start on demo. Copying signals can lose money, whether the code is yours or ours.
Telegram to MT5 GitHub FAQ
Can I use the Telegram Bot API instead of Telethon?
Only for a channel where you can make the bot an administrator, which in practice means your own. A bot can't read a private VIP channel run by someone else. That's why most GitHub copiers use Telethon or Pyrogram with a user session.
Does the MetaTrader5 Python package work on Mac or Linux?
Not directly. It connects to an MT5 terminal on the same Windows machine. On Mac or Linux people use a Windows VPS, or a cloud MetaTrader API like MetaApi that connects to the broker without a local terminal.
Can a GitHub script get my Telegram account banned?
Telegram applies rate limits and FloodWait errors to clients that hit the API too hard. A script that listens for events and doesn't sign in repeatedly is far less likely to run into trouble than one that polls in a tight loop.
How do I know a repo is safe to run?
Read all of its code, look for any network call that isn't Telegram or MetaTrader, keep credentials out of the repo, and run it on a demo account first. Check Telegram's Devices list afterwards and end any session you don't recognise.
Copy your first channel today
€24.99 a month for one MT5 account, €24.99 for each extra. Nothing to install. Cancel from Whop whenever you want.