Header Ads

Is Your Forex Strategy Profitable After Costs? A Practical Audit

All figures below are hypothetical audit examples, not broker quotations or results from a tested strategy. The worked cost scenarios assume EUR/USD and a USD account.

A forex strategy is profitable after costs when its trading gains exceed its losses and every applicable trading charge over the period being measured. The useful question is how much of that surplus survives realistic execution assumptions. A strategy that earns a few tenths of a pip per trade under one estimate can change sign when spreads widen or an overlooked commission is included.

Start with the trade records you actually have. Establish which costs are already inside their profit figures, calculate the remaining surplus, then identify what could use it up. This audit goes beyond comparing advertised spreads and their basic cost: it connects cost assumptions to the strategy's trade frequency, holding time, position size and evidence quality.

Profit After Costs headline beside a trader reviewing spread, commission, swap and slippage panels.
AI-generated editorial illustration. The panels identify cost categories; they are not measured trading results.

1. Identify the profit number before deducting anything

A price-based result, an account statement and a frictionless backtest can all contain a column named “profit.” They do not necessarily start from the same calculation. Write a one-sentence definition above your spreadsheet so every adjustment has a reason.

Choose the correct starting point for the audit
Your starting recordWhat to reconcileCommon mistake
Actual entry and exit fillsPrice P&L plus separately recorded, signed fees and financing.Subtracting estimated spread and slippage again after the fills already reflect them.
A backtest with simulated Bid/Ask executionWhich spread, commission, financing and fill assumptions the test applied.Assuming either that everything was included or that nothing was included.
A reference-price or frictionless backtestExplicit conversion from the reference path to executable prices, then remaining charges.Presenting an unadjusted signal return as money available to the trader.

For an MT4 custom export, OrderProfit() excludes commission and swap. Those recorded components are available separately through OrderCommission() and OrderSwap(). Add their signed values when reconciling the selected order, and check any separately booked account adjustments. This is a definition of those functions, not a claim that every standard report omits charges.

Suppose a 10,000-unit EUR/USD buy fills at 1.10010 and closes at 1.10100. Its price gain is 0.00090 × 10,000 = $9. If its recorded commission is −$0.70 and swap is −$0.20, the reconciled result is $8.10. An additional estimated spread deduction would misstate that record. Use the MT4 history export and reconciliation guide when assembling the underlying ledger.

2. Calculate net expectancy in a consistent unit

For a completed sample, net expectancy means average net result per trade. If the winning and losing averages already include all relevant costs, calculate it as the winning proportion multiplied by the average winner, minus the losing proportion multiplied by the average loss magnitude. Alternatively, sum every net trade result and divide by the trade count. Include zero-result trades in that count.

When you deliberately begin with frictionless outcomes, you can subtract the average missing cost from that average result. Keep the arithmetic in one unit: account currency, pips for comparable positions, or multiples of a defined initial risk. A $4 charge cannot be subtracted directly from an expectancy expressed as 0.2R without converting it using the trade's original risk amount.

Changing lot sizes complicates a pip average. Ten pips on a larger position can matter more to the account than several smaller trades combined. Calculate monetary P&L trade by trade and retain position sizes. A normalized view can help compare the strategy's decisions, but the actual account result still needs its own reconciliation.

3. Work through an 80-trade cost audit

Consider an invented sample of 80 completed trades at a constant 0.10 lot. Assume one lot represents 100,000 EUR, the account currency is USD, and one conventional EUR/USD pip is 0.0001. Position size is therefore 10,000 EUR and pip value is 10,000 × 0.0001 = $1. These are stated example specifications, not defaults for every symbol.

The frictionless record contains 36 wins averaging 18 pips and 44 losses averaging 10 pips. Its winning proportion is 45%. Before costs, the calculation is (0.45 × 18) − (0.55 × 10) = 2.6 pips per trade. Across the sample, 648 pips of gains minus 440 pips of losses leaves 208 pips, or $208.

Hypothetical baseline: every deduction is absent from the starting record
ComponentCalculationSample effect
Frictionless trading result36 × $18 − 44 × $10+$208
Spread allowance0.8 pip × $1 × 80 trades−$64
Round-trip commission$7 per lot × 0.10 lot × 80−$56
Additional adverse slippage0.3 pip across entry and exit × $1 × 80−$24
Net financing debitAssumed total for positions crossing rollover−$12
Result after these assumptions$208 − $64 − $56 − $24 − $12+$52

The remaining average is $52 ÷ 80 = $0.65 per trade, equivalent to 0.65 pip at this fixed size. The deductions consume $156 of the original $208, or 75% of the frictionless surplus. That describes this invented sample; it establishes neither a future win rate nor a durable trading edge.

Here the spread allowance is the assumed total round-trip drag relative to the frictionless reference. Slippage is an additional entry-plus-exit allowance beyond that spread. These definitions prevent overlapping deductions. If changing fills changes whether a trade occurs, which protective order triggers or how the next position is sized, a flat adjustment is insufficient: rerun the strategy with the changed assumptions.

4. Find the point where costs erase the surplus

One average spread hides the possibility that the strategy operates precisely when trading becomes expensive. Keep the same hypothetical trades and sizes for an initial sensitivity exercise, then increase clearly identified costs. The commission below remains $0.70 per completed 0.10-lot trade and financing remains a $12 sample debit.

Arithmetic scenarios using the same 80 frictionless outcomes
Assumption setSpread allowanceExtra round-trip slippageTotal sample costsAdjusted result
Baseline0.8 pip0.3 pip$156+$52
Wider execution costs1.4 pips0.6 pip$228−$20
More demanding stress2.0 pips0.9 pip$300−$92

The frictionless average provides a total cost budget of $2.60 per trade before the sample reaches zero. Financing already uses $12 ÷ 80 = $0.15 of that budget. With commission and baseline slippage using another $1.00, the remaining break-even spread allowance is $1.45, or 1.45 pips. This is a sample sensitivity boundary, not a suitable spread limit to adopt without testing.

Use the ForexSignal24 spread and commission calculator for the spread-plus-commission portion with your own specifications. It takes manual inputs, expects round-trip commission per lot, and excludes swap and slippage. Add those remaining components separately. The scenarios above were calculated from their stated assumptions; they are not calculator output or live broker prices.

5. Check points, pips and the commission basis

A tenfold unit error can overwhelm the edge being audited. The MQL4 symbol-property reference distinguishes point size, digits, spread in points, tick value and tick size. On a five-decimal EUR/USD quote, 20 points of 0.00001 equals 0.00020, or two conventional pips. On another symbol, inspect the specification before reusing that conversion.

For a simple linear forex calculation, units multiplied by pip size gives the pip value in the quote currency. Convert that value into the account currency when they differ. The necessary conversion can change through time; a current conversion rate is an approximation when reconstructing old trades. Metals, indices and other contracts need their own contract and tick conventions.

Read whether commission is quoted per side, per completed round trip, per lot or per monetary volume. An illustrative $3.50 per lot per side becomes $7 per lot round trip, then $0.70 at 0.10 lot. Minimum charges and currency conversion can prevent simple proportional scaling. OANDA's Singapore pricing documentation illustrates the distinction between spread-only and spread-plus-commission plans; your own account's terms determine the applicable calculation.

6. Measure financing and execution at the relevant times

Financing follows the account's rollover convention, not merely the number of hours a position was open. A brief trade that crosses the relevant cutoff can incur a charge. As a provider-specific example, OANDA Corporation's financing documentation describes daily debits or credits, changing rates and multi-day adjustments around settlement dates and holidays. Do not assume its cutoff or calculation applies to another broker.

For your audit, preserve the actual signed financing entry when available. If reconstructing a test, record the rate source, direction, position size and number of chargeable days. “Swap-free” also needs the account's specific terms checked; a marketing label alone does not define every possible holding charge.

Measure slippage against an explicit executable benchmark: the relevant Ask for a buy or Bid for a sell at the defined decision or submission time. Using a midpoint while also subtracting the full spread mixes two different benchmarks. Keep entry and exit observations separate and define whether positive numbers mean a cost or an improvement.

Slippage can improve or worsen a fill. OANDA Europe's execution policy discusses both directions and the effect of volatility and timing. That policy describes its service; it does not supply your historical measurements. Keep favorable fills in the ledger, while examining adverse outliers and missing executions rather than relying entirely on the mean.

7. Diagnose where the strategy spends its edge

Group trades using information recorded before their outcomes: intended session, order type, holding category and strategy version. Compare trade count, net result, cost per trade and total exposure for each group. If most of the cost occurs in a small group, inspect whether wider spreads, overnight holds or execution errors explain it.

A group with three profitable trades is a lead for investigation, not enough evidence to redesign the system. Choosing the best hour after examining dozens of categories adds another round of selection. Freeze any proposed filter as a new version and evaluate it prospectively. Keep the unfiltered result visible so the apparent improvement can be traced.

Also separate trading profitability from the economics of running the strategy. A paid data subscription or VPS may be a monthly expense rather than a per-trade deduction. If a hypothetical $30 monthly operating bill belongs entirely to the same audit period, the example's $52 trading surplus becomes $22 after that bill. Allocate shared expenses transparently and avoid counting an annual subscription as a monthly charge.

8. Turn the audit into a decision

When net performance disappears under assumptions close to observed conditions, increasing lot size does not repair the calculation. It increases the money attached to both the signal and its costs. Investigate a specific change: a different execution window, fewer low-value trades, an appropriate account pricing plan or a revised strategy. Each changes the question and needs its own evidence.

Retain the full account path. Two ledgers with the same average net outcome can have different drawdowns, losing sequences and margin demands. The MT4 report guide explains those complementary measures. A cost audit answers whether the recorded surplus survives the stated charges; it cannot establish all the risks of deploying the strategy.

  1. Reconcile: match fills, sizes and signed charges to the account total, identifying deposits and withdrawals separately.
  2. State: identify the test period, version, price reference and cost components already included.
  3. Stress: apply justified alternative assumptions and mark scenarios requiring a full rerun.
  4. Decide: record the unresolved issue and the next observation or change that would address it.

Keep that decision beside the trading journal. If the original strategy rules are still ambiguous, return to the backtesting workflow before interpreting another attractive average. A reproducible cost assumption is more useful than a favorable number whose starting point cannot be explained.

Sources and calculation notes

Documentation checked: 13 October 2026. The arithmetic examples use invented trades and cost assumptions; no strategy performance is claimed.

No comments

Powered by Blogger.