Skip to content

How we test

Every indicator and EA on IndicatorFree is compiled, run in the MetaTrader 5 Strategy Tester and measured before it is published. The page of each tool shows the numbers from its own test, the MT5 build, the tick source and the test date. If a number is not on the page, it was not measured — we write “not tested” instead of guessing.

From request to release

  1. Request. Members describe a tool. The lab rewrites unclear requests and merges duplicates; votes from merged requests are added up.
  2. Vote. Every Monday 00:00 UTC the 50 requests with the most valid votes go into the build queue. The rest keep their votes for the next week.
  3. Build. The lab writes the code in MQL5 and compiles it with zero errors and zero warnings.
  4. Test. The tests below run on the compiled file. A tool that fails is sent back or declined with the reason shown on the request.
  5. Review and release. A person checks the numbers on the draft page and writes the Overview and the Final verdict. Then the file goes to Google Drive and the page goes live.

Repaint test

An indicator “repaints” when a signal that was on the chart at bar close is later moved or removed. On a finished chart it then looks better than it traded. We measure it directly:

  1. The indicator runs in the Strategy Tester inside a test EA, on real ticks.
  2. Each time a bar closes, the test EA reads the signal buffers of that closed bar through iCustom() and writes them to a log.
  3. At the end of the test it reads the same bars again.
  4. Any value that differs from the log is counted as a repainted signal. We also count how many bars an arrow appears after the event it marks.

The result is printed as “changed after close: X of N”. Zones and on-chart panels are chart objects, not buffers, so iCustom() cannot read them; for those the page says “not tested” and explains why.

Signal statistics

For indicators that print arrows we measure what price did after each one: did it move 1×ATR(14) in the arrow’s direction before it moved 1×ATR against it, and how many bars that took. Arrows that reach neither level within 20 bars are counted separately.

This is a measurement of price movement, not a trading result: no spread, commission, stop loss or position sizing. Fewer than 30 arrows is marked “small sample” and not compared with other tools.

EA backtests

  • Real tick data, raw-spread account conditions with commission included, leverage 1:500.
  • The EA’s own default settings. We do not optimise inputs to make the curve look better.
  • Every page lists the symbol, timeframe, period, deposit, net profit, profit factor, maximum equity drawdown and number of trades.
  • Grid, martingale and EAs without a stop loss always show a risk warning, whatever the result.

How the pages are written

The numbered sections of each page — specifications, repaint test, statistics, inputs, installation — are generated from the test file of that tool, so every number has a source. Input descriptions come from the comments in the code; if there is no comment the table says so. The Overview and the Final verdict are written by a person.

Before a page goes live it is compared with every other page we publish. More than 15% repeated sentences and it goes back for a rewrite. Pages are released a few a day, not in bulk.

Votes and fraud checks

  • Voting needs a signed-in account with a verified email. Downloads never do.
  • One vote per request, 10 open votes per account. Votes come back when a request is released or declined.
  • New accounts count after 3 days. Votes from the same device or IP on the same request, or from VPN and datacenter networks, do not count.
  • A sudden burst of votes pauses a request’s ranking until it is reviewed. Removed votes are shown on the request.
  • Nobody is paid or rewarded for voting.

What the tests do not tell you

A backtest is history on one symbol and one period. Spread, slippage and broker execution differ in live trading. A tool that did not repaint in our test can still give losing signals. Use the numbers to decide what to try on a demo account, not as a promise of results.

Questions about a test? Contact us with the tool name.