Telegram to MT5 and MT4 Multi-Channel Copier

Telegram to MT5 and MT4 Multi-Channel Copier

17 April 2026, 01:55
Sergio Marquez Uroz
1
586

Setup Guide: Telegram to MT5 and MT4 Multi-Channel Copier

This guide walks you through the complete setup in three stages: obtaining your Telegram API credentials, configuring your Windows application, and installing the Expert Advisor.

Total preparation time: 5-10 minutes.

The TelegramToMT5MultiChannelCopier.exe application works for both MT4 and MT5. Make sure you purchase the correct EA version for your Metatrader.

=== Download the TelegramToMT5MultiChannelCopier.exe application (Version 1.19) here ===

MT4 EA: https://www.mql5.com/en/market/product/173429

MT5 EA: https://www.mql5.com/en/market/product/172706

Telegram to MT5 app

📑 Table of contents

  1. Step 1: Obtain Telegram API credentials
  2. Step 2: Configure the Windows application
  3. Step 3: Install and configure the Expert Advisor
    • 1. Setup (basic)
    • 2. Entry (market or pending)
    • 3. Take Profit (multi-TP)
    • 4. Stop Loss (protection)
    • 5. Override SL/TP (ignore channel)
    • 6. Position size (risk)
    • 7. Filters (which signals to accept)
    • 8. Broker matching (symbol adjust)
    • 9. Breakeven (auto SL to entry)
    • 10. Trailing stop
    • 11. Partial close
    • 12. Performance panel
  4. Running on a VPS
  5. Troubleshooting
  6. Updates
  7. Version history
    • Version 1.19 — Latest
    • Version 1.18
    • Version 1.17
    • Version 1.15
    • Version 1.13
    • Version 1.12
    • Version 1.11
    • Version 1.10
  8. Support

Step 1: Obtain Telegram API credentials

The app connects to Telegram using the official API. You need an API ID and API hash, which are free and can be obtained in 2 minutes.

Step 1: Open your browser and go to my.telegram.org/apps

Step 2: Log in with your phone number (the same one you use for Telegram).

Step 3: You will receive a confirmation code in your Telegram app. Enter it on the website.

Step 4: Click on "API Development Tools".

Step 5: Fill out the form:

  • Application title: any name (e.g., "MT5 Copier")
  • Short name: any name (for example, "mt5copier")
  • Platform: Desktop
  • Description: Leave it blank or write whatever you want.

Step 6: Click on "Create application".

Step 7: You will see your API ID (a number) and your API hash (a long string of text). Copy both and save them in a safe place. You will need them in the next step.

⚠️ Important:Never share your API ID or API hash with anyone. These credentials give you access to your Telegram account.

Api ID telegram


Step 2: Configure the Windows application

Step 1: Download the attached application and save it anywhere on your computer. No installation is required.

Step 2: Double-click TelegramToMT5MultiChannelCopier.exe to run it.

ℹ️ Note:Windows SmartScreen might display a warning because the app is not digitally signed. Click "More info" and then "Run anyway." The app is safe.


1.15

Step 3: Enter your credentials in the top section of the application:

  1. API ID
  2. API Hash
  3. Phone number: your telephone number with international prefix (for example, +12345678910)

Step 4: Click "Connect". The app will send a verification code to your Telegram account. Enter the code in the dialog box that appears.

If you have two-step verification enabled, the app will also ask for your Telegram password after the code.

Code telegram

Step 5: Once connected, the app displays the available channels in the 'Channels' tab. These are all the channels and groups you're subscribed to on Telegram.

Step 6: Select the terminal to which you want the signals to be sent. Use the "Terminal" drop-down menu at the top:

  • "Default (all MT4/MT5)".
  • Or select a specific terminal (for example, "MT5 MetaTrader 5 - Exness") to send signals only to that one.
OPTIONAL:

  • In Custom Keywords, you can choose the words the app recognizes to trigger each action.
  • In Custom Symbol Matches, you can map any token the channel uses to the exact symbol name your broker requires (e.g. NQ → NAS100, ORO → XAUUSD.pro). Supports broker suffixes with . - _ and # (like XAUUSD.pro, XAUUSD-ECN, EURUSDm).
  • Debug mode and log file In the Setup tab, the "Show raw incoming messages" checkbox dumps the full text of every incoming message to the log, useful for diagnosing unusual channel formats. The "Open log file" button next to it opens the persistent "app.log" file, helpful when sharing logs with support.
  • Support Bundle: one click generates a ZIP with logs and diagnostics (sensitive data masked) to attach to any support request.
  • Reading signals sent as images (OCR) Some channels publish signals as images instead of text. To read them, install Tesseract OCR (free, from https://github.com/UB-Mannheim/tesseract/wiki), then check the "Read image signals (OCR)" box in the Setup tab. Done — images will be parsed just like text messages.

Step 7: Click on the 'Channels' tab and select the channels you want to listen to. They will move to the "Listening" column on the right.

If a channel is a forum-style supergroup, each topic will appear as its own entry, displayed as "Channel name ▸ Topic name". You can select individual topics instead of the whole channel — each one will be tracked separately in the EA's Performance Panel.

Step 8: Click "Start". The application will begin listening for signals.

When a signal is detected, you will see it in the log at the bottom:

[OK] BUY XAUUSD entry=2650.0 sl=2632.0 tp=2660.0
The application will continue running and listening. You can minimize it to the taskbar. Do not close it; closing it will stop it from listening.

Step 3: Install and configure the Expert Advisor

Step 1: After purchase, the EA appears in your terminal under Navigator → Expert Advisors → Market. Right-click and select 'Attach to chart' or drag onto any chart.

Note: The EA appears in Navigator only if you are logged into your MQL5 account in your terminal with the same account that made the purchase. Go to Tools → Options → Community and verify your login. After login, restart the terminal so the Market list refreshes.

Step 2: The chart symbol doesn't matter: the EA operates using signal symbols, not the chart symbol.

Step 3: On the Input Parameters tab, configure the settings. Inputs are organized in 12 clearly labeled sections.

1. SETUP (basic)

Default all MT4/MT5 (false if specific terminal in app) (bool, default: true)
If TRUE, the EA reads signals from the shared Common folder (used when you select "Default (all MT4/MT5)" in the app).
If FALSE, the EA reads from the local Files folder of this terminal — "MQL4\Files" on MT4, "MQL5\Files" on MT5 (used when you select a specific terminal in the app dropdown).

Check for new signals every N seconds (int, default: 5)
How often the EA checks the signals file for new data.
Lower values (1-3) = faster reaction, more CPU usage.
Higher values (10-30) = less load, slightly slower reaction.

Magic number (ulong, default: 20260410)
Unique identifier for this EA's trades. Change it if you run multiple instances of the EA so they don't interfere with each other. The default value is just an arbitrary number — it can be replaced with any integer.

Slippage (int, default: 10)
Maximum allowed slippage in points when opening a market order. If the price moves more than this during execution, the order is rejected.

Unique terminal ID (empty for single-terminal setup) (string, default: "")  NEW in 1.19
Only fill this if you have SEVERAL MT4/MT5 terminals reading from the shared Common folder and you want each one to process signals independently. Give each terminal a different short ID (e.g. "T1", "XM", "IC_Real", "Demo"). Leave empty for standard single-terminal setups.
When set, every terminal processes each signal on its own

2. ENTRY (market or pending)

Use pending orders when entry is far from current price (bool, default: true)
If enabled, when the signal's entry price is far from the current market, the EA opens a pending order (LIMIT/STOP) instead of skipping the signal. If disabled, signals with distant prices are converted to market orders at the current price.

Switch to pending when entry is more than N pips away (double, default: 5.0)
Threshold in pips from the current price to decide between market/pending. If the signal's price is within N pips of current, open as market. If farther, open as pending order.

Range entries: how many orders (1 = single) (int, default: 1)
When a signal has multiple entry prices (range "4594-96" or layered entries like "SECOND BUY LIMIT"), how many of those prices to use.
1 = use a single price (see the next setting to pick which one).
2 or more = open a separate order per price, up to this number.

Range: first / last / average price (if single entry) (enum, default: ENTRY_AVERAGE)
Only applies when the setting above is 1 and the signal has multiple prices.
ENTRY_FIRST = use the first price in the range.
ENTRY_LAST = use the last price in the range.
ENTRY_AVERAGE = use the average of all prices.

Grid: N orders across range (0=off, overrides UseEntryCount) (int, default: 0)  NEW in 1.19
Distributes exactly N orders evenly between the low and high of the range, regardless of how many prices the signal itself carried. When above 0, overrides "Range entries: how many orders".
Example on XAUUSD BUY 4101-4107:
Grid=3 → orders at 4101, 4104, 4107
Grid=7 → orders at 4101, 4102, 4103, 4104, 4105, 4106, 4107
Safety-capped at 20 orders per signal.

3. TAKE PROFIT (multi-TP)

Multi TP (bool, default: false)
If enabled and the signal has multiple TPs, open ONE position per TP.
Example: signal with TP1/TP2/TP3 → 3 positions with same SL, different TPs.
If disabled, opens a single position with the first TP only.

How many TPs to use: 0=all, 1=TP1 only, 3=TP1+TP2+TP3 (int, default: 0)
Limit how many TPs to use from the signal.
0 = use all available TPs.
1 = use only TP1. 2 = use TP1 and TP2. And so on.

Safety cap: never open more than N positions per signal (int, default: 5)
Absolute safety cap. Even if the signal has 10 TPs, the EA will never open more than this number. Prevents excessive order counts.

4. STOP LOSS (protection)

Reject signals with no entry price (e.g. 'BUY NOW') (bool, default: false)
If enabled, signals without an entry price are discarded.
If disabled, they are executed as market orders at the current price.

Reject signals with no Stop Loss (safer) (bool, default: false)
If enabled, signals without SL are discarded completely. Useful for conservative traders or prop firm compliance rules.

Fallback SL pips when signal has none (0=off, RISKY) (double, default: 0.0)
If the signal has no SL, automatically apply one at this distance in pips from the entry price.
0 = disabled (the trade opens without SL).
Example: 30 = SL placed 30 pips from entry.

5. OVERRIDE SL/TP (ignore channel)

ALWAYS use custom SL (ignores SL from signal) (bool, default: false)
If enabled, the SL from the channel is completely ignored and the EA applies a fixed distance defined in the next input. Useful when the channel's SL doesn't fit your risk plan, or when the channel sends inconsistent SL values you want to normalize.

Custom SL distance in pips (double, default: 100.0)
Distance in pips from the entry price used as SL when the option above is enabled. Applied as: BUY = entry − pips, SELL = entry + pips.

ALWAYS use custom TP (ignores TP from signal) (bool, default: false)
If enabled, the TP from the channel is completely ignored and the EA applies a fixed distance defined in the next input. When enabled, any multi-TP behavior is collapsed to a single position with this custom TP.

Custom TP distance in pips (double, default: 100.0)
Distance in pips from the entry price used as TP when the option above is enabled. Applied as: BUY = entry + pips, SELL = entry − pips.

Use default TP if signal has no valid TP (bool, default: false)
If enabled, applies an automatic TP when the signal has no TP, or when the TP comes in an invalid format (e.g. "TP: 100 pips" — which is a relative offset, not an absolute price). Different from Custom TP: this one only kicks in as a fallback; Custom TP overrides the channel's TP always.

Default TP in pips (double, default: 50.0)
Distance in pips used as fallback TP when the option above is enabled. Applied to the entry price: BUY = entry + pips, SELL = entry − pips.

6. POSITION SIZE (risk)

Risk mode: Fixed lot / % balance / Money / Signal (enum, default: RISK_FIXED_LOT)
How the lot size is calculated for each trade.
RISK_FIXED_LOT = always the same lot size (see next setting).
RISK_PERCENT = percentage of balance. Requires SL in the signal.
RISK_FIXED_MONEY = fixed amount of money. Requires SL in the signal.
RISK_FROM_SIGNAL = use the lot size sent by the signal provider.

Fixed lot size (0.01 = micro, safest for beginners) (double, default: 0.01)
Lot size used when risk mode is RISK_FIXED_LOT.

% of balance to risk per trade (needs SL to calculate) (double, default: 0.10)
Percentage of balance to risk per trade (only if RiskMode = RISK_PERCENT).
0.10 = 0.10% of balance. 1.0 = 1% of balance.
Requires SL in the signal to calculate the correct lot.

Money to risk per trade in account currency (needs SL) (double, default: 50.0)
Amount of money (in account currency) to risk per trade. Only applies when RiskMode = RISK_FIXED_MONEY. Requires SL in the signal.

Fallback lot if risk calculation fails (double, default: 0.01)
Backup lot size used when the risk calculation fails (e.g. percent mode but the signal has no SL). Prevents skipping the trade entirely.

7. FILTERS (which signals to accept)

Comma-separated whitelist. Empty = all. Ex: XAUUSD,EURUSD (string, default: "")
Comma-separated list of symbols to allow. Only these will be traded.
Example: "XAUUSD,EURUSD,GBPUSD"
Empty = allow all symbols.

Comma-separated blacklist. Ex: USDJPY,NAS100 (string, default: "")
Comma-separated list of symbols to ignore. Signals on these are discarded.
Example: "USDJPY,NAS100"

Only trade these channel names. Empty = all (string, default: "")
Comma-separated list of allowed channels. Only signals from these channels will be traded. Partial match is supported.
Example: "GoldVIP,Premium Signals"
Empty = allow all channels.

Skip these channel names (string, default: "")
Channels to ignore. Signals from these are discarded. Useful to temporarily disable a channel without removing it from the app.

8. BROKER MATCHING (symbol adjust)

Suffix your broker adds to ALL symbols. Ex: .pro, m, -ECN, # (string, default: "")
Force a uniform suffix on every symbol the EA trades. Saves you from configuring every symbol manually.
Empty = auto-detect (default behavior).

Per-symbol overrides. Ex: XAUUSD=GOLD.p,NAS100=USTEC.pro (string, default: "")
Per-symbol exceptions when one instrument needs a custom mapping that doesn't fit a global broker suffix.
Format: comma-separated FROM=TO pairs.
Example: "XAUUSD=XAU.pro, EURUSD=EUR.raw" → XAUUSD signals route to XAU.pro, EURUSD signals route to EUR.raw, all other symbols use the normal resolution (or Broker suffix if set).
Takes priority over Broker suffix and automatic detection.

If signal has no symbol, use this one. Ex: XAUUSD (string, default: "")
Fallback instrument used when the message has no recognizable symbol name. Useful for gold-only, BTC-only or pair-specific channels that omit the instrument from their signals because everyone in the channel knows what they trade.
Example: "XAUUSD" on a gold-only channel.
Signal received: "BUY LIMIT, ENTRY 4496, SL 4494, TP 4502" → executed on XAUUSD.
Only applies when the message has NO symbol. If the signal mentions an instrument (e.g. "BUY EURUSD..."), the EA uses that one and ignores the default.
Empty = drop signals without a symbol (previous behavior).

9. BREAKEVEN (auto SL to entry)

Move SL to breakeven (=entry) after N pips of profit (bool, default: false)
Enables automatic breakeven. When a position reaches a certain profit in pips, the SL is moved to the entry price so the trade can no longer lose.

Profit in pips required to trigger BE (double, default: 20.0)
Profit in pips that triggers the move of SL to breakeven. Only applies when breakeven is enabled above.

10. TRAILING STOP

Enable trailing stop (SL follows profit) (bool, default: false)
Enables automatic trailing stop. The SL follows the price at a fixed distance as the trade moves in favor.

Activate trailing after N pips of profit (double, default: 30.0)
Minimum profit in pips to activate the trailing stop. Below this threshold, the trailing does nothing.

SL stays N pips behind current price (double, default: 15.0)
Distance in pips maintained between the SL and the current price.
Example: 15 = SL stays 15 pips below (BUY) or above (SELL) the market price. The SL only moves in favor, never against.

Cancel related pending orders when trailing starts (bool, default: true)
When the trailing stop activates for the first time on a position, automatically close any pending orders from the same channel and symbol. Prevents new entries from triggering while the trailing manages the current trade.

Open without TP when trailing on (trailing decides exit) (bool, default: false)
If enabled, positions are opened WITHOUT TP while trailing stop is active. Lets the trailing decide when to close. Recommended for pure trailing setups — without this, the channel's TP would close the position before the trailing has a chance to ride the move.

11. PARTIAL CLOSE

Enable partial close (take some profit, let rest run) (bool, default: false)
Enables automatic partial close. When a position reaches a certain profit, a percentage of the position is closed to lock in profit, and the rest keeps running.

% of position to close (50 = half) (double, default: 50.0)
Percentage of the position to close. 50 = close half of the lot.

Trigger partial close at +N pips of profit (double, default: 30.0)
Profit in pips that triggers the partial close.

After partial close, move SL to breakeven (risk-free) (bool, default: true)
After the partial close, move the SL to the entry price on the remaining portion. This leaves the trade risk-free with the rest still open.

12. PERFORMANCE PANEL

Show on-chart stats panel per channel (bool, default: true)
Shows or hides the performance panel rendered directly on the chart. The panel displays real-time statistics for every signal channel: number of trades, win rate, net P/L and total pips. It also includes interactive period buttons (Day / Week / Month / All) to switch the analysis window with one click.

Which corner the panel is anchored to (enum, default: TOP_LEFT)
Chart corner where the panel is anchored. Options: TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT.

History window in days (30 = last month) (int, default: 30)
Number of days back to include in the statistics. Only trades closed within this window are counted. Larger values give more reliable statistics; smaller values reflect recent performance.

Panel refresh rate in seconds (int, default: 30)
Maximum interval between automatic refreshes. The panel also refreshes immediately whenever a position is opened or closed, so this is mostly a fallback.

Max channels shown (rest grouped as 'Others') (int, default: 10)
Maximum number of individual channel rows displayed. If you follow more channels than this, the remaining ones are aggregated into a single "Others" row to keep the panel compact.

Panel font size in pixels (int, default: 9)
Size of the panel text in pixels. Increase if the panel is hard to read on a high-resolution monitor.

Panel background color (color, default: Black)
Background color of the panel card. Choose a color with good contrast against the panel text colors.

Panel header text color (color, default: DodgerBlue)
Color used for the panel title text shown at the top of the card.

Panel total row color (color, default: Gold)
Color used for the TOTAL row that aggregates all channels at the bottom of the panel.


Step 4: Make sure AutoTrading is enabled at two levels:

  • Global: the AutoTrading button in the top toolbar should be active, not stopped.
  • Per EA: in the EA's Common tab when attaching it, check "Allow Algo Trading" (MT5) or "Allow live trading" (MT4).

If only one of these is enabled, the EA will not place any orders.

Step 5: Click OK. The EA is now running.

Check the Experts tab at the bottom of your terminal. You should see:

[START] Telegram multi-channel copier to MT5 vX.XX has been started.

When the application detects a signal and sends it, the EA will execute it and display:

[SIGNAL #1] BUY XAUUSD entry=2650.00 sl=2632.00 tp=2660.00 lot=0.01
[EXEC] BUY XAUUSD lot=0.01 tp=2660.00 -> ticket=12345

Running on a VPS

Both the application and the Expert Advisor (EA) work on any Windows VPS. The setup is the same as on a local computer. Recommended VPS: any Windows VPS with at least 2 GB of RAM.

Make sure the application is always running on the VPS. If the VPS restarts, you'll need to restart the application manually (or add it to Windows startup). 

In version 1.11 and later, it automatically starts listening.


Troubleshooting

The application displays "Connection Error" or cannot log in.

  • Verify that your API ID and API hash are correct (without extra spaces).
  • Check that your phone number includes the international prefix.
  • Check your internet connection.

The EA does not open trades.

  • Make sure AutoTrading is enabled (active button on your terminal's toolbar).
  • Verify that UseCommonFolder matches what you selected in the application's drop-down menu.
  • Check the Experts tab in your terminal to see the error messages.
  • Make sure the application is running and showing signals in the log.

The EA cannot find the symbol.

  • Your broker may use a different name. The EA attempts to resolve this automatically, but if it fails, try mapping the token in the app's Custom Symbol Matches dialog (e.g. NQ → NAS100, ORO → XAUUSD.pro).
  • The Experts tab will display: [ERROR] The symbol 'XXX' is not found in this broker.

The signal is detected but the order is rejected.

  • Check if your account has enough margin.
  • Check if the SL or TP are too close to the current price (some brokers have a minimum stop distance).
  • The Experts tab will show the specific reason for the rejection.

Windows SmartScreen blocks the application.

  • Click "More information" and then "Run anyway." This happens because the application is not digitally signed. It's safe.

I run the same signals on two terminals but only ONE opens trades.

  • This is the multi-terminal race fixed in v1.19. Set a different value in the EA input "Unique terminal ID (empty for single-terminal setup)" on each terminal (e.g. "T1" and "T2"). Both terminals will then execute every signal independently.

Updates

When a new version of the application is released, download it again from this page and replace the old .exe file. Your credentials and session are saved separately, so you won't need to log in again.

EA updates are distributed through the MQL5 marketplace. You will receive a notification in your terminal when an update is available.


Version history

All changes, improvements and fixes by release.

    Version 1.19    LATEST 

    • Signal reading has been improved
    • Fixed an issue when the signal included multiple profit-taking levels or fell within a range
    • New feature: Unique ID for multiple terminals
    • New feature: "Grid" mode, with orders distributed evenly across the range

    Version 1.18

    Custom SL/TP, Custom Symbol Matches, cleaner inputs and reliability fixes

    • Added Custom SL and Custom TP: two new inputs that override the SL/TP from the channel with a fixed distance in pips.
    • Parameters renamed for greater clarity: the EA inputs reorganized into 12 clearly labeled sections with plain-language descriptions.
    • Added Custom Symbol Matches: a new dialog to map any token the channel uses to the exact symbol name your broker requires.
    • Added Support Bundle button: one click generates a ZIP with logs and diagnostics to attach to any support request.
    • Some reported bugs fixed: multiple parser and edit-handler fixes for more reliable signal reading and safer position management.

    Version 1.17

    Broker compatibility + default symbol

    • Broker suffix: force a suffix on ALL symbols at once
    • Force symbol matches: per-symbol exceptions when one instrument needs a different mapping
    • Default symbol: fallback instrument for channels that don't include the symbol name in their messages. Useful for gold-only,BTC-only or pair-specific channels.

    Version 1.15

    Reliability fixes and panel improvements

    • Failed orders no longer retried in an infinite loop.
    • Pip calculation corrected for gold and silver.
    • Symbol resolution improved.
    • Some minor bugs have been fixed.

    New features:

    • Now, in the channel list, you can select groups that contain multiple topics, each one individually.

    Version 1.13

    Performance tracking, image signals and advanced diagnostics

    Expert Advisor (MT4 / MT5)

    New features:

    • Performance panel: a visual panel that shows real-time statistics for every signal channel. Helps you instantly identify which channels are profitable and which ones to drop.
    • panel ea
    • The panel auto-refreshes whenever a position is opened or closed, with configurable position (any chart corner), color theme and font size.

    Application (TelegramToMT5MultiChannelCopier.exe)

    New features:

    • Image signal reading (OCR): the app can now read signals sent as images. Optional. (You will need to download a third-party app: Tesseract OCR)
    • Debug mode + persistent log file: a new debug toggle dumps the raw incoming messages so unusual channel formats can be diagnosed without guesswork.
    • Channel sorting and search: order your subscribed channels alphabetically, by signal count, or by most recent activity. A search box filters the channel list instantly when you have many subscriptions.

    Version 1.12

    Improved interface

    Application (TelegramToMT5MultiChannelCopier.exe)

    New features:

    • Tabbed interface: the app is now organized in two tabs (Setup and Channels)
    • Responsive layout: all elements scale correctly when the window is resized.
    • Maximized on launch: the window opens in maximized state by default.

    Version 1.11

    Full automation for unattended setups

    Application (TelegramToMT5MultiChannelCopier.exe)

    New features:

    • Saved channels: the channels selected for listening are now stored in the credentials file.
    • Auto-start: if the app finds valid credentials and at least one saved channel, it connects and starts listening without any user interaction. Ideal for VPS.

    Version 1.10

    Custom keywords, multi-entry orders, independent breakeven and improved trailing stop

    Application (TelegramToMT5MultiChannelCopier.exe)

    New features:

    • Custom keywords for each action: BUY, SELL, Stop Loss, Take Profit, Close Position and Breakeven.

    Expert Advisor (MT4 / MT5)

    New features:

    • Multi-entry orders: opens separate trades for each price within a range (e.g. "SELL GOLD 4500-4510" can open two orders).
    • Abbreviated range detection: formats like "4594-96" or "4598-01" (when crossing round numbers) are expanded correctly.
    • Trailing stop with configurable activation distance and follow distance.
    • Breakeven as a standalone feature: moves the SL to the entry price after X pips of profit.
    • Option to close pending orders when the trailing stop activates on a related position.
    • Option to open positions without TP when trailing stop is active.
    • Default SL in pips when the signal has no SL.
    • Default TP in pips when the signal has no TP or the TP comes in an invalid format.
    • Option to discard signals without an entry price or without SL.

    Improvements:

    • SL and TP updates are now also applied to pending orders, not only to open positions.
    • Cleaner logs: periodic polling messages have been removed; only trade-related events are logged.

    Support

    If you have any questions or need help, please contact me through my MQL5 profile.


    Sharing a Support Bundle

    The Support Bundle is a one-click tool that packages everything I need to diagnose a problem into a single ZIP file. Sensitive data (API hash, phone number, session tokens) is stripped or masked before the file is written, so it's safe to share.

    Where to find the button

    Open the Windows application and stay on the Setup tab (the one where you enter your API credentials). Near the bottom of the panel you'll find a small row with three buttons:

    • "Show raw incoming messages" (checkbox)
    • "Open log file"
    • "Support bundle" ← this one

    Click Support bundle. The app builds the ZIP in a few seconds and automatically opens the folder where the file was saved.

    Where the file is saved

    The bundle is written to your Desktop. If neither exists, it falls back to the app's folder.

    The filename follows the pattern: copier_support_YYYYMMDD_HHMMSS.zip
    Example: copier_support_20260702_143512.zip

    What's inside

    • _INFO.txt — app version, Python version, OS info
    • app/app.log — full application log (all incoming messages, parsed signals, errors)
    • app/credentials_sanitized.json — your configuration without API hash, phone number, session token or password. API ID is masked to the last 4 digits only.
    • app/signals.json — the current signal queue the EA is reading
    • mt/<terminal>/... — the most recent Expert Advisor log files from your MT4/MT5 terminal(s)
    🔒 Privacy: before the ZIP is built, the app removes api_hash , phone , session_string and password from the credentials copy, and masks the api_id . The bundle contains nothing that could be used to access your Telegram account.

    How to send it to me on MQL5

    Go to my MQL5 profile and open a private message: https://www.mql5.com/en/users/oner

    1. Click "Send message" (button on my profile page).
    2. Describe the problem briefly (which channel, what you expected vs. what happened, approximate time).
    3. Click the paperclip icon 📎 in the message editor to attach a file.
    4. Select the copier_support_YYYYMMDD_HHMMSS.zip file from your Desktop.
    5. Send the message.
    ℹ️ Tip: generate the bundle right after the problem happens, while the logs still contain the failed signal. If you wait too long, older log entries may get trimmed and the relevant lines could be lost.