The app reads the message the way you would, and holds back when in doubt
Every new message in your group that looks like a trade is read by an AI, in any language. It becomes a trade only when it is an explicit call to enter one. Reports, chat and analysis are left alone.
- Follow-ups like "close it" or "SL to entry" are read and matched to the trade their signal opened, with or without a number. None is carried out until you switch it on: exits and stop moves have one switch, partial closes and target moves another.
- "TP1 hit", "+40 pips" and "SL hit" are reports. They open no trade and move nothing. An unclear message is left alone.
- A message older than "Max signal age" (default 5 minutes) is never traded. After your PC was off, fresh ones wait for your approval.
What counts as a signal
A signal is an instrument plus buy or sell (long or short), or an instrument with a stop-loss and a take-profit, in any language. "long GOLD", "buy EURUSD sl 1.0850" and "GOLD NOW sl 4127 tp 4141" all count. With no entry price the trade goes in at market.
The entry is one price or a zone such as "4418-4422". Take-profits can be any number, and "TP4: hold" becomes a runner, a part of the trade with no take-profit.
Stop-loss and take-profits can be a price, pips or a percent: "sl 100 pips", "sl 1.5%". Numbers written loosely are understood: "4,349.841" is 4349.841 and "1,0850" is 1.0850.
The channel posts: BUY XAUUSD 2400, SL 2390, TP1 2410, TP2 2420, TP3 2430.
The app reads buy XAUUSD, entry 2400, stop-loss 2390, three take-profits. With "Risk % of equity" at 1 on a 10,000 USD account, the whole signal risks 100 USD.
The channel posts only "GOLD sell now, sl 2412". The app sells XAUUSD at market with the stop at 2412. With no take-profit, it is a runner.
More detail
The words a group uses are normalised while reading (GOLD becomes XAUUSD), and your broker's symbol name, suffix included (XAUUSD.s), is matched automatically. The 100 USD in the example is shared across the three take-profits.
A zone can be written in either order, and missing levels stay empty. Two separate trades in one message, for example a buy stop and a sell stop, become two signals, each sized on its own. With the listener's "Stop orders" on, both wait at your broker and only the side the price reaches first trades (see "Stop orders and straddles" under Sizing and safety). The same trade repeated for another broker is listed once.
A stop or target given as a distance, "sl 100 pips" or "sl 1.5%", is turned into a price against the entry or the live price.
More messages that are read as signals: "GOLD: Move Down Expected! Sell! target 4252", "BUY NOW 76600", a zone written "NOW 4418)4422" or "Zona 4289 - 4283", and a runner written "Menține" or "Runner — no limit".
In a signal's story, "What the AI read, as data", under the levels read from the message, opens to show exactly what the AI read.
Reports, chat and analysis are left alone
A result or status is a report, even when it names an instrument, a direction and a price: "GOLD BUY TP5 HIT 150 PIPS", "SL hit", "closed", "running", "+40 pips". So are recaps, lessons, price notes, analysis without a call, questions and promotions. Reports are never traded.
More detail
An unclear message is treated as not a signal: a skipped trade costs nothing, a wrong trade costs money.
When the stop-loss, the take-profits and the entry all point the same way, they set the direction, even over a buy or sell word that says the opposite. When they do not agree, or the message has no stop-loss or no take-profit price, the word decides. An emoji, a colour or a header never decides it.
Every signal the app recorded is in the list behind "Browse all signals" on the Dashboard. The outcome filter has "Every message", "Traded", "Skipped", "Held", "Not a signal", "Could not read", "Too old" and "Tests (dry runs)".
Follow-ups: close, cancel, stop to entry, and more
After a signal, groups write about it again: "close it", "SL to entry", "close half", "move TP to 2450", "cancel the pending". The app reads each of these, finds the trade that signal opened, and carries out what you chose to follow. When it cannot tell which trade is meant, it changes nothing.
The group replies to its gold signal: "TP1 hit, close 20% and move SL to breakeven". "TP1 hit" is a report. "Close 20%" and "move SL to breakeven" are two instructions.
With the default settings the stop of the trades still open moves to the entry, and nothing more closes: at TP1 closes what your take-profit settings put there. The bell lists both, the stop move applied and the partial close not followed, with the reason.
More detail
You decide what is followed, in Settings under "The group's messages after a signal", for every group or for one listener as a setting of its own. Both kinds start on "Ignore them": the app notes each instruction on the trade and changes nothing. Switch "Exits and stop moves" (close, cancel a waiting order, stop to entry or closer) to "Follow them" for a group you trust to look after its trades: a group that says "close now" usually sees something coming. "Partial closes and target moves" are best left to your settings, because your take-profit settings already manage the profit; follow them only for a group whose management you trust more. The settings guide asks about both.
The trade is found in this order. If the channel replies to its own signal message, that trade is used. Otherwise the app looks for the symbol the message names and acts when only one open trade from that listener matches. If the message names nothing, it acts when that listener has only one open trade. In every other case it changes nothing and says so in Activity.
Moves need a price: "SL 20 pips" is left to your "Trailing stop" and "Runners" settings. "Trail your SL 100 pips behind the price" is followed: from then on the stop follows the price at that distance and only ever moves closer. When the broker does not yet allow a stop that close to the price, for example a breakeven right after the fill, the stop goes as close as the broker allows and the note says where. Breakeven means the entry price the signal stated; for a signal that entered at market, the price each trade got in at.
"Close" closes the signal's trades and cancels its orders still waiting. "Cancel" removes a limit or stop order that has not filled.
Instructions without a number, such as "cancel", "close it" or "SL to BE", are read while that group has a trade open or an order waiting. The app knows these words in about 25 languages, with or without diacritics: "inchide", "muta SL la intrare", "fechar", "cerramos", "đóng lệnh", "закрываем", "平仓" and more. When nothing is live they stay unread: there is nothing they could change.
Follow-ups never count toward your daily signals. A listener on Watch records follow-ups and changes nothing. A listener on Manual applies them directly, without asking for approval.
"Close half" closes whole trades nearest their take-profit first. Closing part of one single position needs trading bridge 1.15, which loads when you restart MetaTrader 5.
The prefilter: which messages are read
Before a message is sent to be read, the app checks it on your computer. It goes on when it has a digit and either a trading word in one of about 25 languages (buy, sell, tp, sl, compra, venda, mua, покупка…), a direction written onto the instrument ("XAUUSDBUY"), or an instrument with two prices ("XAUUSD 2405 2412"). Every listener works this way; there is nothing to set.
More detail
The English trading words are buy, sell, long, short, entry, target, tgt, stop, runner, close, cancel, breakeven, tp and sl. The same kinds of words are known in about 25 languages, among them Portuguese, Spanish, French, German, Russian, Arabic, Turkish, Vietnamese, Hindi, Chinese and Japanese.
Only messages read as real signals count toward your daily signals. A message the prefilter sets aside is not sent to be read.
To see what was set aside, open Signals and choose "Every message" in the outcome filter. Messages the prefilter set aside show as "skipped, not read", next to the ones marked "read, not a signal". They are kept for a week.
Your daily signals
A message counts once, when it is read as at least one real signal. Chat, follow-ups, failed readings, dry runs and messages that were too old never count. The Dashboard status bar shows the count, for example "8/10 signals today".
More detail
When the limit is reached the status bar turns red, and a new signal gets "Signal not processed: today's limit of 15 signals is reached."
A signal is handed back when nothing came of it: it was a duplicate, MetaTrader refused every order, there was an error on our side, trading was switched off, or no terminal was connected.
The hand-back works while "Remote control" and "Sync activity" are both on, in Settings → "Application", under "Remote control & sync". Both are on by default.
Late messages, and after your PC was off
A message older than "Max signal age (min)", 5 minutes by default, is never traded. After the app was away (closed, PC asleep, no internet), messages still within the limit wait for your approval, whatever the listener's mode. Older ones are left out unread.
Your internet is down for 20 minutes and "Max signal age (min)" is 5.
The signals posted in the last 5 minutes of the outage wait under "Awaiting your approval". The earlier ones are not picked up.
More detail
When Telegram delivers a message late while the app is connected, and the message is older than the limit, it is listed as "stale" with the delay and is left untraded.
A message posted while the app was away and still within the limit is read, then waits for your approval for 10 minutes, because the price may have moved while nobody was watching. Its card has a line that starts "Posted about 4 min before the app picked it up". A listener on Watch stays on Watch. Check the price before you press "Trade it".
One older than the limit is left out without being read, with no record and no notice, and it does not count toward your daily signals.
"Max signal age (min)" is in Settings under "Repeated, late and opposite signals", from 1 to 60. A longer limit also lets a message that Telegram delivered late be traded, so keep "Max entry deviation" set.
The age is measured on relay2trade.com's clock, so a wrong Windows clock never turns fresh messages into old ones. The app tells you once, in the bell, when your computer's clock is 2 minutes or more off.
Duplicates, and the "Repeated, late and opposite signals" settings
Every new signal is compared with the ones placed in the last minutes, across every listener of the profile. On Auto a duplicate waits on the Dashboard for your approval, for 10 minutes. On Manual and Watch it is only flagged.
Two messages "buy XAUUSD 2400 sl 2390 tp 2410" arrive 3 minutes apart, with the window at 5 minutes.
The first is traded. The second waits with the label "Duplicate — you already received this signal".
Duplicate window (min)
How far back to look for a duplicate. A signal whose resulting trade matches one placed recently, from any listener (same symbol and side, every level within the tolerance below), waits for your review on the Dashboard instead of trading.
Example
Two "buy XAUUSD 2400 sl 2390 tp 2410" messages 3 minutes apart with a 5-minute window: the second one waits for you.
How it works, more examples and what to watch out for
For each signal it places, the app remembers the broker symbol, the side and the stated entry, stop-loss and take-profits, for this many minutes. This covers every listener of the profile.
A new signal is a duplicate when, within that window, a placed one has the same symbol and side, both have an entry or neither does, both have a stop or neither does, the same number of take-profits, and every level within "Duplicate tolerance (pips)".
On an Auto listener a duplicate is not traded. It waits on the Dashboard marked "duplicate" or "possible duplicate", and expires after 10 minutes if you do nothing. On Manual and Watch listeners it is only marked.
Signals that were skipped or only watched are not remembered, so they never make a later one a duplicate. A restart keeps the window.
Window 5, tolerance 10. 14:00 buy XAUUSD 2400 sl 2390 tp 2410 2420 is placed. 14:03 the group reposts it with entry 2400.50: 5 pips off, so it waits as "possible duplicate".
Same first signal. 14:04 buy XAUUSD 2400 sl 2390 tp 2410, one take-profit only: a different shape, so it trades normally.
Same first signal. 14:07 the exact same message: the 5-minute window has passed, so it trades as a new signal.
Groups that re-enter the same setup on purpose ("add another position") will see those waiting. Approve them, or shorten the window.
A sell is never a duplicate of a buy. A duplicate that is not traded is given back to your plan's daily signal quota.
It is the profile's setting; a listener cannot change it.
Duplicate tolerance (pips)
How close two signals' levels must be to count as the same trade: every level within this many pips.
When it applies
Only with a duplicate window above 0.
How it works, more examples and what to watch out for
When the duplicate check compares a new signal with one placed recently, each level is compared on its own: entry with entry, stop with stop, first take-profit with first take-profit, and so on.
The difference is measured in pips of that symbol. Every level must be within this number for the signal to count as a duplicate. If all differences are 0 it is marked "duplicate"; otherwise "possible duplicate".
A pip follows the instrument: 0.0001 on EURUSD, 0.01 on USDJPY, 0.10 on gold.
Tolerance 10 on EURUSD. First: buy 1.1000 sl 1.0970 tp 1.1040. Second: buy 1.1006 sl 1.0970 tp 1.1040. The entry is 6 pips off, the rest equal: possible duplicate.
Tolerance 10 on XAUUSD (a pip is 0.10, so 10 pips = 1.00). Stops at 2390 and 2388.50 are 15 pips apart: not a duplicate.
"Exact match only" still checks duplicates, but only exact matches. To turn the check off, set "Duplicate window (min)" to "Off".
A wide tolerance can hold back a real second signal at a nearby level. On gold, 10 pips is only 1.00.
Max signal age (min)
A message that reaches the app more than this many minutes after it was posted is never traded. From 1 to 60 minutes; there is no "no limit".
When it applies
Only delayed and replayed messages; a live message is seconds old. One posted while the app was off, asleep or offline is picked up only if it is still within this limit, and then it waits for your approval instead of trading by itself. Older ones are left out entirely. One that Telegram delivers late while the app is connected is listed as stale, with the delay.
Example
A 20-minute outage with the limit at 5: the signals posted in the last 5 minutes of it wait for your approval, the earlier ones are not picked up.
How it works, more examples and what to watch out for
Every Telegram message carries the time it was posted. When a message reaches the app, the app compares that time with now.
A live message is a few seconds old and always passes. A message older than this limit is never read as a signal or traded.
When the app was off, asleep or offline and catches up, messages posted within the limit are picked up but wait for your approval instead of trading by themselves; older ones are left out without a record.
When Telegram delivers a message late while the app is connected, a message over the limit is listed as stale, with its delay.
Limit 5. The computer wakes at 09:12 after sleeping since 08:40. Signals posted at 09:08 and 09:10 wait for your approval; the one from 08:55 is not picked up.
Limit 2 on a scalping group: a message Telegram delivers 3 minutes late while connected is listed as stale and not traded.
From 1 to 60 minutes; there is no "no limit". A higher limit catches more after an outage, but the price may have moved far from the signal. "Max entry deviation" on the listener is the guard for that.
It is the profile's setting; a listener cannot change it. A message edited later keeps its original time.
Opposite-direction signals
per signal per listener too
What a signal does when its listener already has trades or waiting orders on the symbol the other way: open it beside them, ask you first (it waits in Approvals), skip it, close them and then trade it, or only close them (read as an exit).
Open it beside themAsk meSkip itClose them, then trade itClose them only
When it applies
Only that listener's own trades and orders on that symbol count; another group's trades are not its own. Closing is at market, and waiting orders are cancelled.
Example
Holding three buys on gold from a group that now posts a sell: with "Ask me" the sell waits for you; with "Close them, then trade it" the buys close and the sell goes in.
How it works, more examples and what to watch out for
Before a signal trades, the app looks for its listener's trades and waiting orders on the same symbol in the other direction.
If there are some, it does what this setting says. "Ask me" puts the signal in Approvals with a note; approving it trades it beside them.
The two closing choices close them only if the signal itself would trade, so a misread or refused signal never closes anything.
On a netting account, which holds one position per symbol, "Open it beside them" is refused as before and an approval closes the open position first.
"Skip it". A group holding a sell on EURUSD posts a buy: the buy is skipped with the reason, the sell stays.
"Close them, then trade it". Two buys and a waiting buy limit on gold, then a sell: the limit is cancelled, the buys close at market, and the sell is placed as its message says.
"Close them only" treats the group's change of direction as an exit, even when the new signal has levels.
With the listener in watch or approval mode, the signal still goes through those first.
More detail
It is a match when the symbol and the side are the same, there are as many take-profits, and the entry, the stop and the targets are all within the tolerance.
An exact match is labelled "Duplicate — you already received this signal". A close one is labelled "Possible duplicate — very close to one you just received". Both link to the original. A duplicate that was not traded is handed back to your daily signals.
The three settings are in Settings under "Repeated, late and opposite signals". The defaults are 5 minutes for "Duplicate window (min)", 10 for "Duplicate tolerance (pips)" and 5 minutes for "Max signal age (min)".
When a message was read wrong
An entry, stop or target more than double, or less than half, the market price is refused as most likely read wrong. A suspect signal shows "✎ Read wrong?" on the Dashboard. The same button is in every signal story that still has its message text.
- 1
Click the signal on the Dashboard, then click "Read wrong?".
- 2
Choose: "A trade, but the details are wrong", "Not a trade at all", "A trade that was ignored".
- 3
Fill in what applies: "Symbol", "Side", "Entry", "Stop loss", "Take profits (comma separated)", "What happened, or what should have happened? (optional)".
- 4
Click "Send". The app answers "Thank you — sent for review."
Suppose "EUR/USD SELL 1,0850" were read as 10850 while the market is at 1.0852.
Nothing is placed. The story says the entry is "too far to be a real level, so it was most likely read wrong (a decimal comma, or another instrument)".
More detail
The refusal applies whatever your entry settings say, so a slipped decimal comma does not become an order.
"Read wrong?" is about how the message was read. When a message was read right and then skipped, the reason is on the activity line in its story.
Each correction improves how such messages are read, for everyone. The button needs an active licence and is for live signals, so dry-run records do not have it.
Common setups
What you want, and the settings that give it.
I want the group's "close half" and "move TP" followed too
- →Settings → The group's messages after a signal → Partial closes and target moves → Follow them
By default nothing a group says about an open trade is followed. For one group only, set it as that listener's own setting instead.
I manage open trades myself and want the group's instructions ignored
- →Listener → Add a setting of its own… → Exits and stop moves → Ignore them
Each instruction still shows in Activity, marked not followed, so you see what the group said.
Two of my groups post the same calls
- →Settings → Repeated, late and opposite signals → Duplicate window (min) → 5
- →Settings → Repeated, late and opposite signals → Duplicate tolerance (pips) → 10
The check runs across every listener of the profile. On Auto the second copy waits for you.
My PC sleeps now and then and I want a second look at what was posted meanwhile
- →Settings → Repeated, late and opposite signals → Max signal age (min) → 15
- →Dashboard → Awaiting your approval → "Trade it" or "Dismiss"
Messages posted during the gap and still within 15 minutes wait for your approval.
I only want fresh signals
- →Settings → Repeated, late and opposite signals → Max signal age (min) → 2
- →Listener → Max entry deviation → 0.1 (Percent of price)
A message over 2 minutes old is left untraded, and a price that already ran from the entry is skipped.
My channel repeats a call on purpose and I want both trades
- →Settings → Repeated, late and opposite signals → Duplicate window (min) → Off
Off, the duplicate check does not run for the whole profile. Every repeat is traded, inside your position and lot limits.
I want to see every message the app set aside
- →Signals → "Every message"
Messages the prefilter left out ("skipped, not read") and the ones read but not a signal ("read, not a signal") are listed there for a week.
I want unused signals handed back, and the message text kept with each signal
- →Settings → Application → Remote control & sync → Remote control → On
- →Settings → Application → Remote control & sync → Sync activity → On
- →Settings → Application → Remote control & sync → Sync original messages → On
The hand-back needs the first two. The third keeps the text for the story and "Read wrong?" after a reinstall.
Common pitfalls
✕"The channel said close it and nothing happened."
✓An instruction without a number is read only while that group has a trade open or an order waiting. If one was open, Activity says why nothing changed: the app could not tell which trade was meant, or "Exits and stop moves" is set to "Ignore them".
✕"My listener is on Auto but the signal is waiting for my approval."
✓It was posted while the app was away, or it matches a recent signal. The card says which. Check the price, then press "Trade it" or "Dismiss".
✕"The channel posted TP1 hit and my stop did not move."
✓"TP1 hit" is a report. "Trailing stop" moves the stop as targets fill. A follow-up such as "SL to entry" or "SL 2405" moves it when the channel asks.
✕"The channel wrote move SL 20 pips and the stop stayed where it was."
✓A follow-up needs a stated price. To have the stop follow the trade by a distance, set "Trailing stop" or "Runners" in Settings.
✕"The channel edited its post to fix the stop-loss and the app kept the old one."
✓Each message is read once, when it is posted. Open the signal's story to see which levels were read.
✕"I was away for a day and yesterday's signals are not in the list."
✓Messages older than "Max signal age" are left out unread, with no record, so old calls are not traded at today's prices.
✕"My daily signals should have started again at midnight."
✓The day is the UTC day. In Romania the count starts again at 02:00 in winter and 03:00 in summer.
What your plan allows
Reading, follow-ups, the duplicate check and "Read wrong?" work the same on every plan. The plans differ in how many signals are acted on per day. Level 30 adds 10 a day, and cards can add more.
| Basic | Advanced | Pro | |
|---|---|---|---|
| Signals per day | 15 | 35 | 50 |
| Per-listener rules, such as symbols and settings of its own | Included | Included | Included |
Frequently asked questions
Does Relay2Trade understand signals that are not written in English?
Yes. Messages are read by an AI, in any language. What matters is that the message is an explicit call to enter a trade: an instrument plus buy or sell, or an instrument with a stop-loss and a take-profit.
Does Relay2Trade trade messages like "TP1 hit" or "+40 pips"?
No. Results, recaps, analysis, questions and promotions are treated as reports, even when they name an instrument and a price. When a message is unclear, the app holds back. A call with no target that sends you to another group or to a link ("target will be posted here 👆") is an ad, not a signal.
Can Relay2Trade move my stop-loss to breakeven when the channel says so?
It always reads them, and carries them out once you switch that on in Settings, under "The group's messages after a signal" (both kinds start on "Ignore them"). It understands breakeven, move the stop, move the target, close, close part and cancel the pending order, several in one message, and matches them to the trade the message replies to or names. When it cannot tell which trade is meant, it changes nothing and says so.
The group said "close 20%" and nothing closed. Why?
Partial closes and target moves are left to your own take-profit settings by default, so the app notes the instruction and does not follow it. To follow them, set Settings → "The group's messages after a signal" → "Partial closes and target moves" to "Follow them", for every group or for one listener.
The group said "SL to breakeven" and the stop did not move. Why?
Activity says why. Most often the trade was in loss: a stop at the entry would close it at once, so it stays. Right after a fill the broker may not accept a stop that close yet; then it moves as close as allowed and the note says where.
What happens to signals posted while my PC was off?
Those still within "Max signal age" (5 minutes by default, up to 60) are read and wait for your approval for 10 minutes, whatever the listener's mode. Older ones are left out unread, so old calls are never traded at new prices.
Do chat messages use up my daily signals?
No. Only a message read as at least one real signal counts. Chat, follow-ups, failed readings, dry runs and messages that were too old are never counted, and a signal that came to nothing, such as a duplicate, is handed back.
What does "could not be placed" mean on a signal?
The signal was read and passed your rules, and the broker refused the order. The app gives the broker's reason in words, for example "Not enough free margin on the account for this position size." or "The market for this symbol is closed right now."
The group posted a second entry, such as "MORE BUY 4235". What does the app do?
When the two prices fit the signal's levels, the stop beyond both and the first target past both, the app reads them as one entry zone, as it reads "buy 4130–4135". When they do not fit, nobody can tell what the message wants, so the app does not trade it and the signal says why.
What happens when a group posts a sell while its buys are still open?
"Opposite-direction signals" decides, for every group or for one listener. By default the new trade opens beside the open ones, as it always has. The app can instead ask you first, skip the signal, close the group's trades on that symbol and then trade it, or only close them, reading the signal as an exit. It closes only for a signal it would trade, so a misread message never closes anything.
Add a Telegram group, pick Watch, Manual or Auto, and test the group on its own history before trusting it with money.
Split a signal across its targets or hold it as one trade, move the stop up as targets are reached, and follow runners behind the price.
The Dashboard, the story behind every signal, open positions, notifications, and the Desk for your phone.