Telegram to MetaTrader Bridge
A bridge that reads structured messages from a Telegram channel you own, parses them with a format you define, and place…
Read moreFour moving parts, and each one fails in its own way. Understanding the shape of it makes the difference between a bridge you trust and one you watch nervously.
Before the architecture, the boundary. A bridge is a message transport. It reads text from a channel you own or are authorised to read, interprets it according to a format you define, and places the corresponding order on your own terminal using your own risk settings.
It does not decide anything. The channel content is yours, the decision to act on it is yours, and the risk rules are yours. We supply software; we do not supply, endorse or evaluate the content of any channel.
| Part | Job | Typical failure |
|---|---|---|
| Reader | Receive new messages from Telegram | Session expiry, rate limits, reconnection |
| Parser | Turn free text into a structured instruction | Format drift, ambiguous text, edits |
| Mapper | Resolve symbol names and sizes to your broker | Suffixes, missing symbols, lot steps |
| Executor | Place and manage the order on MT5 | Retcodes, requotes, partial fills |
Most of the real work is in the parser. The other three are well-understood engineering; the parser has to cope with how a human actually writes.
Two approaches. The Telegram Bot API is simple and officially supported, but a bot must be added to the channel, which you cannot do to a channel you do not administer. The MTProto client API reads as your own user account and can therefore read any channel you have joined.
Which one applies depends entirely on whether the channel is yours. We ask that question first, because it decides the whole build.
Real messages are not structured. The same instruction might arrive as any of these:
XAUUSD BUY @ 2650
Gold buy now 2650, sl 2640, tp 2670
🟢 BUY XAU/USD
Entry: 2650
SL 2640
TP1 2660 TP2 2670
A parser built on guesswork will handle two of those and quietly mis-handle the third, which is worse than failing. This is why we ask for ten to twenty real messages before quoting — the parser is written against the actual format, not an imagined one.
Three rules we build in every time:
A message says GOLD. Your broker calls it XAUUSD.m. Without an
explicit mapping table the order simply fails.
SYMBOL_MAP = {
"GOLD": "XAUUSD.m",
"XAU/USD": "XAUUSD.m",
"XAUUSD": "XAUUSD.m",
}
def resolve(raw):
sym = SYMBOL_MAP.get(raw.upper().replace(" ", ""))
if sym is None:
log.warning("Unmapped symbol %s - message skipped", raw)
return None
return sym
This is the part clients most often ask to change after a week of use, so it is worth getting right at the start. The message may suggest a lot size. The bridge should apply your sizing rule — fixed lot, percentage risk based on the stop distance, or a cap — and your limits on maximum open positions and daily exposure, regardless of what the message says.
That last one is the feature clients end up valuing most. When something looks wrong, the log shows exactly what arrived, how it was read and what the server replied.
A bridge only works while it is running. Laptops sleep, home internet drops, Windows reboots for updates at 3am. This is why most bridges end up on a VPS, and why the deployment is part of the job rather than an afterthought.
A bridge that reads structured messages from a Telegram channel you own, parses them with a format you define, and place…
Read moreSoftware you already own, fixed or extended — and deployed on a VPS so it keeps running when your own machine is o…
Read moreSend your rules, your script or your existing file on WhatsApp and we will reply with a written scope, price and timeline.