Choose a backtesting tool by the question, code and data you need to test. Discretionary practice needs a way to hide future information and record decisions; an EA test needs a compatible runtime and explicit execution assumptions. Forex Tester has separate Desktop and Online products, and MetaTrader’s MT4 and MT5 testers differ. Neither the product name nor a high final balance establishes a valid test.

The MetaTrader Strategy Tester — full profile

The terminal’s Strategy Tester evaluates compatible Expert Advisors against historical data and provides trade/results reports. MT4 uses its MQL4 environment; MT5 uses MQL5 and offers several tick-generation modes. Testing is not always one calculation per candle: the selected mode and programme events determine the observations. MT5 visualisation shows the EA’s actions on a simulated chart; it is not automatically a complete manual order-entry replay panel. Check any add-on separately.

MT5’s “Every tick based on real ticks” mode uses the broker’s recorded ticks where available. Missing or inconsistent records can still require generated ticks, so inspect the data and test report. Optimisation includes complete and genetic searches, with local or cloud agents where supported. Tick modelling and optimisation features do not by themselves establish realistic fills or profitable live performance.

Check whether the actual programme’s live functions are supported by its tester. MT4’s documentation says Timer/ChartEvent events and several external-interaction functions are not executed in its tester, and trade operations use the tested symbol. A robot that depends on a timer or web request therefore needs a separate compatibility check; a successful report alone does not test that live behaviour. Inspect the first operations and journals, as explained in backtesting in MT4 and MT5.

Forex Tester — full profile

Forex Tester Desktop supports manual replay and automated strategies. Its instructions describe adding a custom expert as a DLL, not directly copying any EX4/EX5 file into a MetaTrader-equivalent runtime. Forex Tester Online is a separate browser product with its own plans and automation tools. Do not transfer a feature or licence rule between editions merely because the brand is the same.

Replay can help you practise a defined decision while keeping a record, but faster playback is not a measured improvement in trading skill. Compare source, dates, gaps, Bid/Ask or Last fields, session boundaries and costs for the actual dataset. A paid history package is not automatically more accurate or closer to your account than a broker’s data. The guide to testing a strategy explains how to define the protocol before seeing outcomes.

The Online product lists trading robots, half-automated decisions, an exit optimiser and import of trade history under plan conditions. Importing MT4/MT5 trades for analysis is not importing an EA’s code. For any conversion, compare the first signals, quantities, prices, charges and order states; a recognised file or platform name does not prove equivalent execution.

A comparison by criteria

Compare complete costs under matched assumptions. In a hypothetical annual budget, a free local tester with a USD 20 monthly dataset costs USD 240; a USD 120 annual licence with USD 15 monthly data costs USD 300. These are invented budget inputs, not current product tariffs. They exclude taxes, hardware, additions and rented computation. A free software licence alone does not establish a zero-cost workflow or the cheaper usable setup.

Five criteria for the choice
Main purposeCheck EA compatibility and manual workflow. Forex Tester Desktop and Online both have automation under their own interfaces.
CostSeparate terminal/local testing from data, add-ons, Forex Tester plan fees and paid cloud-agent rental.
Code compatibilityMT5 natively tests MQL5 Expert Advisors; Forex Tester uses its own strategy interface, so check supported code and conversions.
Data qualityCheck source, dates, coverage, quote fields and modelling. Brand, price and advertised history length do not establish validity.
Parameter optimisationMT5 offers parameter optimisation, including genetic and cloud options. Forex Tester desktop also has a Strategy Optimizer.

Choose by the task and supported code: MT5 is the native testing environment for MQL5 Expert Advisors, while Forex Tester provides manual practice and its own automated-strategy tools. Compare data, execution assumptions and workflow rather than treating one as exclusively for machines and the other exclusively for humans.

Walk-forward testing separates successive training and evaluation periods. It can expose weaknesses in parameter selection, but its value still depends on the data, trading-cost model and how the evaluation was designed.

When to choose the Strategy Tester

Use MT5’s Strategy Tester when evaluating MQL5 Expert Advisor code in its native environment. Select a data mode appropriate to the strategy, check real-tick coverage and model relevant costs and delays. Another product can test automated strategies through its own interface; compatibility, rather than automation alone, determines whether it can run your code.

For a parameter search, choose the environment compatible with the programme and retain the search history. Selecting the best in-sample variant is different from evaluating it on an excluded period. A later-period MT5 Forward partition is also not automatically a complete repeated walk-forward protocol. The guide to walk-forward analysis explains successive training and evaluation; neither approach guarantees future returns.

When to choose Forex Tester

For discretionary practice, compare order entry, pause, notes, hidden future data and export in the exact edition. Forex Tester Desktop describes both a mode that allows stepping back and a “Forward testing only” mode. Rewind can be useful for learning, but a revised decision on already seen data is not an independent test. Keep those exercises separate from the evaluation record.

Hypothetical OHLC check. Buy one model unit at 100, with SL 95 and TP 108. Assume continuous paths, exact level fills and no spread or other costs. Both 100 → 110 → 90 → 105 and 100 → 90 → 110 → 105 have O 100, H 110, L 90 and C 105. The first path exits at TP for +8; the second exits at SL for −5. The final candle alone cannot select the favourable result. More detailed data can establish order, but actual execution still needs the correct quote side and fill model.

At 10:20 you do not know the hour’s final High

Correct arithmetic alone is insufficient. Decision inputs must have been available then, not only after the candle closed.

Scroll sideways to see the full diagram

At 10:20 you do not know the hour’s final HighOur fictional price path is 100 at 10:00, 101 at 10:20, 110 at 10:50 and 104 at the model’s 11:00 endpoint. Segments between points are linear. Time is proportional and price uses one scale. At 10:20 the available maximum is 101, so our High ≥ 108 filter fails. Price reaches 110 only at 10:50; final hourly OHLC, including High 110, is known after the hour ends. Incorrectly importing that final High into the 10:20 decision row makes the filter pass. The dashed gray part is later data shown retrospectively, not a forecast or data available then.WHICH DATA WAS KNOWN?Arbitrary price; our hourly path.10010511010811010410:0010:2010:5011:00At 10:20: High = 101 < 108Bad final import: 110 ≥ 108A threshold cannot fix unavailable data.

Assumptions: Fictional prices in arbitrary units, no spread, orders or monetary returns. Points are 10:00/100, 10:20/101, 10:50/110 and 11:00/104, with linear segments and no other extrema. Our interval includes the final 11:00 observation; it does not describe any platform’s tick-to-bar allocation. Decision time is 10:20. Later data in the full diagram is retrospective only. The hour’s final High is available after it ends.

Use our demonstration filter: “High since this hour began up to decision time ≥ 108.” At 10:20 you know prices 100 and 101 and their connecting segment. High so far is 101, so the condition fails. Price reaches 110 only at 10:50. At the end, full OHLC is O = 100, H = 110, L = 100, C = 104.

Now deliberately corrupt your import: enter final High 110 in the decision row timestamped 10:20. Suddenly 110 ≥ 108 and the filter passes. Information availability changed, not rule quality. This is not presented as a default defect in Forex Tester or Strategy Tester. It is our counterexample of faulty data preparation, reproducible in a simple spreadsheet.

MQL5 timeseries documentation distinguishes the current unfinished bar from closed periods. Log decision time and the available data scope as well as bar time. Check the 10:20 row against a truncated path before comparing tools. Our threshold 108 is not a strategy or profit promise.

The final High changes the test despite being unavailable at decision time.

The most common pitfalls when choosing

Reconcile a short controlled run before comparing final balances. Match instrument, contract size, time zone, starting cash, volume rules, commissions, spread, financing and event handling. Identify the first diverging signal or execution. Separate strategy reports can also reuse the same capital: in a hypothetical account of 100 units, A and B each require 70 simultaneously and return 12 and 8 net. Under a rule rejecting the second request for insufficient free capital, only the first strategy enters; the shared result is 12 or 8, not the independent sum 20. This is our funding policy model, not a broker’s margin specification.

Future-data leakage is a protocol error, not a guaranteed behaviour of one brand. Record the decision before revealing the next data, and label repeated/rewound trials. A recognised later chart is not wholly unseen. Store failed variants and freeze the selection rules before the evaluation; if you tune again after inspecting that period, it has become part of selection. The platforms section gives related testing material.

Conclusions — which backtest for whom

For an MQL5 Expert Advisor, begin with MT5’s native tester. For discretionary practice, compare Forex Tester and other replay tools. If using Forex Tester automation, check its strategy API and optimizer. In every case, use out-of-sample and forward checks: a historical report is not a promise of live results.

What to do tomorrow

  1. Define the question and compatible runtime. State whether you are checking a manual decision, an EA rule, execution assumptions or shared portfolio funding. More than one tool may be useful; the label “manual” or “automatic” alone does not settle compatibility.
  2. Run a small reproducible control. Use available data and a permitted trial/local tester, record exact settings and inspect the first trades and journal. A fixed two-year period or moving-average crossover is an exercise choice, not validation of your actual strategy.
  3. Check history coverage and units. Compare ticks with minute records, sessions, quote fields and contract/cost settings. Downloading more data cannot repair every source or modelling mismatch.
  4. Preserve an independent evaluation protocol. Choose coverage and later periods before seeing results, retaining every searched variant. Six months is not universally sufficient; do not keep reusing the same “unseen” period after modifying rules.