Backtesting Real Telegram Signals in MetaTrader: why it matters and how Becktester TG Signals works (MT4/MT5)

Backtesting Real Telegram Signals in MetaTrader: why it matters and how Becktester TG Signals works (MT4/MT5)

25 December 2025, 22:40
Sergey Batudayev
0
38
Telegram signal channels are convenient, but there’s a catch: screenshots and “+500% in a month” don’t answer the trader’s main question — how it behaves over time, across different market regimes, with spread, slippage, and real execution constraints.

That’s why the “test before you trust” approach helps: take the actual message history from a channel, convert it into structured trades, and run it through the Strategy Tester. This makes it easier to separate marketing from statistics.

What the utility does

Becktester TG Signals is a two-part workflow:

  • Python app — connects to Telegram, loads message history from a selected channel/chat, parses signals, and exports them to a CSV file.
  • MetaTrader EA (MT4/MT5) — reads that CSV and reproduces trades in the Strategy Tester, producing performance metrics and an equity curve on historical data.

Why traders may need this

  • Validate signal channels before copying. Check trade frequency, drawdown, losing streaks, and stability across periods.
  • Compare multiple sources. Same test environment → easier comparison of Win Rate / Profit Factor / Drawdown.
  • Measure sensitivity. Understand how spread/slippage and entry precision affect results.
  • Reduce “trust-based” decisions. Numbers help avoid emotional trading based on a channel’s claims.

Key advantages of the approach

  • Uses real message history (not curated examples).
  • Runs inside MT4/MT5 Strategy Tester: familiar reports, visuals, and period-to-period comparisons.
  • Flexible parsing via keyword and symbol-alias configurations.
  • Safety filters: skip duplicates, weekend signals, time windows, risk limits.

High-level workflow

  1. Select a Telegram channel/chat and a date range in the Python app.
  2. Parse messages and generate signals.csv (commonly into Terminal/Common/Files so the terminal can access it).
  3. Open the Strategy Tester in MT4 or MT5, attach the EA, and point it to the signals file.
  4. Review statistics and (optionally) export a results report to a separate CSV file.

CSV structure (what gets exported)

The export keeps the data structured: date/time, command type, symbol, entry/SL/TP, lot size, and service fields (message ID, edit flag, error field for unparsable messages). Multiple take-profit levels can be stored as a list separated by | .


Main EA settings overview (MT4/MT5)

1) File & parser basics

  • SignalFile — CSV filename (e.g., signals.csv ).
  • DebugLogs, DebugCsvRows — extra logs + print first CSV rows.
  • BrokerUTCOffset — broker UTC offset (helps align timestamps).
  • SkipDuplicates — skip duplicated signals.
  • SkipWeekendSignals — ignore weekend signals if needed.

2) Lot sizing & risk

  • LotMode — fixed / risk-based / per-symbol rules / lot-by-TP slots.
  • FixedLotValue, RiskPercent, RiskPercentPerSymbol — core sizing controls.
  • LotSizePerSymbol, LotSizeSpecificPair — fixed lots per instrument.
  • DivideLotByTPCount — split size across multiple TP targets.

3) SL/TP interpretation

  • SLMode, TPMode — use values from the signal or custom levels.
  • CustomSL, CustomTP — custom targets (depending on units).
  • SLUnit, TPUnit — Price / Pips / Points.
  • AllTPInOneLine, SLMerged, TPMerged — handle specific formatting styles in messages.
  • RejectOrdersWithoutSL, RejectOrdersWithoutTP — optionally ignore signals missing SL/TP.
  • TPToCopy — choose which TP levels to include (e.g., only TP1 and TP3).

4) Execution & slippage behavior

  • ForceMarketExecution — always enter at market.
  • MaxSlippage — maximum allowed price deviation.
  • HandleSlippage — ignore the signal or place a pending order when out of range.
  • PendingOrderExpiration — pending order expiry (minutes).
  • EntryRangeMode, EntriesInZoneOnly — how to interpret “entry zone”.

5) Management (breakeven & trailing)

  • ActivateBreakeven, BreakevenAfterPoints — move to breakeven after X points.
  • ActivateTrailingStop, SLTrailingMode, TrailingStartPoints, TrailingStepPoints, TrailingDistancePoints — trailing options.
  • BreakevenToSignalEntryPrice — use the entry price from the signal for BE when applicable.

6) Risk limits & time filter

  • MaxTradesPerDay, MaxLossesPerDay — daily caps.
  • MaxDailyLoss, MaxWeeklyLoss, MaxMonthlyLoss — loss limits (percentage or currency).
  • LossExceedAction — stop copying or close & stop if limits are exceeded.
  • UseTimeFilter, StartTime, EndTime, AllowedTradingDays — trade window & weekdays.

7) Stats & report

  • ShowStats — show statistics.
  • ExportReport, ReportFile — export results to CSV (e.g., results.csv ).

Python-side configuration (keywords & symbols)


The source includes several configuration files that make parsing adaptable:

  • app_config.json — Telegram connection settings (api_id/api_hash/session) and output preferences.
  • backtest_settings.json — last channel, date range, and output CSV path.
  • configs/default.json (and other configs) — keyword sets for BUY/SELL, SL/TP, modifications, closes, etc., plus symbol lists and aliases (e.g., GOLD → XAUUSD).
  • config/current_config.json — the active parsing configuration.

This matters because channels format messages differently (TP1/TP2 vs “targets”, GOLD vs XAUUSD, etc.). Configurable keywords and symbol aliases help fit the parser to the channel’s style.

Update: MT5 release

The typical walkthrough is often shown on MT4, but the workflow is the same for MT5: the same CSV concept, the same Strategy Tester approach. A dedicated MetaTrader 5 version of the EA is now available.


Download

To keep this educational, links are placed at the end. Replace placeholders with your actual product pages:

Disclaimer: Educational content only. Backtesting is a model and does not guarantee future results. Real trading includes latency, slippage, varying spreads, and execution differences.