Skip to content

Trading metrics

What Is a Good Trading Expectancy? Benchmarks, R and Sample Size

A good trading expectancy is one that stays above zero after every trading cost, measured over enough closed trades that the positive average is unlikely to be chance. Beyond that, no universal number exists. Express expectancy in R, the average of each trade's result divided by its initial risk, while keeping the risk definition and costs consistent. Also check monetary expectancy when initial risk varies. The same 0.2R can be convincing or inconclusive, depending on how widely results vary and how often trades occur.

The formula itself, with a step-by-step example, is in the trading expectancy formula guide. This page belongs to the trading metrics library and covers how to judge the number once you have it.

Illustrative cover for judging a good trading expectancy: two evidence ranges share the same average, one clear of zero and one crossing it, with the official PineConnector logo.
The same average can be convincing or inconclusive, depending on the spread of results and the number of trades.

Good trading expectancy at a glance

Scroll horizontally to read every column.

Question Reference point Caveat
Fixed threshold Above zero after all costs Holds only on the cost basis the report used
Unit R: average of each result ÷ its initial risk Needs the planned loss at the initial stop for every trade
Evidence A mean more than roughly two standard errors above zero A rough screen, not a universal minimum sample or proof of an edge
Size bands No agreed band for expectancy itself Bands quoted for SQN or profit factor rate other metrics
Frequency Total over a period = expectancy × trades closed in it Describes the past record, not a forecast
Where to read it TradingView “Expected payoff”, MT5 “Expected Payoff”, PineConnector Analytics “Expectancy” Monetary examples/definitions; PineConnector dashboard unit is not specified

How should expectancy be measured before you judge it?

Expectancy in R = mean of (net resulti ÷ initial riski)

  • W and L: winning trades and losing trades, each ÷ all closed trades. A breakeven trade stays in the count with a result of zero.
  • AW and AL: average monetary win and positive average monetary loss on the same cost basis. Only when every trade has the same initial risk R can you write R-expectancy as (W × AW − L × AL) ÷ R.
  • R: the planned loss at the initial stop, in account currency. An R-multiple is a trade's result ÷ its initial R, even if the stop later moved. Initial risk must be positive; no trades gives no mean. If there are no winners or losers, average the individual R-multiples directly instead of using a missing subgroup average.

This page uses each trade's net result after costs. Spread and slippage already reflected in fills must not be subtracted again. The R framing follows Van Tharp. A Van Tharp Institute lesson on R-multiples defines expectancy as the average R-multiple per trade.[1] The R-multiple guide covers logging R for each trade.

Judging in R matters because a currency figure carries position size inside it. Illustrative: $20 per trade is 0.2R when every trade risks $100, and 0.02R when every trade risks $1,000. A rule of thumb stated in dollars per trade therefore cannot transfer between accounts or strategies. Varying initial risk can even reverse the sign: +2R at $50 risk makes $100, while −1R at $200 risk loses $200. The mean is +0.5R but the account loses $100.

Why is zero after costs the only fixed threshold?

For monetary expectancy, zero separates a record whose average trade made money from one whose average trade lost it. For R-expectancy it separates positive and negative average R-multiples; unequal initial risks can produce a different monetary verdict. Every other cut-off is a convention. The zero line depends on which costs a figure includes, so check the cost basis before calling a number positive.

  • TradingView: Expected payoff divides total Net PnL by the number of completed trades and uses realised results only.[2] A strategy applies no commission unless one is specified, and its default slippage is 0.[3]
  • MT5 account history: the Trading Report calculates each deal's total result as “profit (loss) - commission - fees - swap”.[4]
  • PineConnector Analytics: the guide's Net profit entry says to check which costs the displayed figure includes before comparing it with another report.[5]

Costs weigh more on short stops, because a fixed cost in pips is a larger share of a shorter stop distance. Illustrative, not a recommendation: hold the pre-cost expectancy at 0.1R and the round-trip cost at 1 pip, then change only the stop.

Stop distance (1R) Cost in R Net expectancy
10 pips 1 ÷ 10 = 0.10R 0.10R − 0.10R = 0R
20 pips 1 ÷ 20 = 0.05R 0.10R − 0.05R = 0.05R
50 pips 1 ÷ 50 = 0.02R 0.10R − 0.02R = 0.08R

The break-even win rate shifts in the same direction. With a 1R target and a 1R stop, the break-even win rate is 1 ÷ (1 + 1) = 50% before costs.[5] A cost of c R per trade makes it (1 + c) ÷ 2: 51% at 0.02R, 52.5% at 0.05R and 55% at 0.10R. See the break-even win rate guide and transaction costs measured in R.

Worked example: the same 0.2R expectancy, different uncertainty

Illustrative numbers, not a recommendation or a strategy result. Two hypothetical outcome models use results already net of costs. Every trade risks 1R at its initial stop, and neither model contains breakevens.

  • Model A: half the trades end at +1.4R and half at −1R.
  • Model B: one trade in five ends at +5R, and four in five end at −1R.
  1. Expectancy. Model A: (0.5 × 1.4) − (0.5 × 1) = 0.7 − 0.5 = 0.2R. Model B: (0.2 × 5) − (0.8 × 1) = 1.0 − 0.8 = 0.2R. Both models have the same expectancy.
  2. Spread of results. Every Model A result sits 1.2R from the 0.2R mean, so its standard deviation is 1.2R. Model B's wins sit 4.8R above the mean and its losses 1.2R below it. Its standard deviation is √(0.2 × 4.8² + 0.8 × 1.2²) = √5.76 = 2.4R. These are population deviations of the stipulated outcome models, not sample estimates.
  3. Uncertainty after 100 trades. The standard error of the mean is the standard deviation ÷ √N: 1.2 ÷ 10 = 0.12R for Model A and 2.4 ÷ 10 = 0.24R for Model B. Using those model deviations, two standard errors either side gives a rough normal-approximation range of about 95% of −0.04R to +0.44R for Model A and −0.28R to +0.68R for Model B. After 100 trades, neither model rules out a true average of zero.
  4. Rough planning boundary. For the stipulated average to sit exactly two standard errors above zero, N = (2 × standard deviation ÷ expectancy)². Model A: (2 × 1.2 ÷ 0.2)² = 12² = 144 trades. Model B: (2 × 2.4 ÷ 0.2)² = 24² = 576 trades. Twice the spread produces four times the count. At either boundary the lower end is zero, not above it; the counts do not establish statistical significance and are not a sample-size design with stated power. At 144 trades, Model B's average sits only one standard error above zero: 2.4 ÷ 12 = 0.2R.
  5. Time. At 12 trades a month, Model A reaches 144 trades in 12 months and Model B reaches 576 in 48 months. At 48 trades a month, the same counts take 3 and 12 months.
Illustrative diagram: two outcome models with the same 0.2R expectancy but standard deviations of 1.2R and 2.4R, rough 95% ranges after 100 trades that both cross zero, and about 144 versus 576 trades at the rough planning boundary.
Illustrative outcome models, not strategy results or targets. Doubling the spread quadruples the rough planning count; at that count the lower range endpoint meets zero.

For actual observations, the one-sample t statistic is (mean − 0) ÷ (s ÷ √N), with sample standard deviation s (dividing by N − 1), and an appropriate t critical value. The simplified model arithmetic above uses about 2 instead.[6] For large independent samples, about 2 approximates a two-sided 95% critical value. Repeatedly checking until a test passes, or selecting the best of many backtests, changes the inference. The check assumes independent trades drawn from an unchanging distribution, and markets do not promise either. Model B's results are skewed, so the approximation is rougher there. Monte Carlo resampling of the actual trade list is a common cross-check, and how many trades a backtest needs covers sample size in more depth.

How does trade frequency change what an expectancy means?

Expectancy is an average per trade. Holding the outcome distribution fixed isolates frequency's effect; changing entry rules or trading conditions can change the average too. Consider three effects.

  • The period total. Over a past period, the total in R equals expectancy × the trades closed in it. Illustrative: 0.2R over 12 trades totals 2.4R, and over 48 trades 9.6R. Neither figure forecasts the next period.
  • The noise in a short window. For 12 independent draws under Model A, the total has a standard deviation of 1.2 × √12 ≈ 4.2R, larger than the 2.4R total that 0.2R per trade implies. One month of results at that pace says little either way.
  • The weight of costs. If more frequent trading comes from shorter holds with closer stops, a fixed cost becomes a larger share of R, as the cost table shows. Compare net figures, not pre-cost ones.

Which expectancy benchmarks are commonly cited, and what do they measure?

Several reference points circulate. Each measures something narrower than “good”.

  • Zero after costs. TradingView describes Expected payoff as the strategy's statistical “expectancy”.[2] The line is fixed, but only on the report's cost basis.
  • The 100-trade guideline. TradingView's Pine Script FAQ asks for enough simulated trades to assess hypothetical performance, “ideally 100 trades or more”, so that the strategy report can fill its metrics.[7] The FAQ offers it as report guidance, not as the point where an expectancy becomes reliable. In the worked example, 100 trades left both models inconclusive.
  • SQN rating bands. QuantMonitor describes Van Tharp's System Quality Number as expectancy in R ÷ standard deviation of R × √N, with N capped at 100. Its attributed rating table labels 2.0 to 2.4 “Average” and 2.5 to 2.9 “Good”.[8] Those bands rate SQN, not expectancy. At 100 trades, Model A scores 10 × 0.2 ÷ 1.2 ≈ 1.67 and Model B scores 10 × 0.2 ÷ 2.4 ≈ 0.83, with identical expectancy. With no cap and sample rather than population deviation, that algebra matches the one-sample t statistic. See the System Quality Number guide.
  • The 3.8R teaching example. The Van Tharp Institute lesson works a hypothetical trade risking $1 per share for a $15 gain, right 30% of the time: (0.3 × 15) − (0.7 × 1) = 3.8R.[1] It is a teaching example for a training game, not a typical or target result.
  • Profit factor bands. LuxAlgo's library says many practitioners treat net profit factors “around 1.5 to 2.0 on a large trade sample as promising”.[12] That band describes profit factor, a ratio of gross totals. It does not convert into an expectancy target without the loss rate and the average loss.

No band replaces four checks that apply to any strategy and any account size:

Illustrative diagram of four checks before calling an expectancy good: net of every cost, stated in R, clear of zero by about two standard errors, and held on data not used for tuning.
Illustrative checks, not thresholds or recommendations. Passing all four describes a past record and does not forecast the next trade.

Where do TradingView, MT5 and PineConnector show expectancy?

As of 25 September 2026, the documentation describes the following figures; it does not establish a dashboard R-normalisation based on each trade's initial risk:

  • TradingView strategy report: “Expected payoff”, net P&L ÷ completed trades, from closed trades only.[2]
  • MT5 Strategy Tester report: “Expected Payoff”, described as “the average return of one deal”.[9] The account Trading Report uses the same definition.[4]
  • PineConnector Analytics: “Expectancy”, the average gain or loss per trade implied by the historical win rate and average win and loss. The guide works a cash example and does not state the unit the dashboard displays, so an R view is not documented; test on demo. It requires MT5 EA v3.41 or later and says Analytics is not available for MT4 in the published guide.[5]

None of the three documents a figure that divides each result by its planned risk, so R has to come from your own records. The route on this blog runs from idea to measurable rule to TradingView alert to MT5 order. For live trades, record intended initial risk, the actual position size and the initial stop. Illustrative PineConnector message for the TradingView alert's Message field, using the syntax reference's example values rather than a recommended risk amount. Assume a USD account; replace LicenseID with the ID from Portal Connections and EURUSD with the receiving broker's exact symbol:

LicenseID,buy,EURUSD,vol_dollar=100,sl_pips=20

The PineConnector syntax reference sizes vol_dollar=100 for a planned loss of about 100 in account currency at the stop. Its example, at USD 10 per pip per 1.00 lot with a 20-pip stop, gives 0.50 lots before broker volume rounding. The same page notes that actual loss can differ with execution, costs and broker limits.[10] If you retain $100 as the recorded intended R, divide each closed result by 100 rather than assuming every stop-out is −1R, and test messages on a demo account first.

A backtest's expectancy and an account's can differ for the same rules. The alert condition, the alert triggering, webhook delivery, PineConnector processing, the EA's order request and the broker's deal are separate stages, and a missed entry can remove a trade while a missed exit can leave a broker position open. A broker-side stop also behaves differently from a strategy-only exit. TradingView and MetaTrader can use different data feeds, bid/ask quotes, spreads and timestamps.[11] Compare matching trades in R, using the backtest-to-demo reconciliation steps.

What makes an expectancy figure misleading?

  • A figure tuned on the same data. TradingView's strategy documentation describes overfitting and the split between in-sample and out-of-sample data used to test outside the optimisation sample.[3] An expectancy measured only on the tuning data says little. See out-of-sample testing.
  • A few trades carrying the average. Model B's 100 trades net 20R: 20 wins of 5R minus 80 losses of 1R. Remove any four of its winners and the other 96 trades net 0R. Recalculate without the largest results to see how much of the average they carry.
  • Streaks the average hides. With independent trades, the probability that the ten trades starting at any given trade all lose is L¹⁰: 0.5¹⁰ ≈ 0.1% for Model A and 0.8¹⁰ ≈ 10.7% for Model B. The same lesson uses random game draws to illustrate that a positive average does not prevent losing streaks.[1] See losing streak probability.
  • History read as a forecast. MetaQuotes says Expected Payoff “is considered to display the expected return of the next trade”, yet the number averages past trades.[9] PineConnector's Analytics guide says a positive expectancy does not ensure that the next trade, or a future period, will be profitable.[5]
  • Expectancy without sizing or drawdown. A positive average says nothing about how far the account fell along the way, or what share of it each trade put at risk. See risk of ruin and maximum drawdown.
  • Automation read as a fix. Sending rules through TradingView alerts and PineConnector executes them as written. Automation does not add an edge that the rules lack.

Frequently asked questions

What is a good expectancy in trading?

A good expectancy in trading is a positive average result per trade after all costs, measured over enough trades to stand clear of zero. No universal figure exists. Stated in R, the average of each trade's result divided by its planned risk, expectancy compares across strategies and account sizes. How convincing a value is depends on the spread of results, the sample size and the costs included.

Is there an expectancy benchmark for forex strategies?

No agreed expectancy benchmark applies to all forex strategies. The only fixed reference point is zero after costs. Rating bands that circulate, such as the Van Tharp scale for the System Quality Number, rate SQN, a ratio that also depends on the spread of results and the trade count. Profit factor bands rate profit factor. Neither converts into a target expectancy.

What does positive expectancy mean?

Positive monetary expectancy means the average closed trade made money after included costs. Positive R-expectancy means the average initial-risk-normalised result is above zero. Their signs can differ when initial risk varies between trades. A positive figure describes the past sample only. It does not show that the next trade, or the next month, will be profitable, and a small sample can turn out positive by chance.

How many trades do you need to judge a trading expectancy?

The number depends on how widely results vary relative to the average. A rough check is N = (2 × standard deviation of R ÷ expectancy in R)², which puts a stipulated positive average exactly two standard errors above zero. The lower range endpoint is then zero, not strictly positive. Illustrative: 0.2R with a 1.2R standard deviation gives a planning boundary of about 144 trades, and with 2.4R about 576. This is rough planning arithmetic for a positive expectancy and deviation; it does not establish that the sample is sufficient. An actual test uses sample deviation and assumes independent trades from a stable distribution.

Does trade frequency matter when judging expectancy?

Trade frequency matters even though expectancy is a per-trade figure. The total over a past period equals expectancy multiplied by the trades closed in it. Frequency also sets how long a sample takes to build: 144 trades take 12 months at 12 trades a month, or 3 months at 48. Closer stops can also make a fixed cost a larger share of R.

Reviewed 25 September 2026. Facts were checked against the linked sources on that date. Nothing in this article was tested on a trading account.

Related reading

Sources

  1. Van Tharp Institute – A short lesson on R and R multiples (PDF), accessed 25 September 2026.
  2. TradingView – Expected payoff, accessed 25 September 2026.
  3. TradingView – Pine Script v6 User Manual: Strategies, accessed 25 September 2026.
  4. MetaQuotes – MetaTrader 5 Help: Trading Report (for advanced users), accessed 25 September 2026.
  5. PineConnector – Trading analytics: performance metrics and expectancy example, accessed 25 September 2026.
  6. NIST/SEMATECH – e-Handbook of Statistical Methods: Confidence limits for the mean, accessed 25 September 2026.
  7. TradingView – Pine Script v6 FAQ: Strategies, accessed 25 September 2026.
  8. QuantMonitor – System Quality Number (SQN): formula and rating table, accessed 25 September 2026.
  9. MetaQuotes – MetaTrader 5 Help: Testing Report, accessed 25 September 2026.
  10. PineConnector – Syntax: loss-based sizing, accessed 25 September 2026.
  11. PineConnector – Frequently asked questions: price differences, accessed 25 September 2026.
  12. LuxAlgo – Library: Profit factor, accessed 25 September 2026.

PineConnector executes the instructions you send it. It does not select trades, manage money, or hold funds. Trading carries risk, and past performance of any strategy does not indicate future results.


Leave a comment

Back To PiCo Blog

Ready when your strategy is

You bring the strategy.We bring the infrastructure.

Connect TradingView to MetaTrader, choose where MT5 runs and put the full PineConnector workflow through its paces from your first month.

Strategy and trading decisions remain yours. The MT5 environment can be ours.

PineConnector Edge

Run the full PineConnector workflow.

$59/mo at launch

Core plan · 1 connection · 1 hosted MT5 environment

Try Core for $7

7 days of Core for $7, then $59/month at the launch price unless you cancel.