Forex scalping strategy: math formula for expectancy
A forex scalping strategy with a 72% win rate can produce negative net returns. The failure point is arithmetic. Small average wins leave limited margin for spread, commission, slippage, and execution latency.
Evan Hayes·Updated: July 22, 2026·12 min read

A system that appears profitable in a chart replay can fail after live trading costs are applied.
Expectancy measures the average amount a strategy is expected to gain or lose per trade. It does not predict the next trade. It audits whether the distribution of completed trades has a positive mathematical edge.
The base forex expectancy formula is:
Expectancy = (Win Rate × Average Win) − (Loss Rate × Average Loss)
Loss rate equals:
Loss Rate = 1 − Win Rate
For scalpers, gross expectancy is only an intermediate result. The relevant figure is net expectancy after all execution costs.
The mathematical foundation of scalping expectancy
A scalping system generates many small outcomes. Each outcome belongs to one of two basic groups:
- A winning trade with an average positive result.
- A losing trade with an average negative result.
The expectancy calculation combines the probability and size of both groups. It should be calculated from closed trades only. Open positions distort the distribution.
Assume a strategy has the following record over a completed sample:
- Win rate: 60%
- Loss rate: 40%
- Average winning trade: $50
- Average losing trade: $40
The gross expectancy is:
(0.60 × $50) − (0.40 × $40) = $14
The strategy produces a gross expected value of $14 per trade. This is not $14 of guaranteed profit. It is the average result implied by the observed distribution.
If the system executes 100 trades under equivalent conditions, the expected gross result is approximately $1,400 before transaction costs. Dispersion around that figure can be large. Expectancy does not eliminate drawdown, sequence risk, or regime dependence.
For a forex scalping strategy, the calculation must then include costs:
Net Expectancy = Gross Expectancy − Spread Cost − Commission − Slippage − Other Execution Costs
A practical transaction-cost figure should be measured in the same unit as the trade result: account currency, pips, or R-multiples. Mixing units invalidates the calculation.
A positive backtest expectancy is not a positive trading expectancy until execution costs have been deducted.
The distinction is material because scalping targets are often close to the bid-ask spread. A one-pip deviation in fill quality can materially alter the result of a system targeting several pips.
Why gross win rates deceive scalpers
Win rate is a frequency metric. It says nothing about payoff asymmetry.
A system can win often and still lose money. This occurs when average losses are too large relative to average wins. Scalpers are exposed to this structure when profits are taken quickly while stops remain wide enough to absorb short-term variance.
Consider the following record:
| Parameter | Value |
|---|---|
| Win rate | 72% |
| Loss rate | 28% |
| Average win | $35 |
| Average loss | $85 |
The gross expectancy is:
(0.72 × $35) − (0.28 × $85) = $1.40
The system has only $1.40 of gross expectancy per trade. A commission and spread burden greater than $1.40 makes the system net negative. The 72% win rate is therefore operationally irrelevant without cost analysis.
The opposite structure can also work. A system with a lower win rate may retain positive expectancy if its average winners exceed its average losers by a sufficient margin.
Assume:
| Parameter | Value |
|---|---|
| Win rate | 40% |
| Loss rate | 60% |
| Average win | 2.5R |
| Average loss | 1R |
The expectancy is:
(0.40 × 2.5R) − (0.60 × 1R) = 0.40R
This produces an expectancy of +0.40R per trade before costs. The win rate is below 50%, but the payoff distribution is positive.
This is the central error in evaluating scalping profitability. Win rate is often treated as a verdict. It is only one input. The complete calculation requires:
1. The percentage of trades that close positive.
2. The average size of positive trades.
3. The average size of negative trades.
4. The full cost of entering and exiting.
5. The stability of those values across the sample.
A high hit rate can also conceal tail risk. If a strategy captures small gains repeatedly and occasionally absorbs a loss several times larger than the average win, the reported win rate may remain high until a small group of losses erases prior gains.
Accounting for the hidden costs of high-frequency trading
Costs are not static across sessions, currency pairs, or market conditions. A scalper operating EUR/USD during liquid hours faces a different spread and slippage environment from the same system trading a thinner pair or entering during a macroeconomic release.
The cost model must be attached to the trade log rather than assumed at the portfolio level.
The relevant components are:
- Spread. The difference between bid and ask at entry and exit. It is a direct reduction in realized return.
- Commission. A fixed or variable charge per lot, side, or round trip. It must be converted into the same unit used for expectancy.
- Slippage. The difference between the intended execution price and the actual fill price. Slippage can be favorable or adverse, but a conservative model should not assume favorable fills offset adverse ones.
- Latency. Delay between signal generation, order transmission, broker processing, and fill. Latency does not always create a visible cost, but it can shift the realized entry or exit outside the tested price.
- Stop-loss execution. A stop is a trigger condition, not necessarily a guarantee of a precise fill. The realized loss may exceed the planned loss during rapid price movement.
A basic net calculation in pips can be written as:
Net Expectancy in Pips = Gross Expectancy in Pips − Average Round-Trip Cost in Pips
Suppose a strategy produces:
- Win rate: 58%
- Average win: 4.2 pips
- Average loss: 4.0 pips
Gross expectancy:
(0.58 × 4.2) − (0.42 × 4.0) = 0.756 pips
If the combined average round-trip spread, commission, and slippage cost is 0.9 pips, the result becomes:
0.756 − 0.9 = −0.144 pips
The strategy is net negative despite a favorable win rate and a positive gross expectancy.
This is why a historical test based on mid-prices has limited value for short-duration systems. Mid-price data excludes the executable bid-ask structure. A chart can show a target touched while the executable side of the market never reached the required price.
A cost model should be segmented where sufficient data exists. At minimum, separate results by:
- Currency pair.
- Trading session.
- Long and short direction.
- Market conditions with normal and elevated volatility.
- Entry type: market, stop, or limit.
- Broker execution environment.
Averages can conceal unstable execution. A system with a 0.15R gross edge may survive under one cost distribution and fail under another. The margin is too narrow for aggregation to be trusted.
In scalping, execution is part of the strategy logic. It is not an administrative deduction after the signal is generated.
Applying the R-multiple framework to short-term setups
Dollar values depend on position size. R-multiples remove that dependency.
In the R framework, 1R is the initial risk on a trade. If the planned stop-loss is $100 from entry, then a full planned loss is −1R. A $200 gain is +2R. A $50 loss is −0.5R.
The expectancy formula becomes:
Expectancy (R) = (Win Rate × Average Win in R) − (Loss Rate × 1R)
This formulation assumes the average losing trade is exactly −1R. If losses differ materially from the planned stop, the formula should use the observed average loss in R rather than substituting 1R.
For a short-term setup, the audit sequence is direct:
1. Define the initial stop distance before entry.
2. Convert each realized result into R.
3. Record actual rather than intended exit values.
4. Calculate average winning R and average losing R.
5. Deduct spread, commission, and slippage in R.
6. Recalculate net expectancy.
For example, assume an account risks $100 per trade. The strategy produces an average winner of $130 and an average loser of $100. The average win is +1.3R. The average loss is −1R.
With a 55% win rate:
(0.55 × 1.3R) − (0.45 × 1R) = 0.265R
The gross expectancy is +0.265R per trade.
If the average all-in execution cost equals $15, then cost equals 0.15R. Net expectancy becomes:
0.265R − 0.15R = 0.115R
The system remains positive, but the cost burden has removed more than half of the observed edge.
For intraday systems and scalping, a net expectancy in the range of 0.1R to 0.3R per trade is a usable reference range rather than a performance guarantee. Swing systems can show higher expectancy ranges because targets are larger relative to execution costs. The comparison is not direct. Holding period changes exposure, trade frequency, financing effects, and variance.
R-multiples also make position sizing auditable. A trader using fixed fractional risk can compare trades across different pairs and stop distances without treating nominal pip values as equivalent. A 6-pip stop on EUR/USD and a wider stop on another pair can both be normalized to 1R if the monetary risk is held constant.
Profit factor is a secondary diagnostic
Forex profit factor calculation is useful, but it should not replace expectancy.
Profit factor is:
Gross Profit ÷ Gross Loss
A value above 1.0 indicates gross profits exceeded gross losses over the sample. It does not show the average expected result per trade, nor does it directly account for frequency.
A system can have an acceptable profit factor and still be unsuitable for scalping if:
- The profit factor is calculated before commissions and slippage.
- A few large winners account for most gross profit.
- The average winning trade is too small to absorb cost variation.
- The sample contains too few trades.
- The observed result depends on one session or one currency pair.
- Drawdown exceeds the capital allocation rule despite positive expectancy.
Expectancy answers a per-trade question. Profit factor answers an aggregate ratio question. Both should be recorded, but neither is sufficient alone.
A compact audit table should include the following fields:
| Metric | Function in the audit |
|---|---|
| Trade count | Measures sample depth |
| Win rate | Measures outcome frequency |
| Average win | Measures positive payoff magnitude |
| Average loss | Measures negative payoff magnitude |
| Gross expectancy | Measures edge before execution friction |
| Net expectancy | Measures edge after execution friction |
| Profit factor | Measures gross profit relative to gross loss |
| Maximum drawdown | Measures observed adverse equity movement |
| Standard deviation of R results | Measures dispersion around the mean |
| Average holding time | Identifies whether cost assumptions match the strategy type |
The standard deviation of trade results matters because two systems can have equal expectancy and substantially different distribution risk. A +0.20R expectancy with clustered outcomes is not operationally identical to +0.20R generated by infrequent large gains and repeated small losses.
Statistical significance begins at 30 trades
Expectancy calculated from ten trades is descriptive, not reliable. One outlier can control the average. Scalping systems often generate enough observations to avoid this problem, but only if the records are retained and classified correctly.
A minimum sample of 30 completed trades is commonly used as the lowest threshold for a preliminary calculation. A sample of 100 to 200 trades provides a clearer view of the distribution.
The sample should not be treated as one undifferentiated block. A valid audit tests whether the result persists across relevant subsets. For example:
- Does net expectancy remain positive after separating London and New York session trades?
- Does it remain positive on the intended currency pair rather than across unrelated pairs?
- Does it remain positive after including all rejected, manually closed, and partially filled trades?
- Does one news-driven outlier account for a disproportionate share of profit?
- Does the result remain positive after adverse slippage assumptions are applied?
A system with 150 trades can still be statistically weak if nearly all profits came from a narrow market condition that cannot be identified or repeated. The raw number of trades is necessary but not sufficient.
The trade log should preserve the information required to reproduce each calculation:
- Timestamp of signal and actual fill.
- Bid, ask, and executed price where available.
- Planned stop and realized stop exit.
- Position size and initial monetary risk.
- Gross and net profit or loss.
- Spread, commission, and estimated slippage.
- Session, pair, direction, and setup category.
- Any manual intervention.
Without this record, optimization becomes narrative. A trader can claim that a filter improved performance without being able to identify whether the change improved expectancy, reduced standard deviation, or merely removed a small set of losing trades from a limited sample.
Van Tharp’s expectancy score adds opportunity to the calculation:
Expectancy Score = Expectancy × Number of Trades × 365 ÷ Days in Historical Test
This can help compare systems with different trade frequencies. A lower-expectancy strategy that produces valid opportunities more often may have greater annualized opportunity than a higher-expectancy strategy with few signals. The metric remains dependent on the quality of the underlying sample and the assumption that historical frequency can persist.
The required test before live deployment
A forex scalping strategy should be evaluated in a sequence that prevents gross statistics from being mistaken for a tradable edge.
First, calculate gross expectancy from completed outcomes. Second, convert all costs into the same measurement unit. Third, calculate net expectancy. Fourth, inspect dispersion, drawdown, and the concentration of returns. Fifth, test whether the result survives across sessions, pairs, and execution conditions.
The minimum result is not a high win rate. It is a positive net expectancy observed over an adequate sample, with a cost model that reflects executable prices.
A strategy showing +0.25R gross expectancy and +0.02R net expectancy has little tolerance for spread expansion or slippage. A strategy showing +0.20R net expectancy after conservative costs has a more measurable margin. Neither result guarantees future performance. Both provide a basis for risk allocation.
The final control is position size. A positive expectancy system can still fail if trade risk is too large relative to the expected drawdown. The appropriate conclusion is narrow: calculate the edge, subtract the friction, measure the variance, and size exposure so that a normal losing sequence does not terminate the test.