Skip to content

Trading metrics

Average Trade Profit: What It Measures and Why Costs Decide It

Average trade profit, often shortened to average trade, is net profit divided by the number of closed trades: the mean result per trade after whatever costs the report includes. It equals expectancy in currency when breakeven trades count as zero. TradingView reports it as Average PnL and Expected payoff; MetaTrader 5 reports Expected Payoff. Compare it with your cost per trade: when spread, commission and slippage absorb most of the pre-cost average, a small change in costs can erase it.

This page belongs to the trading metrics library, which uses one set of formulas across every page. An earlier version of this page used “average trade gain” for the average of winning trades only; that figure is the average win, compared below. All numbers are illustrative. Automation executes a strategy's rules; it does not create an edge.

Illustrative cover for average trade profit: a row of winning and losing trade bars averaged into one net bar, with the official PineConnector logo.
The average trade spreads the net result of every closed trade evenly across the trade count.

Average trade at a glance

  • Definition: net profit ÷ number of closed trades.
  • Same value from averages: (W × AW) − (L × AL), the currency form of expectancy, with breakevens counted as zero. The form needs at least one winner and one loser; otherwise use net profit ÷ closed trades.
  • Link to costs: average trade after costs = average trade before costs − average cost per trade.
  • Cost headroom: the net average trade equals the extra cost per trade that would take it to zero.
  • Not the same as: the average win, which divides gross profit by winning trades only.
  • Where to find it: TradingView's Average PnL and Expected payoff, Pine Script's strategy.avg_trade, MT5's Expected Payoff and Average P/L, and Expectancy in PineConnector Analytics.

What is the average trade formula?

Average trade = net profit ÷ number of closed trades

  • Net profit is the sum of every closed trade's result in account currency, after the costs the report deducts. TradingView's Net PnL is the sum of the closed trades in its list of trades.[1]
  • Closed trades include winners, losers and breakevens. With no closed trades, the average is undefined. TradingView counts a trade as even when its profit after commission and any simulated slippage is exactly zero.[2]
  • Open positions are left out. TradingView's Average PnL uses realised results only and ignores floating profit or loss.[3]

Average trade = (W × AW) − (L × AL)

W and L are the win and loss rates: winning and losing trades, each divided by all closed trades. AW is the average win and AL the average loss as a positive amount. With breakevens kept in the count but in neither W nor L, W × AW is gross profit per trade and L × AL is gross loss per trade. The difference is net profit per trade, which is why the average trade and trading expectancy are the same number in currency. TradingView calculates Expected payoff as total Net PnL divided by the number of completed trades.[4]

The weighted form needs both averages to exist. AW is undefined when a log has no winning trades, and AL is undefined when it has no losing trades, because each divides by its own group's count. In either case, use net profit ÷ closed trades directly; with no closed trades at all, the average trade is undefined.[5][6]

Average trade after costs = average trade before costs − average cost per trade

Every cost of a round trip comes off that trade's result: the spread, commission, slippage and any swap. Subtract only costs not already included in the reported result or fill prices. The trade count does not change, so the identity holds even when costs turn a small winner into a loser; only W, L, AW and AL shift. TradingView's Average PnL article makes the practical point: the figure “must remain significantly higher than combined commission paid and estimated slippage”.[3]

Is the average trade the same as the average win?

No. The average win divides gross profit by winning trades. The average trade divides net profit by all closed trades, so losses and the win rate are inside it. TradingView defines Average profit as total profit from winners divided by the number of winning trades, and Average loss the same way for losers.[5][6] MT5's tester report calls them Average profit trade and Average loss trade.[7]

Illustrative example, not a recommendation. The earlier version of this page added three winners of 200, 150 and 250 USD and reported 600 ÷ 3 = 200 USD as the “average trade gain”. Add two losers of 300 and 100 USD to the same list:

  1. Average win: 600 ÷ 3 = 200 USD.
  2. Average loss: 400 ÷ 2 = 200 USD.
  3. Average trade: (600 − 400) ÷ 5 = 40 USD.
  4. Check: W = 3 ÷ 5 = 0.6 and L = 0.4, so (0.6 × 200) − (0.4 × 200) = 120 − 80 = 40 USD.

The average win stays at 200 USD whatever the losers do. The payoff ratio, average win ÷ average loss, is 1.0 here, and only the win rate keeps the average trade positive.

Illustrative diagram of five closed trades, +200, +150, +250, -300 and -100 USD, giving an average win of 200, an average loss of 200 and an average trade of 40 USD.
Illustrative numbers. The average win and average loss each use part of the list; the average trade divides the net result by every closed trade.

Worked example: average trade before and after costs

Illustrative numbers, not a recommendation or a strategy result. Log A holds 100 closed EURUSD trades of 1.00 lot each in a USD account, with no breakevens. Assume a 100,000-unit contract, so one pip of 0.0001 is worth 10 USD per 1.00 lot. Contract size is broker-specific.

  1. Before costs, 40 winners total 8,000 USD and 60 losers total 6,000 USD. Net: 2,000 USD, so the average trade is 2,000 ÷ 100 = 20 USD, or 2.0 pips.
  2. Assumed round-trip costs per trade: a 0.8-pip spread (8 USD), 6 USD commission and 0.2 pip of slippage (2 USD). Total: 16 USD, or 1.6 pips.
  3. After costs, net profit is 2,000 − (100 × 16) = 400 USD, so the average trade is 400 ÷ 100 = 4 USD, or 0.4 pip.
  4. Check with averages, assuming every winner was larger than 16 USD before costs, so none turns into a breakeven or a loser. The average winner falls to 200 − 16 = 184 USD and the average loser grows to 100 + 16 = 116 USD, so (0.40 × 184) − (0.60 × 116) = 73.6 − 69.6 = 4.0 USD.
  5. Costs take 16 ÷ 20 = 80% of the pre-cost average trade.

The same costs move the profit factor from 8,000 ÷ 6,000 ≈ 1.33 to 7,360 ÷ 6,960 ≈ 1.06. Both metrics stay above break-even, but the average trade shows the margin in money and pips.

Why do costs decide whether the average trade holds up?

An extra cost per trade lowers the net average trade by the same amount. The net average trade therefore equals the extra cost per trade that would bring it to zero. Divide by the pip value of the position to express that headroom in pips.

  • Log A, 4 USD per trade: 4 ÷ 10 = 0.4 pip of headroom on 1.00 lot. Slippage of 0.4 pip instead of 0.2 adds 2 USD and leaves 2 USD. Slippage of 0.6 pip adds 4 USD and leaves 0.
  • Log B, 100 USD per trade before costs: a second illustrative log, also traded at 1.00 lot. The same 16 USD of costs leaves 84 USD, or 8.4 pips of headroom. The extra 4 USD of slippage leaves 80 USD.
Illustrative stacked bars: log A's 20 USD pre-cost average trade loses 8 to spread, 6 to commission and 2 to slippage, leaving 4 USD; log B's 100 USD average keeps 84 USD after the same 16 USD.
Illustrative round-trip costs for 1.00 lot EURUSD at 10 USD per pip, not measured broker costs. The same 16 USD is 80% of one average trade and 16% of the other.

Trading more similar trades does not change the ratio: in log A, every 100 trades pay 1,600 USD of costs out of 2,000 USD earned before costs. Transaction costs in algorithmic trading breaks the round trip into its parts, and the slippage guide covers why fills move.

There is no universal ratio of average trade to cost that makes a strategy robust. What the arithmetic shows is sensitivity. Log A breaks even if costs are 25% higher than assumed, at 20 USD instead of 16. Log B breaks even only at 100 USD of costs, 6.25 times the assumed amount. A small modelling gap between a backtest and a broker matters in the first case and barely registers in the second.

Where do TradingView and MT5 show the average trade?

Labels as of 25 September 2026:

Scroll horizontally to read every column.

Where Label What the documentation says
TradingView strategy report, Metrics tab, Trades analysis Average PnL Net PnL divided by completed trades, realised results only.[3] The Overview sub-tab shows the average profit or loss.[8]
TradingView strategy report, Return details Expected payoff Total Net PnL ÷ number of completed trades,[4] for all, long and short trades.[8]
Pine Script v6 strategy.avg_trade The sum of all profits and losses divided by the number of closed trades. [9] strategy.avg_trade_percent averages each trade's percentage result.[13]
MT5 Strategy Tester report Expected Payoff “the average return of one deal”[7]
MT5 Trading Report, Long/Short tab Average P/L Average profit or loss per deal in money, split into long and short. A second Average P/L field gives it as a percentage of the total result.[10]
MT5 account statement Expected Payoff The average return of one deal, where each deal's result is profit or loss minus commission, fees and swap.[11]
PineConnector Analytics Expectancy The average gain or loss per trade from the historical win rate and average win and loss. Needs MT5 EA v3.41 or later; not available for MT4 in the published guide.[12]

TradingView also calls its backtest panel the strategy report, “formerly known as the Strategy Tester”.[13] The TradingView strategy report guide and the MT5 Strategy Tester report guide map the neighbouring fields. MetaQuotes documents the MT5 Strategy Tester for Expert Advisors.[14] In a TradingView-to-MT5 workflow, the backtest figure comes from TradingView's strategy report and the live figure from the MT5 account's reports.

How does the average trade change from a TradingView backtest to an MT5 account?

A PineConnector workflow runs from an idea to a measurable rule, a TradingView alert and an MT5 order. The stages are separate events: the alert condition becoming true, the alert triggering, webhook delivery, PineConnector processing the signal, the EA's order request, and broker acceptance, the deal and the position. Four differences move the average trade between the two ends.

  • Costs the backtest left out. A Pine strategy applies no commission unless one is specified, and its default slippage is 0 ticks.[8] TradingView suggests the slippage setting can also stand in for the spread.[15] Its Commission paid figure excludes slippage.[16]
  • The broker's prices. In MT5, a security is generally bought at the Ask and sold at the Bid, so the bid-ask spread sits inside each deal.[17] TradingView and MetaTrader can use different data feeds, quotes, spreads and timestamps.[18]
  • Overnight swap. The MT5 account statement deducts swap from each deal's result.[11] The TradingView strategy properties page lists commission and slippage settings but no swap setting.[15] See swap and rollover fees.
  • A different set of trades. A missed entry can leave a simulated trade absent from the broker account; a missed exit can leave an existing position open after the backtest's trade has closed. An alert is not, by itself, proof of a matching simulated trade, so compare the actual alert and broker records with the strategy's list of trades. An MT5 Trading Report covers the account, not one strategy: its Profit/Loss tab splits results into manual, algorithmic and copy trading.[10]

PineConnector documents one entry filter that touches costs. Before using the illustrative message below, use a connected demo setup and choose your own symbol, size and limit. Replace LicenseID with the intended connection ID and confirm every account attached to it. Paste destination: the TradingView alert's Message field. This is not an instruction to place a live trade.[19]

LicenseID,buy,EURUSD,vol_lots=1,sl_pips=20,spread=0.8

The spread= parameter sets a maximum entry spread in PineConnector pips, measured as (Ask − Bid) ÷ pip size when the signal arrives. One PineConnector pip is 10 of the symbol's quoting points, so 0.0001 on a five-decimal EURUSD quote. A spread equal to the limit passes, and passing is not a confirmed order.[19] Above the limit, the entry is filtered out. The filter checks the entry spread only; commission, slippage, swap and the exit remain outside it. An entry alert it filters out can leave out of the account a trade the backtest counted. Test on a demo account first, and check which costs an Analytics figure includes before comparing it with a backtest.[12] The backtest-to-demo reconciliation steps compare the two trade lists one signal at a time.

What does the average trade not tell you?

  • How reliable the mean is. Suppose every winner in log A were +184 USD and every loser −116 USD after costs. The 100 results would have a sample standard deviation of about 148 USD, so the standard error is 148 ÷ √100 ≈ 14.8 USD. NIST gives confidence limits for a mean as the average ± t × s ÷ √N.[20] For independent trades from a stable distribution, an approximate 95% t interval with t ≈ 1.98 is roughly −25 to +33 USD, which includes zero. Correlated trades or changing conditions can invalidate this uncertainty estimate. See how many trades a backtest needs and the System Quality Number.
  • Whether one trade carries it. Illustrative: if log A's 400 USD came from one +1,000 USD trade and 99 trades netting −600 USD, the average is 4 USD with that trade and about −6.06 USD without it.
  • Changing position size. Larger positions weigh more in a currency average. R-multiples put trades of different sizes on one scale.
  • How trades were counted. MT5's Trading Report counts exit, partial exit and reversal deals as trades,[10] so a position closed in two parts adds two results. TradingView's Average PnL page words its denominator as “the total volume of completed trades”.[3] If figures disagree, divide net profit by the trade count yourself.
  • What comes next. MetaQuotes says Expected Payoff “is considered to display the expected return of the next trade”,[7] yet it is an average of past deals. PineConnector's Analytics guide says a positive expectancy does not ensure that the next trade, or a future period, will be profitable.[12] Why TradingView and MT5 results differ lists further causes.

Frequently asked questions

What is average trade profit?

Average trade profit is a strategy's net profit divided by its number of closed trades, which gives the mean result per trade after the costs a report includes. Illustrative: 400 USD of net profit over 100 closed trades is 4 USD per trade. Open positions are excluded, and breakeven trades stay in the count.

What is average trade net profit?

Average trade net profit is the average trade stated after costs: net profit, after the spread, commission, slippage and swap each trade paid, divided by the number of closed trades. A backtest includes only the costs it models. Illustrative: 20 USD per trade before 16 USD of round-trip costs becomes 4 USD per trade after them.

What is the difference between average win, average loss and average trade?

Average win is gross profit divided by winning trades, and average loss is gross loss divided by losing trades. Average trade divides net profit by all closed trades, so it combines both with the win rate. Illustrative: winners of 200, 150 and 250 USD and losers of 300 and 100 USD give an average win of 200, an average loss of 200 and an average trade of 40 USD.

Is average trade the same as expectancy?

Yes, in currency terms, when breakeven trades count as zero. Expectancy is (win rate × average win) − (loss rate × average loss), which works out to net profit ÷ closed trades; with no winners or no losers, use net profit ÷ closed trades directly. TradingView reports the figure as Expected payoff and Average PnL, and MetaTrader 5 reports Expected Payoff. Expectancy in R divides each result by its initial risk first.

How large should the average trade be compared with trading costs?

No universal ratio exists. TradingView's Help Center says Average PnL should remain significantly higher than commission paid plus estimated slippage. The underlying arithmetic: the net average trade equals the extra cost per trade that would take it to zero. Illustrative: 4 USD per trade on 1.00 lot of EURUSD, at 10 USD per pip, leaves 0.4 pip of headroom.

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

Sources

  1. TradingView – Net PnL, accessed 25 September 2026.
  2. TradingView – Even trades, accessed 25 September 2026.
  3. TradingView – Average PnL, accessed 25 September 2026.
  4. TradingView – Expected payoff, accessed 25 September 2026.
  5. TradingView – Average profit, accessed 25 September 2026.
  6. TradingView – Average loss, accessed 25 September 2026.
  7. MetaQuotes – MetaTrader 5 Help: Testing Report, accessed 25 September 2026.
  8. TradingView – Pine Script v6 User Manual: Strategies, accessed 25 September 2026.
  9. TradingView – Pine Script v6 Reference Manual: strategy.avg_trade, accessed 25 September 2026.
  10. MetaQuotes – MetaTrader 5 Help: Trading Report, accessed 25 September 2026.
  11. MetaQuotes – MetaTrader 5 Help: Trading Report (for advanced users), accessed 25 September 2026.
  12. PineConnector – Trading analytics, accessed 25 September 2026.
  13. TradingView – Pine Script release notes, accessed 25 September 2026.
  14. MetaQuotes – MetaTrader 5 Help: Strategy Testing, accessed 25 September 2026.
  15. TradingView – Strategy properties, accessed 25 September 2026.
  16. TradingView – Commission paid, accessed 25 September 2026.
  17. MetaQuotes – MetaTrader 5 Help: Basic principles, accessed 25 September 2026.
  18. PineConnector – Frequently asked questions: price differences, accessed 25 September 2026.
  19. PineConnector – Syntax: spread=, accessed 25 September 2026.
  20. NIST/SEMATECH – e-Handbook of Statistical Methods: Confidence limits for the mean, 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.

Back to PiCo Blog

Run your strategies on our managed infrastructure

Bridge routes TradingView alerts to MetaTrader. Edge hosts and runs MT5 for you.

Core Trial

Then $59/month unless you cancel.

$7for 7 days

  • 3 account connections
  • 1 hosted MT5
  • Unlimited alerts, routed by Bridge
Try Core for $7

Trusted by 66,000+ traders in 156 countries and territories · <1s typical latency

Your Edge MT5 runs in our cloud · nothing to install · built on Microsoft Azure