Category
Performance
Difficulty
Beginner
Used in
EA evaluationBacktesting

Profit factor

Total gross profit divided by total gross loss over a given period. A profit factor above 1.5 indicates a profitable strategy; above 2.0 is strong.

also: PF, Gross profit ratio

Updated

In plain English

For every unit of money the strategy lost, how much did it make? Above one it took in more than it gave back; below one it did not. It is a ratio of totals, so it says nothing about the order the wins and losses arrived in.

Why it matters

Profit factor is the fastest way to tell whether a strategy has an edge at all: it collapses every trade into one number with a hard threshold at 1.0. It is also the number most easily inflated, which makes it a screening tool rather than a verdict.

  • It is scale-free. Lot size, account size and currency all cancel out, so two strategies tested on different balances can be compared directly — something net profit alone can never do.
  • It has a real breakeven line. Below 1.0 the strategy lost money over the sample, full stop; there is no reading of the data that rescues it.
  • It degrades honestly under costs. Spread, commission and slippage all land in the denominator, so a figure computed on realistic costs is much lower than one computed on ideal fills — and the gap between the two is itself a robustness signal.
  • What it will not do is rank strategies. Across the thirteen listings here that have post-listing trades, the backtest ranking and the ranking recomputed from the trades that closed after listing run mildly opposite each other, at a rank correlation of −0.51: the second-best backtest of the thirteen produced the weakest post-listing figure. Each of those post-listing windows holds 7 to 142 trades, which is the point — at that size the ratio ranks noise.

How it is calculated

Profit factor = Gross profit ÷ |Gross loss|
Gross profit
The sum of every winning trade's profit, before netting against losses.
Gross loss
The sum of every losing trade's loss, taken as a positive number.

Both sums cover closed trades only, over the same window. Costs belong inside the figures, not beside them: a profit factor computed before spread and commission is not the one the account will experience.

What counts as high or low

  • under 1.0 Losing — the sample lost money
  • 1.0–1.3 Marginal — too close to breakeven to survive live costs
  • 1.3–1.8 Workable for a tested retail EA
  • 1.8–2.5 Strong, if the sample is long enough to trust
  • over 2.5 Suspicious on a retail backtest — assume curve fitting until forward tested

Read it together with

No single number describes a strategy. These metrics change how this one should be read.

Example

An EA closes its winning trades for $8,000 in total and its losing trades for $4,000 in total over the same window. The ratio of those two sums is the profit factor.

Net profit here is $4,000, but net profit cannot be compared across accounts of different sizes. The ratio can.
Gross profit (all winning trades)
$8,000
Gross loss (all losing trades)
$4,000
Taken as a positive number; the sign is already in the name.
Profit factor
2.00

Calculation 8,000 ÷ 4,000 = 2.00

Result Profit factor 2.00 — the strategy earned two units for every one it lost

Illustrative figures — not the record of any listed EA.

How to interpret it

A profit factor is only as good as the sample behind it. Read the trade count, the cost model and the window before the number.

Range What it means
Fewer than about 100 trades Statistically thin. A handful of large wins can carry the ratio, and removing the single best trade often drops it below 1.3.
Computed without spread or commission Not the figure you will trade. Costs land entirely in the denominator, so realistic costs always lower it.
In-sample (optimised window) Reflects the tuning as much as the strategy. Useful only as the top of a range whose bottom is the out-of-sample figure.
Out-of-sample or forward The figure worth quoting. A moderate drop from in-sample is normal; a collapse through 1.0 means the edge was fitted.
Recomputed from a published trade ledger The only version you can audit. If the seller ships the closed-trade list, you can re-add gross profit and gross loss yourself — and compute the ratio over a window the seller never quoted.
  • Remove the single largest winning trade and recompute. If the profit factor falls below 1.0, the strategy has one lucky trade, not an edge.
  • Read it beside the win rate and the risk-reward ratio. The same 2.0 is produced by many small wins against one huge loss and by a few huge wins against many small losses — two completely different products. Two listings here carry the same 1.27 on win rates of 78.09% and 50.39%, and a third pairs 1.33 with a 31.27% win rate.
  • Fifteen trades can move a headline. One listing here ran 1.281 across the 195 trades of its backtest window and 1.461 once 15 post-listing trades joined the sample — 7.1% of the trades shifting the published figure by 0.18.
  • Compare profit factors only across comparable windows. A 1.8 across seven years and a 1.8 across seven months are not the same claim.

The fourteen runs here span 1.27 to 1.52: nothing reaches the 1.8–2.5 band above, and three sit below the 1.3 line this page calls marginal. All fourteen ran 0.1 lots on a 10,000 USD deposit — the fixed-lot input the builds ship with, LotSize on ten, InpLots on two, numbered LotSize inputs on the two bundles — and that input is the one the ratio ignores: raise it and profit factor does not move. Each EA page prints the ratio beside the window, trade count and tester model, and ships the closed-trade ledger. The post-listing block on those pages reports return and drawdown but not profit factor — recomputing that one from the ledger puts two of the thirteen post-listing windows below 1.0.

Common mistakes

Treating a high profit factor as low risk

The ratio has no drawdown term. A strategy that averages down into every loser posts a high profit factor for years — unrealised losses never close, so they never enter the denominator — until the one basket that does close erases the record.

Comparing figures computed on different cost assumptions

A profit factor from a zero-spread backtest and one from a real-spread backtest measure different things. Match the cost model first, then compare.

Reading the ratio without the trade count

Profit factor is a statistic, and small samples are noisy. Twenty trades can produce almost any figure; the number only starts carrying information in the hundreds.

Assuming above 1.0 means deployable

It means the sample was profitable, not that the account survives the path. A 1.2 profit factor alongside a 40% drawdown describes a strategy most accounts cannot sit through.

Shopping a catalogue by its profit factor column

Sorting by the ratio picks the strategy whose backtest window suited it best, not the one most likely to repeat. The second-best backtest among the fourteen EAs here — 1.526 across 232 trades — turned in 0.72 across the 21 trades that closed after it was listed, and its published figure fell to 1.43 once those trades counted. On 21 trades that reversal is noise, not a law; noise is exactly what a ranking column cannot tell you apart from an edge.

In depth

Frequently asked questions

What is a good profit factor for an MT5 EA?
Between roughly 1.3 and 1.8 on realistic costs and a sample of several hundred trades is a workable, believable range for a retail EA. Anything above 2.5 on a backtest should be treated as a curve-fitting signal until a forward test reproduces it.
Is profit factor the same as the win rate?
No. Win rate counts how many trades closed positive; profit factor weighs how much money those trades made against how much the losers cost. A strategy can win 30% of its trades and still have a profit factor near 1.5 if its winners are much larger than its losers.
Does a backtest profit factor hold up once the EA is live?
Not reliably — and not always downwards. Recomputing the ratio from the trades that closed after listing, ten of the thirteen listings that have such trades came out above their own backtest figure and two came out below 1.0. That is not evidence that live trading beats backtests: those windows hold 7 to 142 trades each across two to nine months, with maximum drawdowns of 0.15% to 4.85% against 0.67% to 14.52% in their backtests. A sample that short and that calm scatters around the backtest figure instead of testing it.
Why does my live profit factor come out lower than the backtest?
Spread, commission, slippage and execution delay reduce gross profit and increase gross loss, and both effects push the ratio down. A moderate drop is expected; a drop through 1.0 means the backtest was priced too optimistically or the edge was fitted to the test window.