Numbers seen before the Profit Factor — Reassessing the EA with PF1.55 using four numbers
Introduction: PF Hides How It Earned Money
Previously,Why AI-generated EAs Fall in Forward TestsI wrote. This time, when you open a backtest report, four numbers you should look at before the Profit Factor (PF).
PF is “Total wins ÷ Total losses.” If it exceeds 1, it’s positive; if it’s 1.5, you’ve won 1.5 times as much as you’ve lost—an easy-to-understand metric. However, because it’s a ratio of totals, it hides how many trades and what kinds of wins led to that number.
As before, we use the result of backtesting the built-in MT5 sample EA “Moving Average” on EURUSD 1-hour timeframe from January to September 2026. PF is 1.55. Seen alone, this isn’t a bad EA.
Number 1: Number of Trades — PF fluctuates a lot when the count is small
First, look at the number of trades. This sample EA has 193 trades.
The reason the count matters is that even with the same EA and the same backtest, cutting the data fewer times can yield very different PF values. If you break the 193 trades into six segments of about 32 trades each and compute PF, you get the following.
| Interval | Trades | PF | Total P/L (USD) |
|---|---|---|---|
| 1–32 trades | 32 | 1.25 | +125.5 |
| 33–64 trades | 32 | 2.38 | +341.6 |
| 65–96 trades | 32 | 2.41 | +379.0 |
| 97–128 trades | 32 | 1.13 | +52.1 |
| 129–160 trades | 32 | 0.21 | −92.6 |
| 161–193 trades | 33 | 1.78 | +153.2 |
| All | 193 | 1.55 | +958.87 |
Even though it’s the same EA, PF ranges from 0.21 to 2.41 across 32 trades. Experiences like “PF exceeding 2 in the first 30 trades” or “PF dropping below 1 in the forward test’s first 30 trades” can happen within this fluctuation.
As a rule of thumb, a backtest with fewer than 30 trades isn’t yet in a position to judge PF well. And even with 30 trades, PF can swing widely as shown above. When evaluating PF, always view it together with the trade count.
Number 2: Median — What does the “typical” 1 trade look like?
Next, look at the median of the trade-by-trade results when ordered from smallest to largest. The mean is pulled by a few large wins; the median is not. Therefore, the median represents what a typical trade looks like.
| Item | Value |
|---|---|
| Average per trade | +4.97 USD |
| Median per trade | −1.40 USD |
| Win rate | 29.5% (57 of 193 trades) |
| Average winning trade | +47.39 USD |
| Average losing trade | −12.81 USD |
The average is positive, but the median is negative. This EA tends to lose a small amount in most trades and occasionally makes up for it with a big win.
This pattern is quite common in trend-following systems. The problem is that such a pattern isn’t visible from PF 1.55 alone. An EA with a negative median will slowly reduce capital until big wins come, which could occur in the first few months of forward testing.
If the median is negative, make sure to check the next metric, “Total excluding the big wins.”
Number 3: Total excluding the big wins — PF can flip with a few trades
As previously shown, PF can vary widely. Here we also list PF by removing the largest profitable trades one by one, in order of profitability.
| Removed big win | Remaining trades | Total P/L (USD) | PF |
|---|---|---|---|
| 0 trades removed | 193 | +958.87 | 1.55 |
| 1 trade removed | 192 | +686.40 | 1.39 |
| 2 trades removed | 191 | +443.18 | 1.25 |
| 3 trades removed | 190 | +279.05 | 1.16 |
| 4 trades removed | 189 | +119.85 | 1.07 |
| 5 trades removed | 188 | −34.27 | 0.98 |
Summing the top 5 profitable trades out of 193 yields about 104% of the total. The remaining 188 trades sum to a slight negative. The “0.55” in PF 1.55 was largely made by these five trades.
A simple way to verify: paste the report’s trade list into a spreadsheet, sort the P/L column from largest to smallest, then delete the top 3–5 rows and look at the sum of the rest.
Guidance for judgment is as follows.
- If removing the top 1–2 trades makes the sum negative: those one or two trades are unlikely to appear in forward tests. risky
- If removing the top 3–5 trades makes the sum negative: heavy dependence on a few big wins. Forward testing needs to be longer
- If removing 5 trades still leaves a positive sum: not solely supported by big wins
Number 4: Width of the average — Can you distinguish from zero?
Finally, check whether the result “average per trade is positive” could occur by chance. Even for the same EA, market conditions affect the average. The range indicating this uncertainty is the 95% confidence interval.
For this sample EA, the results were as follows.
| Item | Value |
|---|---|
| Average per trade | +4.97 USD |
| 95% confidence interval of the average | −1.50〜+11.80 USD |
| Probability that the average is positive | 93% |
The lower bound crosses into negative territory, meaning zero is within the interval. This is the range where “even a non-advantaged EA can exhibit this level of performance by chance.” Even with PF 1.55, statistically, you cannot claim zero is confidently excluded.
You can estimate roughly in a spreadsheet as well. If the P/L column is A2–A194, use these two formulas.
- Lower bound: =AVERAGE(A2:A194) - 2*STDEV(A2:A194)/SQRT(COUNT(A2:A194))
- Upper bound: =AVERAGE(A2:A194) + 2*STDEV(A2:A194)/SQRT(COUNT(A2:A194))
For this sample EA, the range is −1.83〜+11.76 USD, which is nearly the same as the above values. (The above table was computed by resampling trades 10,000 times using a bootstrap method.)
One more note. As mentioned last time, if you tried many settings and picked the best, you should regard this width as wider in practice. If the lower bound is simply positive, you still cannot be reassured.
Order of viewing: PF at the end is fine
When you open the report, view in this order. If you come across something odd, you can wait to forward-test regardless of PF value.
- Number of trades: If fewer than 30, do not judge
- Median: If negative, the usual result is loss. Always check the next 3
- Total excluding big wins: If negative among the top 3–5, those few trades are carrying
- Width of the average: If the lower bound is negative, you cannot distinguish it from chance
- PF: Only meaningful after checking 1–4
The current sample EA passes on 1 but fails on 2–4. It looks quite different from the PF 1.55 impression.
Conclusion
- PF is a ratio of totals. The count and the form of wins aren’t visible
- Around 30 trades, PF for the same EA can swing from 0.2 to 2.4
- Look at median, total excluding big wins, and width of the average first. PF comes last
The “split into early and late parts” check is described in the next third partChecklist before listing an EAwritten in the article.
Bonus: How to present these four together
The numbers in this article come from my own inspection tool“EA Robustness Check”When you provide MT5 backtest reports, this tool compiles the number of trades, median, total excluding big wins, and width of the average, and returns a written verdict. The verdict criteria are fixed and cannot be loosened after seeing the results.
For those who find it hard to doubt themselves, we also offer a service for independent evaluation.A third party checks the robustness of EA backtests14,800 JPY (Skijan). We will hold up to three MT5 reports and return a findings document (PDF) within three business days. The verdict criteria are fixed and cannot be altered to improve results.
Note: This article presents the author’s approach to verification and does not recommend any particular symbol, method, or EA for trading. Past results do not guarantee future performance.