SIGNAL BRIDGE — USER MANUAL v6.20

SIGNAL BRIDGE — USER MANUAL v6.20

28 May 2026, 19:49
Inakis Srl
0
510

SIGNAL BRIDGE — USER MANUAL v6.20

Product links:

MT4: https://www.mql5.com/en/market/product/131683

MT5: https://www.mql5.com/en/market/product/139969

The MT4 and MT5 versions share the same logic, the same on‑chart panel and the same inputs. Everything in this manual applies to both platforms unless explicitly noted.


Brand new on-chart panel 4 message layouts
Chart themes Daily and weekly reports


EXECUTIVE SUMMARY — WHY SIGNAL BRIDGE

"Elevate your trading signals with real‑time updates that are professional, visually appealing, and 100% copier‑friendly."

Signal Bridge is the most comprehensive MetaTrader‑to‑Telegram bridge on the market. It is built around five differentiators that other EAs typically do not offer or only partially cover:

#What makes it unique
1100% copier‑friendly signals. Every message carries the absolute lot size, exact entry/SL/TP and risk %, so third‑party copier services (e.g. TSC) can replicate the trade exactly — without translation losses.
2Full trade life‑cycle coverage. NEW · pending activation · pending cancellation · entry / SL / TP modifications · SL moved to break‑even · trailing stop locking profit · running‑trade profit update · full close. Every event becomes a clearly formatted Telegram message — nothing is lost between the broker and your audience.
3Total branding control. Four built‑in message layouts (Classic, Tree View, Clean Minimal, Tabled), per‑field show/hide toggles (emoji, ticket, pips, PnL, RR, lots, risk, duration, comment), custom close‑message text per scenario, custom footer with channel name. Every chart screenshot is rendered through a configurable theme or your own .tpl template, with SL/TP/close objects automatically drawn on top.
4Reports that tell the story. Five aggregation styles — Detailed by Trade, By Pair, By Day, Win/Lose, By Magic — available on demand (one click on the panel) or on a daily/weekly schedule. Filter by magic number or symbol to publish a separate report per strategy on the same account.
5All‑new on‑chart panel. Tabbed control panel rendered directly on the chart: change any setting at runtime, no recompile, no EA reload. Panel zoom, a full editor for long text/list fields, bidirectional sync with the classic Inputs dialog, and one‑click migration between terminals via a single .set file.

Designed for: signal providers, managed‑account operators, prop‑firm traders running transparency channels, multi‑strategy desks that need one report per magic, and anyone who wants their Telegram channel to look as professional as the trading behind it.

Built for both platforms: the same EA, same on‑chart panel and same inputs run on both MT4 and MT5 — migrate your full configuration between terminals by simply copying one .set file (see §7).


Summary

What’s new in 6.10–6.20

0 — Important information

1 — Telegram setup (bot + channel)

2 — Install Signal Bridge in MT4 / MT5

3 — First initialization

4 — The on‑chart panel (overview)

5 — Tab reference: Main · Filters · Messages · Custom Msgs · Charts · Reports

6 — Report types explained

7 — Bidirectional UI ↔ Inputs sync (.set file)

8 — Performance tips

9 — Advanced inputs (classic Properties → Inputs dialog only)

10 — Telegram error handling

11 — Links and support


WHAT’S NEW IN 6.10–6.20

  • 6.20 — List fields (Magic filter, Exclude magic, Symbol filter, Exclude pairs, Custom pips, Magic Include/Exclude in Reports, Magic names) now open an editor with 4 native boxes of 63 characters each (a MetaTrader limit per box); Ctrl+V works in every box, and the 4 boxes are joined with commas up to 252 characters. An inline value that the terminal would silently cut at 63 characters is rejected instead, with a message telling you to use the editor.
  • 6.19 — Every field on the panel is now either a plain single value (validated on the spot — e.g. HH:MM, currency, numbers — red inline error on a bad format) or a list (opens the 4‑box editor above). The EA also warns at startup (Alert + Experts log) if any of 26 string inputs is 250+ characters, the point where the Inputs dialog itself starts truncating.
  • 6.17 — Magic names split across 3 input fields, because the Inputs dialog truncates a single field around 250 characters. Panel zoom buttons (− / +) in the title bar, range 0.75–2.00, remembered across restarts. A pencil icon and a blue clickable label mark every field that opens a full editor — «click the blue label».
  • 6.16 — Daily/weekly scheduled reports now catch up if the exact minute is missed (they fire as soon as the current time is past the scheduled time, instead of requiring an exact match). Reset EA is now a full «forget everything»: besides wiping the panel state it clears the in‑memory session buffers and the status CSV, and any order that was already open before the reset is ignored completely from then on (no NEW, no tracking, no CLOSE for it).
  • 6.15 — Bot credentials can be entered directly on the panel. Without Token and Chat ID the EA starts fully inert and the panel shows a SETUP REQUIRED screen instead of the tabs — no order scan, no chart, no Telegram message until both fields are filled in. Credentials are persisted in a separate, obfuscated local file, not in clear text inside the panel .set file.
  • 6.14 — The opening message header is now «NEW ORDER» for both market and pending entries (pending activation still shows «ACTIVATED»). Magic filter and Symbol filter edited on the panel now apply live, with no EA reload needed.
  • 6.12–6.13 — The Custom Msgs texts open in a full multiline editor overlay: arrow keys, Home/End, Ctrl+A (select all), Enter = OK, Esc = cancel, click to place the cursor, an on‑screen emoji keyboard, and a Paste box + Insert button (MQL cannot read the Windows clipboard directly, so pasted text goes through that box). The editor shows a live «N / 250 chars» counter and blocks OK above the limit. The panel .set file is now saved in UTF‑8, so emoji and accented characters survive an EA restart.
  • 6.11 — New Events filter value «All, skip trailing SL» (see §5.2).
  • 6.10 — MT5 only. Hybrid event‑driven trade detection via OnTradeTransaction : new and closed trades are picked up with a latency of about 1 second, independent of ticks on the host chart. Close‑by hedge closes now generate a CLOSED message too. Kill‑switch input: UseTradeTransactions (see §9).


0 — IMPORTANT INFORMATION

Signal Bridge sends Telegram messages and, optionally, full chart screenshots for every trade event. The screenshot pipeline is the resource‑heavy part: due to MetaTrader limitations, the EA opens a temporary chart, applies a template, draws the trade objects (SL/TP rectangles, entry‑to‑close line) and captures the image. Depending on the host machine this can take from 2 to 15 seconds per chart.

On under‑powered VPS the terminal may stall during this process. To avoid it:

  • Use a VPS with at least 8 GB RAM and a quad‑core CPU, not over‑sold by the provider; or
  • Disable chart screenshots from the Charts tab and work with text‑only messages; or
  • Set every Send Chart for … option to Send immediately after (text first, image follows seconds later). This does not save CPU but guarantees the user receives the textual signal without waiting.


1 — TELEGRAM SETUP

1.1 — Create the target channel
Create a new channel (or group) in Telegram. This is where the EA will publish messages.

1.2 — Create the bot
Open Telegram and start a chat with @BotFather:

  1. Menu → /newbot
  2. Choose a name (e.g. mychannel) and a username ending in _bot (e.g. mychannel_bot)
  3. Copy the API token shown at the end (e.g. 1234567890:BBHeeTQYDprhrh1Cph2UBB7JKz6erSLWRqw ). You will paste it into the EA's Filters tab → Token.

BotFather token creation

1.3 — Add the bot to your channel as Administrator
Open the channel → Manage → Administrators → Add Administrator → search the bot username → grant Post Messages permission → Save.

1.4 — Get the channel ID
Open https://web.telegram.org/, select the channel, and look at the URL. The trailing digits are your Chat ID. Example: in web.telegram.org/k/#-2429693223 the channel ID is 2429693223. Paste it into the EA's Filters tab → Chat ID (with or without the leading minus / "-100" prefix — the EA accepts both).

Find channel ID in web.telegram.org


2 — INSTALL SIGNAL BRIDGE IN MT4 / MT5

2.1 — Log in to the Market
In MetaTrader: Tools → Options → Community, enter your mql5.com credentials.

Tools Options Community

2.2 — Download Signal Bridge
Terminal → Market tab → search Signal Bridge (or go to Purchased if you already bought it) → Download.

Market - find Signal Bridge

Market - Download button

2.3 — Open a chart
We recommend BTCUSD because it runs 24/7 — this guarantees the EA receives ticks at weekends and can still send scheduled reports.

Open BTCUSD chart

2.4 — Allow WebRequest to Telegram
Tools → Options → Expert Advisors → tick Allow WebRequest for listed URL → double‑click an empty row, type https://api.telegram.org , press Enter, OK.

Allow WebRequest api.telegram.org

2.5 — Activate AutoTrading
Click the AutoTrading button in the toolbar (it must show green / play icon).

Activate AutoTrading

2.6 — Load the EA
Open the Navigator → Market section → double‑click or drag Signal Bridge onto the chart.

Drag Signal Bridge onto chart

2.7 — In the EA properties dialog, tab Common: enable Allow DLL imports and Allow live trading, then OK.

Common tab - Allow DLL and Live Trading


3 — FIRST INITIALIZATION

  1. On first load the EA generates four default chart templates in Terminal\MQL4\Files (or \MQL5\Files for MT5) and saves a panel‑state file SignalBridge_panel.set .
  2. If Token and Chat ID are still empty, the EA starts fully inert: the panel shows a SETUP REQUIRED screen instead of the tabs, and no order scan, chart or Telegram message happens until both fields are filled in (see §5.2). Once you save the credentials, the tabs appear and only trades from that point on are tracked — trades open while the EA was in setup are treated as pre‑existing, not replayed in a burst.
  3. If trades are already open when you load the EA, a popup explains that, by default, those pre‑existing trades will not generate Telegram messages. You can change this in Filters → Message Filter → At EA startup (see §5.2).
  4. The on‑chart panel appears in the top‑left of the chart. All settings are configured directly on this panel — you no longer need to open the MT4/MT5 input dialog for daily use, although every input is still available there (right‑click chart → Expert Advisors → Properties → Inputs).


4 — THE ON‑CHART PANEL (OVERVIEW)

Signal Bridge v6.08 ships with a tabbed control panel rendered directly on the chart. It replaces the old grid of native MT4 inputs and lets you change any setting at runtime, with no recompile and no EA reload.

Signal Bridge v6.08 - Main tab

Every field you see in any Telegram message is fully customisable from the panel — or, for the advanced parameters, from the classic Properties dialog.

Customize everything from inputs

The panel has six tabs:

TabPurpose
MainTrigger a report on demand, see a live dashboard of the most important settings, and access maintenance actions (Regenerate Templates, Reset EA).
FiltersTelegram credentials, which orders qualify for broadcasting (StopLoss requirement, pre‑existing trades, magic/symbol filters), and risk‑calculation base.
MessagesChoose the message layout style and pick which fields appear in each Telegram message (pips, PnL, RR, lots, comment, duration…). Footer / channel branding.
Custom MsgsOverride the default close‑message text for each scenario (TP, TSL, SL, BE, manual, partial). Configure the «running trade update» that fires when a trade crosses a profit threshold.
ChartsScreenshot theme, template, timeframe, zoom, size, and when an image must be attached (with the signal / immediately after / never).
ReportsGlobal report config (what to show in any report) plus the daily and weekly schedules.

Bidirectional sync. Every change you make on the panel is persisted within ~1 second to MQL4\Files\SignalBridge_panel.set (or the MT5 equivalent). When the EA reloads it compares each stored value with the current input value: if the input was edited via the Properties dialog, the input wins; otherwise the panel value is restored. See §7 for details and how to migrate a configuration to another terminal.

Zoom. Two buttons (− / +) in the panel’s title bar scale the whole panel from 0.75× to 2.00×; the chosen zoom is saved and restored on restart.

Two field types. Single‑value fields (numbers, times, currency, Token, Chat ID…) are validated in place: an invalid entry shows a red inline error right under the field. Fields that hold a comma‑separated list, or a long free text, show a pencil icon and a blue clickable label — click the label to open a full editor overlay (see §5.2, §5.4 and §5.6).


5 — TAB REFERENCE

5.1 — Main

Main tab

The Main tab is split in three blocks.

SEND REPORTS NOW — manual, one‑click report sending. Pick a Type, decide whether to include currently open trades, then click Daily, Weekly or Custom.

ControlDescription
TypeWhich aggregation to use: By Trade (one row per ticket), By Pair (sum per symbol), By Day (sum per calendar day), Win/Lose (counts of winning, losing and breakeven trades), By Magic (sum per magic number).
Open Trades?Whether to append currently open positions at the bottom of the report.
Send DailySends a report for the current calendar day.
Send WeeklySends a report for the current calendar week.
Send CustomSends a report for the date range defined in Start / End below, with the optional Title.
For [Custom] use: Start / EndDate range for the custom report, format YYYY.MM.DD.
TitleFree‑text title prepended to the custom report (e.g. "January Report").

Tip: before sending a long report load the full account history (Terminal → Account History tab → right‑click → All History), otherwise older trades will be missing.

MAIN SETTINGS — read‑only dashboard. Shows at a glance the current value of nine key settings so you can verify the EA is configured the way you expect. Each row reflects a setting that lives on another tab; to change a value, open the corresponding tab.

RowMirrorsExample value
ModeFilters → Message Filter → EventsAll events / Open & Close only / Off (reports only) / Close only (no reply) / All, skip trailing SL
Risk BaseFilters → Risk → Calc Risk onAccount Balance
Break‑EvenFilters → Risk → BE tolerance (pips)+/-3 pips
Message StyleMessages → Layout → StyleSignal Bridge Classic
Update msg atCustom Msgs → Running Trade Update → Threshold1.0%
Custom Msg on closeCustom Msgs → Close Messages → ActiveActive ON
Chart StyleCharts → Chart Theme → ThemeBlue
Daily Report SchedReports → Daily Schedule → ActiveOFF
Weekly Report SchedReports → Weekly Schedule → ActiveOFF

MAINTENANCE

ButtonDescription
Regenerate TemplatesRe‑creates the four built‑in chart templates in Files\ (Blue, Grey, Black, White). Use it if a template file got deleted or corrupted.
Reset EAFull «forget everything»: clears the in‑memory session buffers and the status CSV, wipes the persisted panel state, and restarts the EA from a clean slate. Every order that was already open before the reset is ignored from then on (no NEW, no tracking, no CLOSE for it) — only orders opened after the reset are handled. Useful when troubleshooting; do not use it routinely — you will lose every customisation that was not saved to a .set preset.


5.2 — Filters

Filters tab

TELEGRAM — your bot credentials.

InputDescription
TokenThe bot API token from @BotFather. Paste it exactly as provided.
Chat IDThe numeric channel/chat ID. Can be entered with or without the leading - or -100 prefix.

Until both fields are set, the panel shows a SETUP REQUIRED screen in place of the tabs and the EA is fully inert: no order scan, no chart, no Telegram message (see §3). Once saved, the credentials are stored in a separate, obfuscated local file rather than in clear text inside SignalBridge_panel.set .

MESSAGE FILTER — defines which events generate Telegram traffic. Split into three logical sub‑blocks.

InputDescription
What to send
EventsAll events (open, close, partial, SL/TP modification, pending, cancel, activation, updates) · Open & Close only (skip the noise — no SL/TP edits, no updates) · Off (reports only) (the EA stays silent on trades and only sends scheduled reports) · Close only (no reply) (only CLOSED / PARTIAL messages, no NEW/ACTIVATED/CANCELLED/UPDATE, sent as standalone posts without reply threading; combine with Close only - skip losses to publish winners only) · All, skip trailing SL (everything as in All events, except the UPDATE messages produced by a trailing stop — see the box below).
About «All, skip trailing SL». Many EAs and traders use a trailing stop: the Stop Loss is moved again and again behind the price, sometimes every few seconds. In All events mode every one of those moves is a legitimate modification, so Signal Bridge posts an UPDATE for each of them — a single trade can easily generate 20‑30 messages before it closes, and the channel becomes unreadable. All, skip trailing SL keeps the channel clean while losing nothing important: an UPDATE is skipped only when the only change is the Stop Loss moved in the profit direction (up for a BUY, down for a SELL), i.e. a plain trailing step. Everything else is still posted: Take Profit changed, pending entry price changed, Stop Loss added or removed, Stop Loss moved against the trade (risk increased), and the first move of the Stop Loss to break‑even (or better) — that one is announced once, because «SL at BE» is a message your subscribers want. Break‑even is evaluated with the same BE tolerance (pips) used for close messages. The internal state of the trade is always kept up to date, so the final CLOSED message (pips, PnL, reason) is unaffected. Recommended for signal providers whose EAs trail the stop; leave All events if you want subscribers to mirror every SL move.
Which orders qualify
Require StopLossIf ON, trades opened without a Stop Loss are ignored. Useful for signal providers who want to filter out manual scalps.
Late‑SL grace (sec)How long the EA waits before deciding a trade has «no SL». Default 15 seconds — gives copiers time to attach a stop after the market order.
Pending → send at fillIf ON, pending orders do not generate a NEW message. Instead the EA waits for the pending to be filled and then publishes a market BUY/SELL. Recommended for copier‑driven channels where pending fills may diverge between provider and copier.
At EA startup
Skip pre‑existing tradesIf ON, trades already open when the EA starts are completely ignored (no NEW, no UPDATE, no CLOSE). If OFF, the EA picks them up — subject to the next setting.
Include if opened within (min)Only when the previous switch is OFF. 0 = unlimited (every pre‑existing trade is picked up). N > 0 = only trades opened within the last N minutes from EA startup are picked up.

RISK — how Signal Bridge computes the «risk %» and the «PnL %» you see in messages and reports.

InputDescription
Calc Risk onAccount Balance (default) · Account Equity · Custom Balance (uses the value below). Pick Custom Balance when you want every percentage to reflect a fixed reference equity (e.g. the prop‑firm challenge starting equity).
Custom BalanceReference equity used when Calc Risk on = Custom Balance.
Account currencyCurrency symbol printed next to monetary values in messages and reports (e.g. $ , € , USD ).
Exclude Swap/CommIf ON, swap and commission are excluded from PnL figures (cleaner numbers for marketing).
BE tolerance (pips)Pip range around entry within which a trade is considered breakeven. Used by close messages («Trade closed at break‑even»), trade‑by‑trade reports, and win‑rate counting.
BE tolerance (%)Same concept as above but expressed as a percentage of balance. Used for the By Day, By Pair and Win/Lose reports, where summing pips across XAUUSD and EURUSD would be meaningless.

SYMBOL — broker‑specific symbol handling and final filters.

InputDescription
Hide prefixPrefix to strip from displayed symbol names (e.g. z if your broker uses zEURUSD ).
Hide suffixSuffix to strip (e.g. .pro , m ).
Custom pipsOverride pip calculation for specific symbols. Format: SYMBOL=digits , comma‑separated.
Examples: XAUUSD=2,BTCUSD=-10 .
Positive value = force that many digits. Negative value = divide the raw point delta by that absolute number (useful for BTC, indices, exotic CFDs).
Market textFree‑text label shown next to the symbol in messages (e.g. "FX", "Crypto") — leave blank to hide.
Magic filterComma‑separated list of magic numbers to broadcast. Blank = no filter. Example: 12345,67890 .
Exclude magicComma‑separated list of magic numbers to always skip, applied after Magic filter. Blank = exclude none.
Symbol filterComma‑separated list of symbols to broadcast. Blank = all symbols. Example: EURUSD,XAUUSD,BTCUSD .
Exclude pairsComma‑separated list of symbols to always skip, applied after Symbol filter. Blank = exclude none.

List field editor. Magic filter, Exclude magic, Symbol filter, Exclude pairs and Custom pips are list fields: click the blue label (pencil icon) to open an editor with 4 native boxes of 63 characters each — Ctrl+V works in every box — joined with commas for a combined limit of 252 characters. A value the terminal would cut at 63 characters inline is rejected instead of silently truncated; a value over 60 characters is shown on the panel as (N chars) - click label to edit .


5.3 — Messages

Messages tab

LAYOUT

InputDescription
StyleVisual template used to format every Telegram message. Four built‑in layouts: Signal Bridge Classic (default, vertical with emoji icons), Tree View (grouped sections), Clean Minimal (no emoji, compact), Tabled View (monospace table).

4 message layouts: Classic, Tree view, Clean, Tabled

INCLUDE IN MESSAGES — toggle each piece of information on or off. Switches operate independently of each other — turn off anything you don't want to disclose to your audience.

ToggleDescription
EmojiUse emoji icons in the message header / event line.
Ticket #Include the MT4/MT5 ticket number.
PipsShow gained/lost pips.
PnL (%)Show PnL as a percentage of the configured risk base (see Calc Risk on in §5.2).
RRShow Risk:Reward on opening messages (requires both SL and TP to be set).
Close reasonShow why a trade closed (TP hit, SL hit, manual, TSL, BE…).
Line breaksInsert blank lines between sections to make the message more readable. Turn off for a more compact layout.
LotsShow the lot size. Strongly recommended ON if you use partial closes, because some copier services (e.g. TSC) cannot replicate partials without an absolute lot value.
PnL ($)Show PnL in account currency.
Risk %Show the estimated risk percentage on open messages (computed from SL distance × lot size / balance).
Order commentInclude the MT4/MT5 order comment field.
DurationShow how long the trade stayed open (close messages only).

FOOTER

InputDescription
Channel nameFree text appended at the bottom of each message — usually your channel branding (e.g. "My VIP Channel").
Show 'Signal Bridge'Master switch for the «Signal Bridge - version» signature below the channel name. Highly appreciated by the developer if left ON :)
in New / Activated / Cancelled / Updates / Partial / ClosedPer‑event switches: independently decide which event types carry the footer. Default: footer ON for New, Partial and Closed; OFF for routine UPDATE / ACTIVATED / CANCELLED messages to avoid visual noise.

Example of a NEW order message with every field enabled (Classic layout):

EURUSD Buy NEW message example

Signal Bridge tracks the whole life‑cycle of every trade. The opening message header reads «NEW ORDER» (pending activation still shows «ACTIVATED»). Beside NEW ORDER and CLOSED, every modification produces a dedicated update message:

  • Pending order activation
  • Pending order cancellation
  • Entry / SL / TP modifications
  • SL moved to break‑even
  • SL trailed to lock profit (Trailing Stop)

Order updates examples


5.4 — Custom Msgs

Custom Msgs tab

Override the default text used for each close scenario and configure the «trade in profit» update.

Full text editor. Click the blue label of any text field on this tab (or the pencil icon) to open a multiline editor overlay: arrow keys, Home/End (Ctrl+Home/End = start/end of text), Ctrl+A to select all, Enter = OK, Esc = cancel, click anywhere in the text to move the cursor. An on‑screen emoji keyboard inserts icons at the cursor. Since MQL cannot read the Windows clipboard, a separate Paste (Ctrl+V) here box plus an Insert button lets you paste text and drop it at the cursor position. The editor shows a live N / 250 chars counter (turns red and blocks OK past 250, the same limit applied when the message is actually sent) and offers OK / Cancel / Clear / Undo changes. Applied text is saved to the panel .set file in UTF‑8, so emoji and accented characters survive an EA restart.

CLOSE MESSAGES — replaces the generic close line with a scenario‑specific phrase. Enable with the master Active switch.

TriggerDescription (default text)
TP hitTrade closed at Take Profit. Default: "Booom!! Target price hit! Ready for the next round?"
TSL hitTrade closed by a trailing stop that locked profit. Default: "Awesome! Our trailing stop locked our profit!"
SL hitTrade closed at Stop Loss. Default: "SL hit! Let's bounce back on the next trade!!"
SL @ BETrade closed at breakeven (within the BE tolerance configured in §5.2). Default: "Trade closed at break‑even, let's seek a better opportunity!"
Manual profitUser manually closed the trade in profit. Default: "Awesome! Closed in good profit!"
Manual lossUser manually closed the trade in loss. Default: "Closed in loss, Let's bounce back on the next trade!!"

PARTIAL CLOSE

TriggerDescription (default text)
Partial profitPartial close while trade is in profit. Default: "Awesome! We secured some profit, let's now wait for final TP!"
Partial BEPartial close within BE tolerance. Default: "We closed part of the position at BE, let's now wait for final TP!"
Partial lossPartial close while trade is in loss. Default: "We closed part of the position in Loss, let's now wait for final TP!"

RUNNING TRADE UPDATE — pushes a marketing‑style update message when a still‑open trade reaches a profit threshold. The message fires only once per trade.

InputDescription
ActiveMaster switch for the feature.
ModeSend text + chart (full update with a screenshot) · Send text only (no screenshot — cheaper on CPU).
Trigger type% on Balance (PnL as % of the risk base) · Pips (absolute pip count) · RR (trade has reached N times its initial risk — requires SL).
ThresholdThe numeric value matching the trigger type (e.g. 1.00 with % on Balance = trigger at +1% on balance).
MessageFree‑text body of the update. Keep the text consistent with the threshold: if you trigger at 2%, write «has reached 2%» in the text.

Trade in profit update example


5.5 — Charts

Charts tab

Four built‑in colour themes plus full support for your own .tpl templates. Trade objects (SL, TP, close line) are drawn on top of the chart with configurable colours.

Chart themes and custom templates

CHART THEME — visual styling of the screenshot.

InputDescription
ThemeBlue (blue background, white/blue candles) · Grey (grey background, green/dark‑grey candles) · Black (black background, green/red candles) · White (white background, green/dark‑grey candles) · Custom template — uses the template name from the next field.
TemplateBase name of your custom .tpl file (located in Terminal\templates\ ). Enter without the .tpl extension. Only used when Theme = Custom template.
TimeframeTimeframe of the screenshot chart (M1, M5, M15, M30, H1, H4, D1, W1, MN). Pick a timeframe that visually shows your average SL/TP distance — e.g. M5 is wrong for a 100‑pip EURUSD trade.
ZoomZoom 0…5 (or Skip = no zoom step). 5 = maximum zoom (few candles, close‑up), 1 = minimum zoom (many candles, panoramic). 3–4 is the sweet spot for most users.

SEND CHART FOR — per‑event control over when an image is attached. Each row has three options:

  • With Signal msg — the chart is uploaded together with the text message (single Telegram post, slower).
  • After Signal msg — the text is sent immediately; the chart follows as a reply a few seconds later (recommended on slow VPS).
  • Don't send — no chart for this event.
RowDescription
PendingBehaviour for pending‑order NEW messages.
MarketBehaviour for market BUY/SELL NEW messages.
PartialBehaviour for partial‑close messages.
Full closeBehaviour for full‑close messages.
Skip on negativeIf ON, full‑close screenshots are skipped when the trade closed in loss. Pure marketing toggle — you decide.

CHART SIZE

InputDescription
Size modeFixed Size (W+H) — uses the explicit width and height below · Auto (H only) — width derived from chart aspect ratio.
Chart WidthPixel width of the screenshot (used in Fixed Size mode). Default 1400.
Chart HeightPixel height. Default 800. Telegram compresses very large images — 1080p is a good ceiling.


5.6 — Reports

Reports tab

REPORTS CONFIG — global options applied to every report (manual, daily, weekly, custom).

InputDescription
Strategy nameOptional label prepended to the report title (e.g. "Scalper EU").
Show PnL ($)Include monetary PnL.
Show PipsInclude pip totals.
Show WinRateShow the win‑rate row.
Show ChannelShow the channel branding footer in reports.
Magic IncludeComma‑separated magics to include. Blank = include all.
Magic ExcludeComma‑separated magics to exclude. Blank = exclude none.
Magic namesOptional aliases for magic numbers (format 123=Scalper,456=Swing ) — reports show the alias instead of the raw number.

Magic names has 3 inputs. In the classic Properties → Inputs dialog, Magic names is split into three string inputs — MagicNumberNames («Magic Names 1/3»), MagicNumberNames_2 («Magic Names 2/3») and MagicNumberNames_3 («Magic Names 3/3»), each capped around 250 characters by the dialog itself — because a single field could not hold a long alias list. The EA joins the three with commas at runtime; on the panel they appear as one field. Magic names, Magic Include and Magic Exclude are all list fields: click the blue label to open the 4‑box editor described in §5.2 (252‑character combined limit).

DAILY SCHEDULE — one row per setting.

InputDescription
ActiveMaster switch for the daily auto‑report.
Time HH:MMServer time at which the report is sent each day (e.g. 09:00 ).
StyleAggregation: Detailed by Trade (default), By Pair, By Day, Win/Lose, By Magic.
Skip emptyIf ON, skip the send when no trades closed in the period.
Show openIf ON, include the list of still‑open positions at the bottom of the report.
Skip on lossIf ON, skip the send when the period's total PnL is negative. Marketing toggle.

Catch‑up behaviour: if the terminal is busy exactly at the scheduled minute, the report is not lost — the EA sends it as soon as the current time is at or past the scheduled time.

WEEKLY SCHEDULE — same fields plus a day‑of‑week selector.

InputDescription
ActiveMaster switch for the weekly auto‑report.
DayDay of the week to send (Sunday…Saturday). Default Saturday.
Time HH:MMServer time. Default 23:10.
StyleAggregation. Default Result by Day.
Skip empty / Show open / Skip on lossSame semantics as the daily block.


6 — REPORT TYPES EXPLAINED

TypeLayoutBest for
Detailed by TradeOne row per ticket: symbol, direction, lots, pips, PnL, close reason.Daily reports for transparent signal channels.
By PairOne row per symbol with aggregated pips and PnL.Multi‑symbol portfolios where you want to see which instrument contributed most.
By DayOne row per calendar day with the day's net result.Weekly and monthly reports.
Win/LoseThree counters: winning, losing, breakeven trades, plus win‑rate.Long‑period statistical recaps (monthly / quarterly).
By MagicOne row per magic number (or alias from Magic names).Channels that broadcast multiple strategies in parallel and want to show each strategy's contribution separately.

Examples — weekly Win/Lose recap on the left, daily By‑Pair report (with open trades) on the right:

Weekly Win/Lose and Daily By Pair reports

If you hit a 400 Bad Request on long reports, the message has exceeded Telegram's 4096‑character limit — switch to a coarser type (By Day, Win/Lose) or narrow the date range.


7 — BIDIRECTIONAL UI ↔ INPUTS SYNC

From v6.08, the on‑chart panel and the MT4/MT5 input dialog stay in sync automatically.

  • Every UI change is persisted to MQL4\Files\SignalBridge_panel.set (or MQL5\Files\ ) within ~1 second via the EA timer.
  • The file uses the standard MetaTrader .set format and is valid as a regular preset.
  • For each key K , the EA also writes a companion line K.in=<input value at save time> . On reload it compares K.in with the current input value: if they match, the EA applies the saved UI value (the user only touched the panel); if they differ, the input wins (the user edited the Properties dialog and that change must take priority).
  • Booleans are serialised as true / false so the file Loads cleanly via MT4's standard Inputs → Load button.
  • Since v6.13 the .set file is written in UTF‑8 (it was ANSI before), so emoji and accented characters typed into Custom Msgs texts or other free‑text fields survive an EA restart.

Migrating a configuration to another terminal: copy SignalBridge_panel.set into MQL4\Presets\ (or MQL5\Presets\ ) of the target terminal, then open the EA Properties → Load → select the file. MT4/MT5 will silently ignore the K.in= companion lines.


8 — PERFORMANCE TIPS

  • VPS sizing: 8 GB RAM, quad‑core CPU, SSD, not over‑sold. The chart pipeline is the bottleneck.
  • Slow host? Set every Send Chart for … to After Signal msg or Don't send. The text signal will always go out in <1 s.
  • Process one message at a time is the safer default. Disable it only on real, dedicated hardware.
  • Keep the EA on a single chart per terminal. Multiple EA instances pointed at the same channel will produce duplicate messages.
  • Use BTCUSD (or any 24/7 instrument) as the host chart so the EA receives ticks at weekends and can still fire scheduled reports.


9 — ADVANCED INPUTS (CLASSIC PROPERTIES → INPUTS DIALOG ONLY)

These inputs are not on the on‑chart panel. They live only in the classic EA properties dialog. To open it: right‑click the chart → Expert Advisors → Properties → Inputs tab. Defaults are tuned for an average VPS — change them only if you have a specific reason.

Message timing

InputDefaultDescription
messageDelay0Artificial delay (seconds, 0–60) added before sending every message. Useful when you want to give your manual copiers a head start before the channel is notified.
delayBetweenMessages5Minimum seconds between two consecutive Telegram messages. Protects against Telegram's 429 Too Many Requests rate limit. Increase if you broadcast bursty signals (HFT, scalping).
TickSilenceThreshold5If no tick is received for N seconds, the EA switches from tick‑driven to timer‑driven processing so it can still publish updates and scheduled reports. Critical on crypto charts during the weekend gap. 0 = feature disabled.

Chart pipeline timeouts — how long the EA waits at each step of the screenshot pipeline before declaring the step failed and skipping the screenshot. Increase every value on slow VPS.

InputDefaultDescription
timeoutOpenChart5Max seconds to open a new temporary chart.
timeoutWaitStable4Max seconds to wait for the new chart to stabilise (first tick received, history loaded).
timeoutApplyTemplate4Max seconds to apply the chart template (.tpl).
timeoutTradeObjects4Max seconds to draw the SL/TP rectangles and the entry‑to‑close trend line.
timeoutScreenshot4Max seconds to capture the .png file via ChartScreenShot() .

Behaviour & housekeeping

InputDefaultDescription
ForceCloseCharttrueAuto‑close the temporary chart after the screenshot, even on error. Set to false on very slow VPS where forced close stalls the terminal.
ScreenshotCleanupInterval2Interval (minutes) at which the EA removes old .png files from Files\ . Keeps the disk tidy on long‑running terminals.
ProcessMessagesSeriallyfalseIf true, the EA processes one message at a time in sequence (safer, lower CPU usage). If false (default for high‑perf VPS), multiple events can be processed in parallel — ideal for HFT strategies sending many signals per second.
UseTradeTransactionstrueMT5 only. Kill‑switch for the hybrid event‑driven trade detection introduced in 6.10: when true, OnTradeTransaction flags new deals and the EA reacts within ~1 second instead of waiting for the next tick on the host chart. Set to false to fall back to pure tick/timer polling.
RecoverInstantTradestrueMT5 only. When true, trades opened and closed between two polling passes (which a pure polling loop would miss entirely) are reconstructed from the deal history so their NEW/CLOSED messages are still sent.

Panel & logging

InputDefaultDescription
PanelPositionTOP_RIGHTAnchor of the on‑chart panel: TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT.
ShowMainSettingsonCharttrueMaster switch for the entire on‑chart panel. Set to false if you prefer a clean chart and want to configure everything via the classic Inputs dialog.
CsvWriteIntervalSeconds15How often (seconds) the EA flushes its diagnostic CSV log to disk. Lower = more granular logs, higher disk I/O. Used mainly for support troubleshooting.


10 — TELEGRAM ERROR HANDLING

Signal Bridge inspects every response from the Telegram Bot API. To protect the bot from being banned, after two consecutive failures the EA stops sending new messages; you'll need to remove and reload the EA to resume.

Error / StatusMeaningHow to fix
400 Bad Request: chat not found Invalid Chat ID, or the bot is not a member/admin of the channel.
  • Check the Chat ID format. Plain numeric ( 1234567890 ) is fine; -1001234567890 also works — the EA normalises both.
  • Verify the bot was added to the channel as Administrator with Post Messages permission.
400 Bad Request: reply message not found The EA tried to reply to a message that no longer exists.
  • Signal Bridge replies to the first message of each trade thread. Don't delete the initial NEW message in the channel.
  • After two retries the EA sends the message without replying (no thread linkage).
400 Bad Request (other) Malformed payload, invalid HTML, or message too long.
  • Most common cause: the report exceeded 4096 characters. Switch to a coarser Report Type (By Day, By Pair, Win/Lose) or narrow the date range.
401 Unauthorized Bot token is wrong or revoked.
  • Re‑check the token in Filters → Token. Format: 123456789:AA… .
  • Generate a fresh token via @BotFather if in doubt.
403 Forbidden Bot is blocked or lacks permissions in the channel.
  • Make sure the bot is Administrator with Post Messages enabled.
  • For private chats, the user must have started a conversation with the bot at least once.
429 Too Many Requests Telegram rate‑limit hit.
  • Increase Min delay between messages in the EA inputs.
  • Avoid bursts: prefer the «send chart after signal» mode rather than packing chart + signal into a single multipart upload.
5xx Server Error
(500, 502, 503…)
Temporary Telegram server fault.
  • Wait a few minutes. The EA retries automatically up to two times.
  • Check Telegram's status if the issue persists.


11 — LINKS AND SUPPORT

Thanks for using Signal Bridge — happy trading!