What is Profit Factor?
Profit Factor = gross profit / gross loss. A PF of 1.5 means $1.50 earned for every $1.00 lost. Above 1.0 is profitable; below 1.0 loses money. Realistic backtested futures strategies live in the 1.2 to 2.0 range. Anything above 3.0 in backtest is almost certainly over-optimized.
The formula
Profit Factor = Sum of winning trades ($) / Sum of losing trades ($)
That's it. If your strategy made $12,000 in winners and lost $8,000 in losers, profit factor = 1.5.
Unlike win rate, profit factor captures both frequency and size of wins and losses. A strategy with 40% win rate can have a great profit factor if winners are big and losers are small. A strategy with 70% win rate can have a terrible profit factor if it gives back too much on its 30% of losers.
What counts as "good"
| PF | Interpretation |
|---|---|
| < 1.0 | Losing strategy |
| 1.0 – 1.1 | Barely profitable; commissions and slippage will eat it |
| 1.2 – 1.5 | Realistic, tradeable |
| 1.5 – 2.0 | Good, sustainable |
| 2.0 – 3.0 | Excellent, but scrutinize |
| > 3.0 | Almost always over-optimized or sample too small |
Two caveats:
- It's a ratio, not an absolute. A PF of 1.3 across 2,000 trades is more valuable than a PF of 2.5 across 40 trades. Sample size matters.
- Commissions and slippage must be included. Raw backtest PF is optimistic. Subtract round-trip costs from every trade before calculating.
Common ways traders misread PF
1. Ignoring sample size. A PF of 4.0 on 20 trades says almost nothing about the strategy. You need 100+ trades before PF starts to stabilize.
2. Ignoring the distribution. A strategy with PF 1.8 could be:
- 55% wins of $200, 45% losers of $125 (smooth)
- 20% wins of $2,000, 80% losers of $100 (lumpy, psychologically brutal)
Same PF, completely different to trade.
3. Calculating over in-sample only. Your backtest PF is the optimistic case. Always split data — optimize on the first 70%, evaluate on the remaining 30% (out-of-sample). If out-of-sample PF collapses, the strategy is curve-fit.
Profit Factor vs. other metrics
- PF vs. Win Rate. Win rate ignores trade size. PF doesn't. PF is more informative.
- PF vs. Expectancy. Expectancy is
avg win × win rate − avg loss × loss rate. Same information as PF, expressed per-trade in dollars. Use both. - PF vs. Sharpe. Sharpe considers volatility of returns. PF doesn't. Two strategies with identical PF can have very different Sharpe if one is smooth and one is chunky.
See Sharpe vs. Sortino and Win rate vs. expectancy.
Calculating Profit Factor from a trade log
If you have a CSV of trades with profit/loss per trade, PF is one line in Python:
import pandas as pd
trades = pd.read_csv("trades.csv")
winners = trades.loc[trades["pnl"] > 0, "pnl"].sum()
losers = abs(trades.loc[trades["pnl"] < 0, "pnl"].sum())
pf = winners / losers if losers > 0 else float("inf")
print(f"Profit Factor: {pf:.2f}")
Both TradingView's strategy tester and NinjaTrader's Strategy Analyzer report PF natively — it's labeled "Profit Factor" in both.
Profit Factor targets for live trading
A strategy that backtests at PF 1.8 will typically live-trade at PF 1.2–1.5 after slippage, missed fills, and non-backtested costs. Budget that haircut in advance.
If your minimum acceptable live-trading PF is 1.2, don't deploy any strategy that backtests below 1.5. That gap is your margin of safety.
Frequently Asked Questions
What is a good profit factor in trading?
For backtested futures strategies, 1.2–2.0 is realistic. Above 2.0 is excellent but warrants scrutiny. Above 3.0 usually signals over-optimization, cherry-picked data, or a sample size too small to trust.
Can profit factor be negative?
No. Profit factor is a ratio of positive numbers (gross profit divided by gross loss). A losing strategy has PF between 0 and 1. A strategy with no losing trades has an undefined or infinite PF — but also an unrealistic sample.
Profit factor vs win rate — which is more important?
Profit factor, by a mile. Win rate ignores trade size. A 40%-win-rate strategy with average winners 3x the size of losers can have a fantastic PF. A 70%-win-rate strategy that gives back too much on losers can still lose money.
How many trades do I need before profit factor is meaningful?
At least 100 trades, ideally 200+. Below 50, PF is noise. A strategy with PF 2.0 across 30 trades tells you almost nothing; across 300 trades it's a real signal.