R-Multiple in Futures Trading: How to Express a Trade in R
R-multiple expresses any trade's outcome as a multiple of the dollar amount you risked on that trade. Compute it from your plan and run a trade log in R.
By Imperial Analytics
A trade log that only reports dollars hides what actually happened. Two losing days can post identical red figures while one of them was four normal losses and the other was one oversized trade dressed as four. R-multiple is the unit that pulls those two days apart. It expresses every trade as a multiple of the dollar amount the plan risked on that trade, so a loss equal to the plan is always -1R and a win that returned three times the planned risk is always +3R. This post defines R-multiple, walks through how to compute it for a single trade, and shows how to run an entire log in R.
By Imperial Analytics
What R-multiple means in one paragraph
R-multiple expresses a trade's outcome as a multiple of the dollar amount the trader's plan risked on that single trade. One R is the planned per-trade risk in dollars. A loss equal to that risk is -1R, a loss double that risk is -2R, and a win that returns three times that risk is +3R. The unit is silent on account size and silent on contract count. It speaks only in the trader's own risk language.
The unit was named in the trading-systems literature long before any modern trading journal existed, and it has stayed in use because it does one thing dollars cannot: it makes trades comparable across days, instruments, and account sizes. A +2R day in MES at 1 contract per trade and a +2R day in MNQ at 5 contracts per trade are the same kind of day at the level of plan execution, even though the dollar P&L is wildly different.
The trader who only tracks dollars cannot see that. The trader who tracks R-multiples can.
How to set 1R for a trade
One R is the dollar amount the plan risks on a single trade, set before the trade is taken. It is computed from the per-contract stop distance, the contract's tick value, and the position size the plan calls for. A trader who waits until the trade is closed to decide what 1R was has already lost the unit's only job, which is to be the planning anchor that every later number is measured against.
The clean version of the calculation is three numbers. The stop distance in points, decided by the plan. The dollar value per point for the instrument, which is fixed for every contract. The number of contracts, decided by the plan. Multiply the three and the product is 1R in dollars.
On MES, the per-point value is $5. A plan that places a 10-point stop on a 2-contract trade is risking 10 points times $5 times 2 contracts, which is $100. That trade's 1R is $100. A loss at the stop is -1R. A win that closes at a 30-point gain on the same position is +3R, because 30 points times $5 times 2 contracts is $300, and $300 divided by $100 is 3.
The discipline that makes the unit useful is setting 1R before the trade and writing it down. If the trader sets 1R at $100, then widens the stop after the trade is taken, the original 1R does not change. The trade was taken with a $100 risk plan, and the result is measured against that plan. The widening shows up later as a separate finding when the journal compares planned risk to realized risk.
How to compute the R-multiple of any closed trade
The R-multiple of a closed trade is the trade's dollar result divided by the trade's planned 1R. A +$300 trade taken with a $100 planned risk is +3R. A -$150 trade taken with a $100 planned risk is -1.5R. The trader who logs the planned 1R and the realized dollar result has every R figure for the trade, the day, the week, and the year as a single division away.
For a single trade the calculation is short. Take the dollar gain or loss on the close. Divide by 1R for that trade. The sign of the quotient travels with the trade.
A worked sequence of three trades, all on MES, all with the same plan of 10-point stops on 2 contracts so 1R = $100:
- Trade 1: stopped out at the 10-point loss. Result -$100. R = -$100 / $100 = -1R.
- Trade 2: closed at a 20-point gain. Result +$200. R = +$200 / $100 = +2R.
- Trade 3: stopped out at a 15-point loss because the price gapped through the stop and filled at a worse level than planned. Result -$150. R = -$150 / $100 = -1.5R.
The day in dollars is -$100 + $200 - $150 = -$50. The day in R is -1R + 2R - 1.5R = -0.5R. The two numbers say the same thing, but the R figure is the one that survives a comparison to next week, when the trader may be trading 3 contracts instead of 2.
Data note
The figures in this section are illustrative. Substitute the trader's own per-point value (MES is $5; ES is $50; MNQ is $2; NQ is $20), the trader's own stop distance, and the trader's own contract count. The method is what carries; the numbers do not.
Why traders read a log in R instead of dollars
A log read in dollars conflates plan execution with account size and contract count. The same plan executed at 1 contract and at 5 contracts produces different dollar columns and identical R columns. Reading in R isolates whether the plan worked from whether the trader sized into a good plan or a bad one. The dollar log answers what happened to the account; the R log answers what happened to the plan.
The point becomes obvious the first time a trader changes contract size mid-quarter. A trader who runs at 2 contracts for six weeks, then increases to 4 contracts for the next six weeks, will see the dollar P&L approximately double across the second window if the plan kept performing. The R column will look almost identical across the two windows, because the plan is the plan. The R column reveals whether the plan or the size produced the result.
The same point applies across instruments. A trader who takes 1 contract of MES one week and 1 contract of MNQ the next is moving between a per-point value of $5 and a per-point value of $2. The dollar columns will not line up. The R columns will, because the planned 1R in both weeks was set against the same plan and the realized R is normalized to that plan.
The result is a log that can be summed, averaged, and grouped without dollar contamination. A win rate is a win rate. A 0.4R average win and a 1.1R average loss is a 0.4 / 1.1 expectancy story regardless of whether the account is $5,000 or $50,000.
How R interacts with expectancy
Expectancy is win-rate times average win minus loss-rate times average loss. When the average win and average loss are expressed in R, expectancy comes out in R, and the figure travels across position sizes without restating. A plan with a 45% win rate, an average win of +1.6R, and an average loss of -1R produces an expectancy of 0.72R minus 0.55R, which is +0.17R per trade.
The expectancy figure in dollars and the expectancy figure in R say the same thing, but the R version is the one that survives a size change. The dollar expectancy of a trader who scales from 2 contracts to 4 contracts mid-quarter has to be recomputed for the new size. The R expectancy does not. As long as 1R is set per trade against the plan that was actually executed, the expectancy in R describes the plan, and the plan is the thing that should be measured.
The same property makes R the natural unit for comparing setups. A trader who runs two setups, one with +0.3R per trade across 80 trades and one with +0.05R per trade across 80 trades, has a quantitative answer to which setup is paying its keep. The setup-level dollar figures might look closer than the R figures because the setups might trade different sizes, but the R figure is what describes the edge.
A note on sample size: the R column does not change the sample-size discipline. A +0.17R expectancy figure built on 15 trades is not yet meaningful. The same Imperial Analytics minimum that the rest of the journal lives under, twenty trades in the matching condition before any pattern claim is surfaced, applies to a per-setup expectancy figure expressed in R.
Data note
The 20-trade-per-setup floor applies to expectancy figures expressed in R as well as expectancy figures in dollars. Below that floor, the figure is a calculation, not a claim.
Where R-multiple gets used incorrectly
The three common errors with R are setting 1R after the fact, conflating planned risk with realized risk on slipped or gapped exits, and reporting a per-trade R figure that hides a per-day or per-setup story. Each error breaks the same property of the unit, which is that R should describe the plan that was actually executed against. R reported against an after-the-fact stop is just dollars with a relabel.
↳ Note
R reported against an after-the-fact stop is just dollars with a relabel.
The first error is setting 1R after the trade closes. If the trader sets 1R at $100 with a 10-point stop, then moves the stop to 12 points mid-trade, then takes the loss at -$120 and records that as -1R because the realized stop ended up matching, the figure is no longer measuring the plan. It is measuring the latest version of a plan that mutated during the trade. The honest entry is -1.2R against the original 1R = $100, and a separate note that the stop was widened.
The second error is bundling planned risk and realized risk on slipped or gapped exits. A stop placed 10 points away on MES carries a planned per-contract risk of $50 ($5 per point times 10 points). If the fill comes back at a 13-point loss because the order slipped at a fast print, the per-contract realized risk was $65, and the R-multiple should reflect that. The clean entry is -1.3R, not -1R. R is meant to describe how the trade resolved against the plan, and a slipped fill is a fact about resolution.
The third error is reporting one aggregate R figure that hides what the day or the setup looked like. A week that posts +6R sounds the same as a week that posts +6R, but a week made of fifteen +0.4R trades is a different operational picture than a week made of one +6R trade and twelve break-even trades. The fix is to report distributions next to averages: the median R per trade, the worst R day, the largest R day, and the share of trades that fell between -0.25R and +0.25R.
What a minimum journal needs to run a log in R
To run a trade log in R the journal needs five columns per trade: planned 1R in dollars, instrument, contract count, realized dollar result, and a flag for whether the exit was at the planned stop or away from it. From those five columns every R figure in the log is derivable. The journal that lacks the planned 1R column cannot run an R column at all without inferring it after the fact, and an inferred 1R is the error described above.
The five columns are the floor. The most useful additions on top of the floor are a per-trade setup tag, a per-trade entry time, and a per-trade exit reason. Together those three additions allow a trader to slice the R column by setup, by hour, and by exit type. The setup tag is the same one a trader would use to test whether a setup is paying its keep. The entry time gives the day-of-session distribution of R. The exit reason tells the trader where realized risk diverged from planned risk.
The journal that does not yet have these columns can still convert. Pick a fixed two-week window, set the planned 1R for every trade in that window, and rebuild the log. The R figures for that window will be trustworthy. The figures for windows before the conversion will not, and that is fine. R is forward-looking by default; trying to retrofit it onto a year of dollar entries is the wrong direction.
Frequently asked questions
- q: What does R-multiple measure? a: R-multiple measures a closed trade's outcome as a multiple of the dollar amount the plan risked on that trade. A loss equal to the plan is -1R; a win returning three times the planned risk is +3R.
- q: How is 1R set? a: One R is the trader's planned per-trade risk in dollars, set before the trade. For futures, that is the per-point value of the instrument times the stop distance in points times the contract count.
- q: Why use R instead of dollars in a journal? a: Dollar figures change with account size and contract count, so they cannot be compared across position sizes. R figures normalize to the plan, so the same plan run at 2 contracts and at 4 contracts produces comparable R columns.
- q: Can a trade have a fractional R, like -1.3R? a: Yes. A fill that comes back at thirteen points of loss against a planned ten-point stop produces -1.3R. Fractional R is how slipped or gapped exits are recorded honestly.
- q: How does R relate to expectancy? a: Expectancy in R is win-rate times average winning R minus loss-rate times absolute average losing R. The figure travels across position sizes without restating, which is why per-setup expectancy is usually reported in R.
- q: How many trades does a per-setup R expectancy need to be meaningful? a: The Imperial Analytics floor is twenty trades in the matching condition before a per-setup claim is surfaced. Below that floor the figure is still a calculation, but it is not yet a claim about the setup.