Trading Performance Metrics: Expectancy, Profit Factor and R

Expectancy, profit factor, payoff ratio, streaks and drawdown, all computed in R from one 20-trade EUR/USD and gold sample, plus prop firm breach checks.

Trading performance metrics are the numbers that tell you whether your results come from an edge or from luck and size: expectancy, profit factor, payoff ratio, win rate, losing streaks and drawdown, all measured in R rather than pips or dollars. Measured on one consistent sample, together they show whether a strategy makes money per trade, how unevenly it does it, and how close it came to breaking your account or your prop firm's rules along the way.

This page is written for forex, CFD and prop firm traders. It takes one sample of 20 EUR/USD and XAU/USD trades and computes every metric from that list, step by step, then covers slicing by session, pair, setup and news, and the numbers that predict a prop firm breach. Position sizing, R basics, break-even win rates and drawdown recovery are in trading risk management; this page builds on them.

Why measure in R instead of pips or dollars?

R is the amount you risked on a trade: a full stop-out is −1R, a win of twice the stop is +2R. It puts every instrument and position size on one scale.

Pips are not comparable across instruments. Using the Fips convention, a gold pip is $0.10, so 20 pips on XAU/USD is a $2.00 move: a third of a typical 60-pip gold stop. On EUR/USD, 20 pips is often the whole stop. Traders also disagree on what a gold pip is ($0.01, $0.10 or $1.00), so "20 pips on gold" can mean three moves ten times apart. A pip total across both is meaningless.

Dollar P&L is distorted by changing size. On a $100,000 account, +$500 at 0.5% risk is +1R; the same +$500 at 2% risk is +0.25R. Both look identical in a dollar column, and a curve built while size changed flatters whatever you traded large. R = result ÷ initial risk at entry. If you size with the lot size calculator, the dollar risk you entered is your 1R.

The sample: 20 trades on EUR/USD and XAU/USD

An illustrative sample, not a track record or a claim about any setup. Assume a $100,000 prop account, 1% risk fixed on the starting balance, so 1R = $1,000. Trade 9 was closed early at half the stop; trade 11 slipped through its stop on news.

#DayPairSessionSetupStop (pips)Result (pips)RCumulative R
11EUR/USDLondonBreakout20+40+2.0+2.0
21XAU/USDNew YorkPullback60−60−1.0+1.0
32EUR/USDLondonPullback15−15−1.00.0
42XAU/USDLondonBreakout40+100+2.5+2.5
53EUR/USDNew YorkNews20−20−1.0+1.5
64EUR/USDAsiaRange12−12−1.0+0.5
74XAU/USDNew YorkPullback50+75+1.5+2.0
85EUR/USDLondonBreakout18−18−1.0+1.0
95XAU/USDLondonPullback60−30−0.5+0.5
106EUR/USDLondonBreakout20+60+3.0+3.5
116XAU/USDNew YorkNews50−70−1.4+2.1
127EUR/USDAsiaRange10−10−1.0+1.1
137EUR/USDLondonPullback16−16−1.0+0.1
147XAU/USDNew YorkBreakout70−70−1.0−0.9
158XAU/USDLondonBreakout40+80+2.0+1.1
168EUR/USDNew YorkPullback25+25+1.0+2.1
179XAU/USDAsiaRange30−30−1.0+1.1
189EUR/USDLondonBreakout15+30+2.0+3.1
1910XAU/USDNew YorkPullback80−80−1.0+2.1
2010EUR/USDLondonPullback20+30+1.5+3.6

Net result: +3.6R, which is +$3,600 at $1,000 per R.

In pips the total is +9: EUR/USD +94, gold −85. In R, EUR/USD made +3.5R and gold +0.1R. Pips say gold was a losing market; R says it broke even. Gold's larger stops inflate its pip wins and losses alike.

How do you calculate each metric? (worked through)

All figures come from the table: 8 winners (trades 1, 4, 7, 10, 15, 16, 18, 20) and 12 losers.

Win rate. Winners ÷ total trades = 8 ÷ 20 = 0.40, or 40%.

Average win in R. Gross wins = 2.0 + 2.5 + 1.5 + 3.0 + 2.0 + 1.0 + 2.0 + 1.5 = 15.5R. Average win = 15.5 ÷ 8 = 1.94R.

Average loss in R. Gross losses = ten full losses of 1.0R, plus 0.5R (trade 9) and 1.4R (trade 11) = 10.0 + 0.5 + 1.4 = 11.9R. Average loss = 11.9 ÷ 12 = 0.99R.

Expectancy in R. The average result per trade:

Expectancy = (Win rate × Average win) − (Loss rate × Average loss)
           = (0.40 × 1.9375) − (0.60 × 0.9917)
           = 0.775 − 0.595
           = +0.18R per trade

Check: net R ÷ trades = 3.6 ÷ 20 = 0.18R, or $180 per trade.

Profit factor. Gross wins ÷ gross losses = 15.5 ÷ 11.9 = 1.30. For every 1R lost, the sample made 1.30R back.

Payoff ratio. Average win ÷ average loss = 1.9375 ÷ 0.9917 = 1.95. Winners were nearly twice the size of losers, enough to carry a 40% hit rate here.

Max consecutive losses. Trades 11, 12, 13 and 14 lost in a row: 4. Together they cost 1.4 + 1.0 + 1.0 + 1.0 = 4.4R, more than four times 1R because of the news slippage.

Max drawdown in R. Follow the cumulative column. The highest point before the drop was +3.5R after trade 10. The lowest point after it was −0.9R after trade 14. Max drawdown = 3.5 − (−0.9) = 4.4R. The curve did not make a new high until trade 20.

Max drawdown in % at 1% risk. With 1R = $1,000, the balance peaked at $103,500 and fell to $99,100: a $4,400 drop. That is 4.4% of the starting balance, or 4,400 ÷ 103,500 = 4.25% from the peak. Prop rules measure from either the starting balance or a high-water mark; know which.

Recovery factor. Net profit ÷ max drawdown = 3.6 ÷ 4.4 = 0.82. Below 1: the whole profit was smaller than the worst dip.

Sharpe-like consistency (optional). Mean R ÷ standard deviation of R. Mean 0.18R; sample standard deviation about 1.53R; 0.18 ÷ 1.53 ≈ 0.12 per trade. Per trade, not annualised, and not comparable with fund Sharpe ratios. Use it to compare your own periods or setups.

Which metric tells you what, and what fools it?

MetricFormulaWhat it tells youWhat fools it
Win rateWinners ÷ tradesHow often you are rightTaking profits early and letting losers run raises it while lowering expectancy
Average win / loss (R)Gross wins ÷ winners; gross losses ÷ losersSize of a typical winner and loserOne outlier trade; moving the stop after entry, which changes what 1R means
Expectancy (R)Net R ÷ tradesAverage R earned per tradeSmall samples; one large winner can carry it
Profit factorGross wins ÷ gross lossesR made per R lostIgnoring costs; a few big wins in a short sample
Payoff ratioAverage win ÷ average lossShape of the distributionSays nothing on its own without win rate
Max consecutive lossesLongest run of losersThe streak you must be able to surviveA short history has not met its worst streak yet
Max drawdown (R and %)Peak-to-trough of cumulative RHow deep the dip gotMeasuring only closed trades hides floating losses
Recovery factorNet R ÷ max drawdown RReward relative to painGrows with sample length, so compare like periods
Sharpe-likeMean R ÷ SD of RSteadiness of resultsTreats big wins as "volatility" just like big losses

Read rows together: profit factor 1.30 and recovery factor 0.82 say the same sample was profitable but bumpy.

How many trades do you need before the metrics mean anything?

Twenty trades prove very little. In the sample above, trade 10 alone produced 3.0R of the 3.6R net. Remove it and expectancy drops to 0.6 ÷ 19, about +0.03R, which is close to nothing. Swap two losers for small winners and the picture improves sharply. That sensitivity is the signature of a small sample: the metrics describe what happened, not what will keep happening.

Larger samples dilute outliers and are more likely to contain a realistically bad streak. There is no magic count; strategies relying on rare large winners need more trades than steady ones. Treat early metrics as hypotheses, and keep conditions comparable: a sample mixing three setups and two risk levels answers no specific question.

What are MAE and MFE?

MAE (maximum adverse excursion) is how far a trade went against you before it closed; MFE (maximum favourable excursion) is how far it went in your favour. Both are best recorded in R.

If winners routinely show an MAE of 0.9R, a slightly worse fill turns them into losers. If losers often reached +1.5R MFE before reversing to −1R, your exits leak R. MT5 history records entry and exit, not the path between, so you need price data to fill them in.

How should forex traders slice their results?

By session. London: 10 trades, +9.5R. New York: 7 trades, −2.9R. Asia: 3 trades, −3.0R. MT5 shows trades in broker server time, and many brokers run it at GMT+2 or GMT+3, so a trade stamped 10:00 may have opened at 08:00 London time. The US and Europe also change clocks on different dates in March and around October and November, which shifts the session overlap by an hour for a few weeks. Convert to one reference time zone before tagging sessions, or your "London" bucket will contain Asian or New York trades.

By pair. EUR/USD: 11 trades, +3.5R. XAU/USD: 9 trades, +0.1R. In R, gold was flat, not losing.

By setup tag. Breakout: 7 trades, +9.5R. Pullback: 8 trades, −0.5R. Range: 3 trades, −3.0R. News: 2 trades, −2.4R. Note that slices overlap: six of the breakouts were London trades (+10.5R together), so "London is good" and "breakouts are good" are largely the same finding. Look for the combination, not two separate conclusions.

Around news. Both news trades lost, and trade 11 lost 1.4R because the stop filled 20 pips past its level during a release. Around high-impact releases, −1R is not a floor you can count on. Tag trades near scheduled events, check the economic calendar before entry, and compare that bucket's average loss with the rest.

Each slice holds 2 to 11 trades: they suggest where to look, not what to cut.

Which metrics predict a prop firm breach?

A prop account fails on a rule, not on a bad average. Two comparisons do most of the work. The firm figures below were checked against each firm's official rules on 26 September 2026; rules change, so confirm on the firm's own page or in the prop firm rules comparison.

Largest daily loss vs the daily limit. In the sample, day 7 had three losers: −3.0R, or −$3,000, which is 3% of the $100,000 starting balance. Against FTMO Challenge 2-Step's 5% daily loss, that leaves 2% of room. Against a 3% daily limit, such as FTMO Challenge 1-Step, FundedNext Stellar 1-Step or The5ers Hyper Growth, it lands exactly on the line with closed trades alone, and any slippage like trade 11's or any floating loss on an open position would cross it (on The5ers Hyper Growth, hitting the daily limit pauses the account until the next day rather than failing it). Daily limits also differ in when the day resets and whether they use balance or the higher of balance and equity; prop firm daily drawdown works through those mechanics.

Max consecutive losses × risk per trade vs the max loss. The worst streak cost 4.4R, so 4.4% at 1% risk. Whether that matters depends on how the max loss is measured:

  • Static (FTMO Challenge 2-Step 10%, FundedNext Stellar 1-Step 6%, The5ers Hyper Growth 6%): the floor is fixed below the starting balance. This sample never went more than 0.9% below $100,000, so a static limit was never close.
  • Trailing (for example E8 One, whose max loss is 4% preset and trails the highest closed balance until it locks at the initial balance): the floor follows the peak. Here the relevant number is the 4.4R drop from the $103,500 high, and a 4.4% fall is larger than 4%. In this labelled worked example, the same trades that pass a static rule would breach a trailing one.

The practical rule: plan your risk per trade so that a streak longer than your worst recorded one still fits inside the daily and max loss limits, with room for slippage. If your worst streak is four, the next one may be six. At 1% risk, six losses is about 6%; on a 6% static limit, that uses the entire allowance with nothing left for slippage.

How do you track these metrics without a spreadsheet?

A spreadsheet can compute all of this if you log stop at entry, result in R, day, session, pair and setup for every trade; how to use a trading journal effectively covers the logging habit.

Fips is a trading journal built for this kind of review, with account analysis for stats and metrics from your trade history. MT4 and MT5 accounts sync through the read-only investor password, so Fips can read history but can never place, modify or close a trade; other platforms connect with a read-only API key or import by CSV. Prop firm rule tracking inside the journal is coming soon. Fips is in private beta; join the waitlist for access. The calculators work without an account.

Frequently asked questions

How do you calculate expectancy in trading?

Multiply your win rate by your average win in R, then subtract your loss rate multiplied by your average loss in R. The shortcut is net R divided by the number of trades. In the sample above, both give +0.18R per trade.

What is a good profit factor in trading?

Above 1.0 means gross wins exceeded gross losses, after the costs you included. There is no universal threshold beyond that: it depends on sample size, costs and how much one trade carries the total. Compare it across your own periods and setups.

What is an R multiple?

A trade's result divided by the amount risked at entry: risk $1,000, make $2,500, and the trade is +2.5R.

Is win rate or profit factor more important?

Profit factor and expectancy, because they include the size of wins and losses. A high win rate with small winners and occasional large losers can still lose money; a low win rate with large winners can make it. Win rate matters mainly for knowing what losing streaks to expect.

How many trades do you need to evaluate a trading strategy?

More than 20. A small sample can be dominated by one trade, as trade 10 dominates this one. Keep conditions consistent and treat early numbers as hypotheses.

What is the difference between MAE and MFE?

MAE is the furthest a trade moved against you before closing; MFE is the furthest it moved in your favour. MAE tells you whether stops are too tight; MFE tells you whether exits leave R behind.

Also available in: Türkçe, Deutsch, Français, Español, Italiano

Fips app icon

Ready when you are.

Journal, review and size your trades with precision, speed and clarity.