Glossary
Profit factor
Last reviewed: 26 September 2026·Tradelyze
Profit factor is gross profit divided by gross loss across all closed trades. A profit factor of 2.0 means the strategy made two dollars for every dollar it lost. A profit factor of 1.0 is breakeven, and anything below 1.0 loses money. The figure only means something next to the number of trades behind it.
In plain English
Add up the money made on every winning trade. Add up the money lost on every losing trade. Divide the first total by the second. A higher result means the winners outweigh the losers by more. That only holds if the strategy has taken enough trades for the result to be more than luck. Profit factor also ignores losses on trades that are still open.
New to this? Start with win rate and expectancy.
What is profit factor?
Profit factor takes the total profit from every winning closed trade and divides it by the total loss from every losing closed trade. Both totals are gross, meaning nothing is netted, averaged or weighted by trade size or by how long a trade lasted.
gross loss = |sum of P&L across all losing closed trades|
profit factor = gross profit / gross loss
A worked example (constructed, not measured data). Say a strategy closes 50 trades: 20 winners that make $6,000 in total and 30 losers that lose $4,000 in total. Its profit factor is $6,000 divided by $4,000, which is 1.5. The strategy made $2,000 overall even though it lost more often than it won. Its average result per trade, called expectancy, is $2,000 divided by 50 trades, or $40.
Because profit factor is a ratio of two totals, it throws away the pattern of trades behind them. Four hundred small winners and one enormous loser can produce the same profit factor as a balanced set of trades. Profit factor also ignores time: a profit factor measured over six years and one measured over six weeks look identical on a report.
Two properties of the formula matter more than the headline value:
- Profit factor uses closed trades only. An open losing position adds nothing to gross loss until it is closed. This is how profit factor can hide losses.
- Profit factor has no floor under the loss total. As gross loss shrinks toward zero, the ratio shoots up without limit. On a small sample, an extreme profit factor is arithmetic rather than evidence.
Profit factor also says nothing about how far the account fell along the way, which is what a prop firm challenge's drawdown limits measure. A strategy with a healthy profit factor can still break a daily loss limit on one bad day. Read profit factor next to maximum drawdown and the prop firm rules you will trade under.
What is a good profit factor?
Many trading education sources call a profit factor of 1.5 to 2.0 good; that range is convention with no primary research behind it, and it needs a large number of trades to mean anything. Tradezella's profit factor guide, for example, labels 1.5 to 2.0 a “strong edge”. A profit factor above 1.0 means the winners outweighed the losers across the trade list — after commission and slippage if the backtest charged them, before those costs if it did not. Trading forums often set the bar lower and call anything above 1.3 good. How many trades is enough is covered in how many trades a backtest needs.
| Profit factor | Reading | Source |
|---|---|---|
| > 1.3 | Good, given several hundred trades. | Trading forum convention. No primary source. |
| > 1.5 | Outstanding, given several hundred trades. | Trading forum convention. No primary source. |
| 1.5 – 2.0 | Good, or a “strong edge”. | Education-site convention; Tradezella's profit factor guide uses the words “Strong edge” for this range. No primary source. |
| ≥ 2.5 | Draws immediate demands for the trade count and the method before the number is taken seriously. | Trading forum norm. No primary source. One 2008 Forex Factory post advises avoiding any system above about 2.5. |
| ≥ 3.0 (intraday) |
Often read as a sign of curve-fitting, meaning settings tuned until they match past noise, on an intraday system. | Trading forum norm. No primary source. QuantVPS's profit factor guide, not limited to intraday systems, calls values above 3.0 a possible red flag for over-optimization. |
| Double digits | A question about method, not a performance claim. | Forex Factory thread 100757, New Expert Advisor PROFIT FACTOR 19.39, post #8 by philmcgrew, 15 August 2008: “A value of 19 is curve fit and is simply too good to be true. It wouldn't last a month in the real world.” Forum commentary, not a study. |
Sources also disagree at the top end. QuantVPS's profit factor guide quotes Oddmund Groette of Quantified Strategies: a good profit factor is above 1.75 but preferably not above 4. The 2008 Forex Factory post in the table advises avoiding any system above about 2.5.
Tradelyze's own Profit Factor tooltip uses the same kind of bands. Like the conventions above, they are display labels, not research.
| Profit factor | Tooltip label | Source |
|---|---|---|
| < 1.0 | Losing money. Gross losses exceed gross profits. | Tradelyze app display bands; no primary source. |
| 1.0 – 1.5 | Marginal. | Tradelyze app display bands; no primary source. |
| 1.5 – 2.0 | Good. | Tradelyze app display bands; no primary source. |
| > 2.0 | Excellent. | Tradelyze app display bands; no primary source. |
Both tables put a profit factor under 1.0 as losing, and neither means anything without the number of trades behind it.
The two sets of profit factor bands disagree in the middle. A profit factor of 1.4 is marginal on the Tradelyze tooltip and good by the forum convention. No published study establishes either set of bands; they are trading-desk and forum habit. Anyone quoting 1.5 as a scientifically derived threshold is presenting a habit as a finding.
The number that actually decides the reading
Trade count changes the interpretation more than the profit factor itself does. A profit factor of 1.6 across 800 trades is a stronger result than 2.4 across 40. The first estimate rests on 20 times as many trades, so it is far more precise. Tradelyze's Trade Count tooltip warns that fewer than 30 trades makes the other metrics unreliable. Treat 30 as a floor for drawing any inference at all, not a target to aim at.
Why does optimizing for profit factor break?
An optimizer told to maximize profit factor will find the parameter set that barely trades. This is not a subtle failure mode; it is the default outcome, and it happens because profit factor contains nothing about sample size.
A thread on NinjaTrader's support forum reported the same result: optimizing for the highest profit factor tends to pick settings that trade only once or twice. The original thread no longer loads; see Sources.
The logic is sound from the optimizer's point of view. A profit factor of 99 on two trades beats a profit factor of 2.1 on four hundred. Nothing in the objective function, the single number the optimizer is told to maximize, says otherwise.
| Candidate parameter set | Trades | Profit factor | Optimizer's verdict |
|---|---|---|---|
| Filters so tight the strategy almost never fires | 2 | 99.0 | Selected |
| Tight filters | 11 | 4.2 | Rejected |
| Balanced filters | 400 | 2.1 | Rejected |
| Ranked purely on profit factor | 99.0 wins | The two-trade set |
The rows of the unconstrained-objective table are constructed to make the ordering visible; they are not measured results. The 99.0 echoes the “99” profit factor limit that users of NinjaTrader's forum reported, a second-hand detail explained in Sources. The 4.2 and 2.1, and the trade counts beside them, are invented.
The selected two-trade parameter set is worthless. Two trades tell you nothing, will not repeat, and cannot be traded at any meaningful size. But it is the honest maximum of the objective it was given.
Check this on your own results
Any profit-factor objective needs a minimum-trade constraint. Set a hard floor on trade count and reject every candidate under it before ranking on profit factor at all. A floor is more robust than a penalty term, because a penalty can always be outrun by a large enough ratio.
Suppose your optimizer's top result has far fewer trades than the rest of the leaderboard. Then the objective function selected on sample size, not on edge. See overfitting and sample size.
Tradelyze's optimizer does not search on profit factor. It looks for more profit and a higher Sharpe ratio with a smaller maximum drawdown, all at the same time. The search method is TPE, a Bayesian optimization method: after 10 random trials, it models which settings did well and which did poorly and proposes new settings more likely to do well (how Tradelyze's optimizer searches). Tradelyze then ranks the completed trials on those three numbers and recommends from that ranking. In that ranking, profit and Sharpe count for less when few trades support them, and trials with fewer than 5 trades are left out unless no trial reached 5. The recommendation need not sit on the Pareto front, the set of settings where no other setting is better on all three at once.
The Top Trials table also leaves out trials with fewer than 5 trades unless no trial in the whole search reached 5. A two-trade result therefore cannot head that table while any trial made 5 or more trades.
The same reasoning applies to any unbounded ratio used as an optimization target. Profit factor is the most common case because it is the most visible metric on most backtest reports. Win rate and average-win-to-average-loss behave the same way under an unconstrained search.
Can profit factor hide losses?
Yes, and the reason is built into the formula. Profit factor is computed from closed trades, so a loss that is never closed never enters the loss total.
Martingale systems increase position size after a loss. Grid systems keep adding orders at fixed price steps as price moves against them. Both fall into this trap because each is built to avoid closing losers. A position that moves against the strategy is held, and more positions are opened to average the entry price down. Winners close constantly and losers stay open.
Gross profit accumulates while gross loss stays near zero. Profit factor climbs toward infinity, and the equity curve on the report looks close to a straight line. That lasts until the open loss exceeds the account and the whole structure closes at once.
Nothing in the profit factor calculation registers any of that, because open losses are not part of the formula. A strategy carrying a 40% unrealized loss and a strategy carrying none produce the same profit factor if their closed trades match.
What Tradelyze shows when there are no losing trades
When a strategy has no losing trades, gross loss is zero and profit factor cannot be calculated. Tradelyze does not show infinity. The Profit Factor tile on the Best Metrics card shows -- instead of a number. Its tooltip says this means no losing trades at all. That is the best possible outcome, not the worst, and it is not the same as a profit factor of 0. On a small sample, read a blank or very large profit factor as a sign of too few trades, not proof of an excellent strategy.
The check that catches hidden losses is drawdown measured on the equity path. That means the account value bar by bar, including open trades, not closed trades alone. Read it together with the trade count and the longest time a position was held. See maximum drawdown, and note that a drawdown figure computed only from closed trades has the same blind spot as profit factor does.
Why does profit factor mean different things at different trade frequencies?
A profit factor of 1.1 and a profit factor of 1.8 can swap places in quality depending on how often the strategy trades. Trade frequency changes both the precision of the estimate and the size of the per-trade edge compared with costs. Costs here means commission plus the spread, the gap between the buying and selling price.
| Property | High-frequency intraday, profit factor 1.1 | Low-frequency trend, profit factor 1.8 |
|---|---|---|
| Trades in the sample | Thousands | Tens |
| Precision of the estimate | High — results scatter little by chance | Low — results scatter widely by chance |
| Weight of any single trade | Negligible | Large; removing the best trade can move the figure materially |
| Per-trade edge relative to spread and commission | Must be a large multiple of costs to survive at all | Costs are small relative to the move being captured |
| What breaks it | A modest rise in transaction costs | The market conditions that produced the winners not recurring |
A profit factor of 1.1 can be genuinely robust over thousands of trades whose average result is a large multiple of their costs. The edge is thin per trade, it is measured precisely, and it repeats often enough to compound. Market-making strategies, which earn the gap between buying and selling prices, and short-horizon mean-reversion strategies live here by design.
A profit factor of 1.8 on a low-frequency trend system is fragile, because each trade carries far more weight in the total. With forty trades, a handful of them typically supply most of the gross profit. Remove the best two and the profit factor can fall under 1.2. The number is higher and the evidence behind it is weaker.
The practical test is to recompute the profit factor with the largest winning trade excluded, and then with the largest two excluded. A profit factor that survives is describing an edge. A profit factor that collapses is describing a few lucky trades, and no threshold table will tell you which one you have.
How does profit factor compare to expectancy and win rate?
Profit factor, expectancy and win rate answer different questions, and none of them can be recovered from the others.
| Metric | What it measures | Units | Blind spot |
|---|---|---|---|
| Profit factor | Gross profit against gross loss | Unitless ratio | Trade count, open losses, and the pattern of trades behind the two totals |
| Expectancy | Average profit or loss per trade | Money per trade | How much results swing — a good expectancy can come with an unsurvivable equity path |
| Win rate | Share of trades that closed positive | Percentage | Trade size entirely — a 90% win rate can lose money |
Expectancy is the one that multiplies. Because expectancy is money per trade, expectancy times trade count gives total profit, which profit factor cannot do at any trade count. A strategy with an excellent profit factor and a tiny expectancy makes very little money. That combination is common on strategies that trade rarely in small size.
Win rate on its own determines nothing. Profit factor already contains win rate combined with the ratio of average win to average loss. That is why a 30% win rate with large winners and a 70% win rate with small winners can produce an identical profit factor. See win rate and expectancy.
The sensible way to read all three is together. Use expectancy to judge whether the strategy is worth trading. Use profit factor to judge how much cushion it has against a worse run of losses. Use trade count to know whether either figure means anything. Reading profit factor alone is the mistake this whole page warns against.
Stage 2 · step 6 of 18. Next in the learning path: Maximum drawdown
Check it on your own strategy
In a Tradelyze report, this is the Profit Factor tile in Best Metrics and the PF column in Top Trials. Profit factor also appears on the Backtest vs TradingView card, where it describes your script's own default settings rather than the recommended ones, and, for each walk-forward window, in the Per-Window Results table. Read the Trade Count tile first: its tooltip warns that fewer than 30 trades makes the other metrics unreliable. Tradelyze does not calculate expectancy.
To judge the whole report, not one tile, use the pre-trade checklist.
Tradelyze re-runs an uploaded TradingView Pine Script strategy's backtest on your price data and checks it against your exported trades. It then runs parameter optimization, walk-forward analysis, a four-check robustness score and prop firm rule checks. It does not place trades, give financial advice or guarantee a challenge pass, and it is in beta.
Create an account. Already a user? Open your strategies.
Frequently asked questions about profit factor
What is profit factor?
Profit factor is gross profit divided by gross loss across all closed trades. A profit factor of 2.0 means the strategy made two dollars for every dollar it lost. A profit factor of 1.0 is breakeven, and anything below 1.0 loses money. Costs are inside those totals only if the backtest charged commission and slippage. Because profit factor is a ratio of two totals, it says nothing about how those totals were spread across trades.
What is a good profit factor?
Many trading education sites call a profit factor of 1.5 to 2.0 good, but that range is convention with no primary research behind it. Trading forums often call anything above 1.3 good. Trade count changes the answer: 1.6 across 800 trades is a stronger result than 2.4 across 40. The Profit Factor tooltip in Tradelyze bands the figure as below 1.0 losing, 1.0 to 1.5 marginal, 1.5 to 2.0 good and above 2.0 excellent.
Is a profit factor of 2 realistic?
A profit factor of 2 is realistic on a low-frequency system with a modest trade count, and unusual on an intraday system that has traded several hundred times. In trading forums, 2.5 or more draws demands for the trade count and method, and 3 or more on an intraday system is often read as curve-fitting, meaning settings tuned to past noise. Neither threshold has a primary source.
Why does optimizing for profit factor break?
Because the highest profit factor in a parameter search usually belongs to settings that barely trade. A NinjaTrader support forum thread titled Optimize for Max Profit Factor tends to prefer single trade solutions describes this outcome. On a pure profit-factor ranking, 99 on two trades outranks 2.1 on four hundred, and nothing in the objective says otherwise. Any profit-factor objective needs a minimum trade count applied before ranking.
Does Tradelyze optimize for profit factor?
No. Tradelyze's optimizer looks for more profit and a higher Sharpe ratio with a smaller maximum drawdown, all at once, using TPE, a Bayesian optimization method that learns from earlier trials which settings are likely to do well. It then ranks the completed trials on those three numbers, not only the trials on the Pareto front, weighting profit and Sharpe by trade count, and recommends from that ranking. Profit factor is shown alongside. The ranking, and so the recommendation and the Top Trials table, leaves out trials with fewer than 5 trades unless none reached 5.
Can profit factor hide losses?
Yes. Profit factor counts closed trades only, so a strategy that never closes a losing position has no gross loss and reports a huge or undefined profit factor. Martingale systems, which add size after losses, and grid systems, which keep adding orders as price moves against them, show this pattern until they blow up, because the open loss that finally ends the account never enters the calculation.
What does a profit factor of 19 mean?
In practice a profit factor of 19 means the sample is too small, losses are being held open rather than closed, or the result is curve-fitted. A Forex Factory contributor, commenting in 2008 on an expert advisor advertising a profit factor of 19.39, wrote that it would not last a month in the real world. Treat any profit factor in double digits as a question about method, not a performance claim.
How many trades do you need for profit factor to mean anything?
Tradelyze's Trade Count tooltip warns that fewer than 30 trades makes the other metrics unreliable, and 30 is a floor for any inference rather than a target. Reading a profit factor to the second decimal place takes several hundred trades, a rule of thumb with no primary source. As with any figure estimated from a sample, the spread of observed profit factors shrinks in proportion to one divided by the square root of the trade count.
Why does the same profit factor mean different things at different trade frequencies?
Because the per-trade edge relative to costs differs. A profit factor of 1.1 can be robust on a high-frequency system whose average trade earns many times its spread and commission, since thousands of trades make the estimate precise. A profit factor of 1.8 on a low-frequency trend system can be fragile, because each of its few trades carries far more weight in the total.
What is the difference between profit factor and expectancy?
Profit factor is a ratio of gross totals and has no units. Expectancy is the average profit or loss per trade, in money, so expectancy multiplied by trade count gives total profit. A strategy can have a good profit factor and a negligible expectancy if it trades rarely and in small size. Tradelyze shows profit factor but does not calculate expectancy.
What is the relationship between profit factor and win rate?
Profit factor combines win rate with the ratio of average win to average loss, so neither can be recovered from the single number. A 30% win rate with large winners and a 70% win rate with small winners can produce the same profit factor. Win rate on its own says nothing about whether a strategy makes money.
What profit factor does Tradelyze report when a strategy has no losing trades?
When a strategy has no losing trades, gross loss is zero, so profit factor cannot be calculated. Tradelyze does not show infinity: the Profit Factor tile on the Best Metrics card shows -- instead of a number. Its tooltip says this means no losing trades, the best possible outcome rather than the worst. On a small sample, read a blank or very large profit factor as a sign of too few trades.
Sources
- Forex Factory thread
100757, New Expert Advisor PROFIT FACTOR 19.39, post #8 by philmcgrew, 15 August 2008: “I would avoid any system with a profit factor in excess of around 2.5. A value of 19 is curve fit and is simply too good to be true. It wouldn't last a month in the real world.” Verified at source 28 July 2026; re-checks on 14, 15 and 16 September 2026 were refused by the site (HTTP 403), and no archived copy of the page exists, so the post number, author and date above rest on the 28 July 2026 reading alone. The quoted sentences were re-confirmed on 16 September 2026 by exact-phrase search of the thread. Forum commentary, not a study. - NinjaTrader support forum thread
85547, Optimize for Max Profit Factor tends to prefer single trade solutions (NinjaTrader 8 beta archive). Search-index summaries of the thread describe the genetic optimizer settling on a single profitable trade that gives the “99” profit factor limit result, and users asking for a minimum-trades setting. Second-hand citation; the thread no longer loads. On 28 July 2026, forum.ninjatrader.com was serving a defacement page across the entire domain. On 14 September 2026, the old thread address redirected to NinjaTrader's new forum and returned a 404. On 15 September 2026, it redirected to discourse.ninjatrader.com, which returned 404 Not Found. Deliberately not hyperlinked for that reason. - NinjaTrader 8 Help Guide, Statistics Definitions: defines profit factor as Gross Profit / Gross Loss. The page does not mention a 99 value or what is shown when there are no losing trades, so the 99 limit above rests on the forum thread alone. Retrieved 15 September 2026.
- Tradezella, Profit Factor in Trading: What It Is & How to Use It: “1.5 to 2.0. Strong edge.” QuantVPS, Profit Factor in Trading: How to Calculate and Interpret It for Better Strategy Evaluation, quoting Oddmund Groette of Quantified Strategies: “A good profit factor in trading has a value of more than 1.75 but preferably not above 4”; the same article adds that profit factors exceeding 3.0 can be a red flag for over-optimization. Both retrieved 15 September 2026. Education blog posts, not studies; they illustrate the convention rather than establish it.
- Trading forum convention for the 1.3, 1.5, 2.5 and 3.0 thresholds. No primary source exists for these bands; they are community consensus and are recorded here as such.
- Tradelyze implementation, reviewed 26 September 2026: the Profit Factor tooltip bands (below 1.0 losing, 1.0 to 1.5 marginal, 1.5 to 2.0 good, above 2.0 excellent), which are app display bands with no primary source; the Trade Count tooltip warning that fewer than 30 trades makes other metrics unreliable; the Profit Factor tile showing -- when there were no losing trades, which the tooltip calls the best possible outcome rather than the worst; profit factor's appearance as the Profit Factor tile in Best Metrics, the PF column in Top Trials, on the Backtest vs TradingView card for the script's own default settings, and in the walk-forward Per-Window Results table; the optimizer's search on profit, Sharpe ratio and maximum drawdown together (TPE, a Bayesian optimization method, since 24 September 2026, which replaced NSGA-II), with the recommendation chosen from a ranking of every completed trial, not only the Pareto front, that weights profit and Sharpe by trade count; and the 5-trade floor that leaves trials with fewer than 5 trades out of that ranking, and so out of the recommendation and Top Trials, unless no trial reached 5.
- Illustrative figures on this page: the 50-trade worked example, and the trade counts and profit factors in the “What an unconstrained profit-factor objective selects” table, are constructed, not measured. Only the 99.0 has an external origin, as NinjaTrader's reported cap.