Free MQL5 Indicators Tested: 0 of 16 Runs Passed, and in All 16 the Signal Came After More of the Move Than Was Left

Key takeaways
- I rebuilt four indicators you can download free from the MQL5 Code Base (SuperTrend, HalfTrend, Keltner Channel and QQE) from their published formulas and ran them at default settings on EURUSD and gold, M5 and M15: 8,270 signals, 5,826 trades.
- 0 of 16 runs passed all three checks. 4 made money after cost, all on gold. None beat the best 5% of random entries with the same stop and target.
- In all 16 runs the signal came after more of the move than was left. On EURUSD M5 price had already travelled 3.14 to 5.85 ATR when the signal printed, and the best it did afterwards was 2.20 to 2.27 ATR.
- On EURUSD M5, 3 of the 4 did worse than the worst 5% of random entries. SuperTrend lost 1.58 pips a trade, HalfTrend 1.51, Keltner 1.52.
- Traded the way the chart draws them, always in the market and reversing on every signal, 0 of 8 EURUSD runs made money. SuperTrend on EURUSD M5 lost 1,656 pips over 729 trades.
The MQL5 Code Base is the free library behind MetaTrader. Thousands of indicators, open source, one click to install. The download pages show a chart with clean arrows and a description. They do not show a count of what the arrows paid.
So I took four of the indicator types that fill those pages, rebuilt each one from its public formula, and counted every signal on the same bars with the same exit and the same cost.
Which free MQL5 indicators did I test?

- SuperTrend, ATR 10, multiplier 3. A line that trails price at 3 ATR and flips sides when a bar closes through it. The signal is the flip. I tested its settings earlier in SuperTrend settings tested.
- HalfTrend, amplitude 2. A stepped line with an arrow when the trend changes. It needs a 2-bar average of the highs or lows to cross the last extreme and a close beyond the previous bar.
- Keltner Channel, EMA 20 with bands at 2 times ATR 10. The signal is a bar that closes outside the channel after the previous bar closed inside it.
- QQE, RSI 14, smoothing 5, factor 4.236. A smoothed RSI with a trailing line built from its own volatility. The signal is the RSI line crossing the trailing line.
These are the default inputs the downloads open with. All four are calculated on closed bars only, so nothing here depends on an arrow that appears and disappears inside a bar. That problem is measured separately in non-repaint indicators for MT5.
How were they tested?

- Data: EURUSD, June 3 to August 26, 2026, 16,926 M5 bars and 5,642 M15 bars; gold, June 16 to August 26, 13,736 M5 bars and 4,577 M15 bars.
- Entry: at the close of the signal bar, long or short as the indicator says.
- Exit: stop 1.5 ATR, target 3 ATR, 48 bars at most, one trade at a time. The same for all four.
- Cost: a standard 1 pip per EURUSD trade and $0.30 an ounce on gold, charged on every trade. How much of a 5-minute candle a 1-pip spread takes is in my spread and swap measurement.
- Three checks: profit after cost, profit in both halves of the data (split on July 15), and a result above the best 5% of 200 runs of random entries with the same exit. Why the random check matters is in rule vs random entry.
What did the four indicators make on EURUSD?
| Indicator | Chart | Trades | Before cost | After cost | 1st half | 2nd half | Random, worst 5% to best 5% |
|---|---|---|---|---|---|---|---|
| SuperTrend 10/3 | M5 | 611 | -0.58 | -1.58 | -1.21 | -1.92 | -1.39 to -0.70 |
| HalfTrend 2 | M5 | 712 | -0.51 | -1.51 | -1.19 | -1.80 | -1.31 to -0.62 |
| Keltner 20/2 | M5 | 749 | -0.52 | -1.52 | -1.53 | -1.52 | -1.32 to -0.75 |
| QQE 14/5 | M5 | 804 | -0.19 | -1.19 | -0.89 | -1.49 | -1.29 to -0.70 |
| SuperTrend 10/3 | M15 | 150 | +0.91 | -0.09 | -0.10 | -0.07 | -2.70 to +0.05 |
| HalfTrend 2 | M15 | 197 | -0.46 | -1.46 | -0.64 | -2.12 | -2.45 to -0.08 |
| Keltner 20/2 | M15 | 192 | -0.68 | -1.68 | -2.29 | -0.97 | -2.51 to -0.15 |
| QQE 14/5 | M15 | 220 | -0.18 | -1.18 | -0.92 | -1.43 | -2.54 to -0.24 |
Pips per trade. The last column is where 200 runs of random entries landed with the same number of trades and the same exit.
All eight runs lost after cost, and seven of the eight lost before cost too. On M5 the signal itself was pointing the wrong way a little more often than not, and the 1-pip spread did the rest.
The random column is the part I did not expect. A coin flip with this exit loses about 1 pip a trade on EURUSD M5, which is simply the spread. SuperTrend, HalfTrend and Keltner all lost more than the worst 5% of coin-flip runs. On this chart, following the arrow was measurably worse than entering at random.
The closest thing to a result was SuperTrend on M15: +0.91 pips before cost, -0.09 after. It was still inside the random range, and its best 5% line was only +0.05.
What did they make on gold?
| Indicator | Chart | Trades | Before cost | After cost | 1st half | 2nd half | Random, worst 5% to best 5% |
|---|---|---|---|---|---|---|---|
| SuperTrend 10/3 | M5 | 301 | +0.45 | +0.15 | -1.77 | +1.29 | -1.68 to +0.41 |
| HalfTrend 2 | M5 | 451 | +0.37 | +0.07 | -1.25 | +0.77 | -1.55 to +0.16 |
| Keltner 20/2 | M5 | 356 | -0.54 | -0.84 | -1.12 | -0.71 | -1.75 to +0.31 |
| QQE 14/5 | M5 | 550 | -0.77 | -1.07 | -1.57 | -0.76 | -1.42 to +0.22 |
| SuperTrend 10/3 | M15 | 88 | +2.46 | +2.16 | +5.42 | +1.01 | -3.83 to +4.52 |
| HalfTrend 2 | M15 | 142 | +1.16 | +0.86 | +0.65 | +0.95 | -2.86 to +3.08 |
| Keltner 20/2 | M15 | 127 | -0.45 | -0.75 | +0.73 | -1.57 | -2.83 to +2.98 |
| QQE 14/5 | M15 | 176 | +0.19 | -0.12 | -3.69 | +1.74 | -2.47 to +2.71 |
Dollars per ounce per trade.
Gold was kinder. Four runs made money after cost: SuperTrend and HalfTrend on both timeframes. Two of them, both on M15, made money in each half of the data.
None of the four cleared the third check. SuperTrend on gold M15 made +$2.16 a trade over 88 trades, and random entries with the same exit reached +$4.52 in their best 5% of runs. Gold trended for much of the summer, and with a target twice the size of the stop, many entries made money on it. A result has to stand above that to count.
So the score across both markets: 4 of 16 net positive, 2 of 16 positive in both halves, 0 of 16 above random, 0 of 16 passed.
How much of the move is over when the signal appears?
All four of these are trend indicators. They wait for price to move, then confirm it. I measured how much they wait. For every signal I took two distances, both in ATR so the charts can be compared:
- Already moved: from the lowest low of the last 24 bars up to the close of a buy signal (the mirror for a sell).
- Still to come: from that close to the furthest point price reached in the signal’s direction over the next 24 bars. This is the best case, the exit nobody gets.
| EURUSD M5, median | Signals | Already moved, ATR | Still to come at best, ATR | Went against, ATR | Signals with more behind than ahead |
|---|---|---|---|---|---|
| Keltner 20/2 | 1,226 | 5.85 | 2.27 | 3.04 | 84.5% |
| SuperTrend 10/3 | 730 | 4.01 | 2.20 | 3.09 | 71.6% |
| HalfTrend 2 | 1,007 | 3.44 | 2.25 | 2.86 | 66.7% |
| QQE 14/5 | 1,056 | 3.14 | 2.26 | 2.90 | 59.1% |
| 5,000 random bars, random side | 5,000 | 2.67 | 2.61 | 2.43 | 49.8% |
“Went against” is the furthest price travelled against the signal in the same 24 bars. The last row is the same measurement on bars picked at random, which is what the chart gives with no indicator at all.
The typical SuperTrend flip on EURUSD M5 printed when price was already 4 ATR off its recent extreme. From there the best it reached was 2.2 ATR in the right direction, and it went 3.09 ATR the wrong way at some point in the same two hours. A random bar had 2.61 ATR ahead of it and 2.43 against. So on this chart each of the four signals was followed by a smaller favourable move and a larger adverse one than a bar chosen blind. A stop at 1.5 ATR and a target at 3 ATR do not fit inside that picture, and the win rate shows it: 29.8% of SuperTrend trades made money, where this exit needs more than 40% once a 1-pip spread is counted.
The lateness was not a EURUSD M5 quirk. In all 16 runs the median distance already moved was bigger than the median distance still to come: 2.48 to 5.85 ATR behind against 2.01 to 2.68 ATR ahead, where random bars had 2.23 to 2.67 behind. What was special about EURUSD M5 is the part after the signal. On the other three charts the move still to come was about the same as after a random bar: 2.01 to 2.68 ATR against 2.00 to 2.11. Keltner was the latest on every chart, which makes sense: a close outside a 2 ATR channel is a move that has already happened by definition.
For contrast I ran the plain RSI 14 from 30 and 70, which buys weakness instead of confirming strength. Its signals came 1.46 ATR from the extreme with 2.67 ATR still to come at best. It still lost 0.54 pips a trade on EURUSD M5, so being early is not an edge on its own. It only shows that the lateness is a property of trend confirmation, not of these four downloads.
What if you trade them the way the chart draws them?
A SuperTrend line is always either green or red. Many traders use it as a full system: long while it is green, flip short when it turns red. I ran all four that way, with no stop and no target, reversing on each opposite signal.
| Always in the market | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| SuperTrend 10/3 | -2.27 | -1.57 | -0.42 | +1.87 |
| HalfTrend 2 | -1.60 | -1.73 | -0.31 | +0.50 |
| Keltner 20/2 | -2.32 | -1.64 | +1.41 | +4.61 |
| QQE 14/5 | -1.85 | -1.50 | -1.27 | +0.28 |
Per trade after cost, pips on EURUSD and dollars an ounce on gold.
On EURUSD this was worse than the fixed exit in 7 of 8 runs. SuperTrend on M5 flipped 729 times in twelve weeks and gave back 1,656 pips. My earlier SuperTrend grid counted the same rule from a slightly earlier starting bar and got 1,634. On gold M15 all four were positive, and Keltner made $4.61 a trade over 50 trades, each held for about 86 bars. That is a trend-following result from a trending summer in one market, with 50 trades behind it. I would not size a position on it.
Are these four really four different indicators?
Less than the download pages suggest. On EURUSD M5 a SuperTrend flip had a HalfTrend arrow in the same direction within three bars 63.8% of the time, and a QQE cross 65.2% of the time. SuperTrend and HalfTrend pointed the same way on 71% to 77% of all bars across the four charts.
All four agreed on direction on 33% to 44% of bars. Stacking them on one chart looks like four confirmations. Most of the time it is one opinion about the last twenty bars, drawn four ways. I measured the same effect across eight standard indicators in indicator combinations tested.
The stronger overlap is with indicators MetaTrader already ships. QQE matched the built-in MACD on 86% to 88% of bars. That comparison is in free MQL5 indicators vs MetaTrader built-ins.
So are free MQL5 indicators worth installing?
- As a picture of the trend, yes. They are free, open source, and they do what the formula says. HalfTrend and SuperTrend give you one line and one colour to read instead of two moving averages.
- As an entry signal at default settings, no. 0 of 16 runs passed, and on EURUSD M5 three of four were worse than a coin flip with the same stop.
- Do not enter on the flip with a tight stop. The flip prints 3 to 6 ATR into the move. The next thing price usually does is pull back further than your stop.
- Do not expect M15 to fix it. The same indicators did better on M15 than on M5 in 7 of 8 pairs, but only one gap was bigger than noise: SuperTrend on EURUSD, from -1.58 to -0.09 pips a trade.
- Changing the inputs does not rescue EURUSD M5. 0 of 40 settings made money there. The full grid of 159 settings, and how to install the files, is in the MQL5 Code Base indicators guide for MT5.
Frequently asked questions
Are the free indicators on MQL5 any good?
They are correctly built and free. As entry signals at default settings, the four I tested made money in 4 of 16 runs, all on gold, and none beat random entries with the same stop and target.
Which free MQL5 indicator performed best?
SuperTrend 10/3 on gold M15, +$2.16 an ounce per trade over 88 trades and positive in both halves. Random entries on the same chart reached +$4.52 in their best 5% of runs, so it did not pass.
Why do trend indicators enter late?
They confirm a move after it happens. On EURUSD M5 the signals came 3.14 to 5.85 ATR from the recent extreme, and the furthest price went afterwards was 2.20 to 2.27 ATR.
Is HalfTrend better than SuperTrend?
They were close. HalfTrend lost 1.51 pips a trade on EURUSD M5 and SuperTrend 1.58. They pointed the same way on 71% to 77% of bars.
Do these indicators repaint?
Not on closed bars. All four are calculated from closed-bar prices, so a signal that is there at the close stays there. The value on the bar still forming can change until it closes.
Want a clean indicator to install right now?
It is my own enhanced DeMARK Trend Line indicator for MetaTrader 4 and 5. Non repaint, clean, and free.

