How to Test a Trading Product and Publish Honest Performance Results
Last checked: 12 October 2026. This guide draws on MetaTrader 5 Help pages on the Strategy Tester, the US CFTC rule on hypothetical performance disclosures as described in its enforcement orders, and MQL5 community discussion of repainting verification. Past results never guarantee future ones, and this is not legal or financial advice.
Before you sell a trading tool you should test it, and before you publish results you should be sure they are honest. This article gives a testing process for MT5 products, a way to report results that does not mislead and a checklist for the wording around them.
Two kinds of products, two kinds of testing
- Utilities and indicators (dashboards, calculators, scanners, alert tools). They do not place trades, so the question is correctness: does it show the right numbers, never crash and never change its past values.
- Expert Advisors that trade. They need correctness testing plus performance testing, and performance claims invite the strictest scrutiny.
Many sellers mix these up. An indicator that marks a swing is correct or incorrect, not profitable or unprofitable. Treat results sections accordingly.
Step 1: correctness tests
- Compare with trusted references. Put your tool next to a built-in indicator and confirm values match.
- Edge cases. Test on a new symbol with little history, at the weekend, across the daily rollover and with a very high spread.
- Error handling. Check return values from functions like CopyBuffer and print errors. If you plan to sell on the MQL5 Market, MetaQuotes lists automatic checks that include array out of range, zero divide, invalid volumes and violating the minimum stop level.
- Repainting test. Record values live and check they do not change after the bar closes. A community method uses a small Expert Advisor in the Strategy Tester that freezes the first value seen for each bar and flags any later change.
- Resource use. Watch CPU and memory when the tool runs on many charts.

Step 2: performance tests for trading EAs
- Use the right tester mode. The MetaTrader 5 help describes open prices only, 1 minute OHLC, every tick and every tick based on real ticks. Use real ticks for the final test if your broker provides them.
- Use enough data. A year is a minimum, several years across different conditions is better, and a few trades prove nothing.
- Include costs. Spread, commission and slippage reduce results.
- Split the data. Optimise on one period (in-sample) and test on a later period you did not touch (out-of-sample). If results collapse out of sample, you have fitted noise.
- Check robustness. Change inputs slightly. If tiny changes ruin the result, it is fragile.
- Forward test. Run it on a live demo and then a small live account for weeks and compare with the tester over the same period.
Step 3: report the results honestly
When you publish numbers, the rule is: be able to answer “how was this produced?” for every figure. A reasonable results table includes:
- Symbol, timeframe and tester mode.
- Date range, with the reason for choosing it.
- Starting balance, lot sizing rule and risk per trade.
- Spread, commission and slippage assumptions.
- Number of trades, win rate, profit factor and maximum drawdown, not only net profit.
- Whether results are tested (hypothetical) or live.
- All inputs used.
Show the worst period as prominently as the best. Maximum drawdown is the figure traders most need and sellers most often hide.
The hypothetical performance warning
CFTC enforcement orders describe a regulation that requires hypothetical or simulated results to be accompanied by a prescribed cautionary statement about their inherent limitations, including that they are prepared with the benefit of hindsight and involve no financial risk. The orders also criticise disclaimers that blur the line, such as language implying hypothetical results were real. If you advertise to customers in the United States, ask a qualified lawyer what disclosure applies to your product. If you do not, the principle still applies: label tested results as tested, and do not imply they are live.
Live results need evidence
Claims that results came from real trading are stronger and also riskier. The CFTC advisory suggests buyers ask whether results are actual or hypothetical and whether the promoter can provide independent verification. Verified records, such as a broker-issued statement or a monitored Signals page on MQL5, are more credible than screenshots. MetaQuotes’ own description rules make an exception for Signal links that show a product’s monitored results, which suggests monitoring is accepted as evidence on that platform.
Things that make results look better than they are
- Look-ahead and repainting. Using information not available at the time.
- Over-optimisation. Tuning until the past looks perfect.
- Survivorship. Showing the best of many tests.
- Ignoring costs and execution delay.
- Short samples. A good month is an anecdote.
- Selective timing. Starting the chart just before a big move.
Wording around the numbers
Use plain, qualified language: “In an every-tick test on EURUSD H1 from January 2024 to June 2026, with a 1.5 pip spread, the tool produced X trades with a maximum drawdown of Y percent. Live results will differ.” Avoid “will make”, “expect” and “guaranteed”. Put the risk notice next to the numbers, not in the footer.
Keep a test log
Save every test: settings, date, build number, data source and the report. If a customer or a platform questions a number, you can show where it came from. You will also be able to see how performance changes after updates.
What we could not confirm
- The exact current text of any regulation that applies to you.
- That any particular test method predicts future performance. None does.
Frequently asked questions
Should I publish a losing test? If it is representative, yes. A balanced report is more credible than a perfect one.
Is a tester report enough? It is a start. Add forward tests and be clear that the tester is a simulation.
Key takeaways
Test correctness first, performance second, report every assumption, show drawdown and losing periods, keep a log and label hypothetical results as hypothetical.
Sources checked
- MetaTrader 5 Help, test preparation and tick generation pages, metatrader5.com
- US CFTC enforcement orders on hypothetical performance claims and disclosures, cftc.gov
- US CFTC, Fraud Advisory on commodity trading systems sold on the Internet, cftc.gov
- MQL5.com community blog posts on repainting verification, mql5.com
- MQL5.com article on checks a trading robot must pass before Market publication
Educational content only — not financial advice. Income and savings results vary and are never guaranteed. How we write
Enjoyed this story?
Get the best stories delivered weekly.


