Same Strategy, With and Without Costs: a Full Audit
Last updated: 2026-06-10
In short
We take one realistic strategy — a London-session EUR/USD breakout, 120 trades — and apply the full cost stack step by step. Gross: +234 pips. Net: +95 pips. Costs consumed 59% of the edge, and a single pessimistic assumption (Asian-session spreads) would have erased the rest. If you only bookmark one page on this site, make it this audit — then run it on your own backtest.
The Strategy Under Audit
To keep the audit concrete (numbers are illustrative but realistically proportioned):
- Setup: EUR/USD M15 breakout of the 08:00–10:00 server-time range (GMT+2/+3 server clock — i.e. the London open), stop on the range’s far side, fixed 1.6R target.
- Sample: 120 trades over ~7 months of replay — past the 100-trade credibility threshold.
- Raw results: 51 winners (42.5%) averaging +12.5 pips; 69 losers averaging −5.85 pips.
- Holds: intraday by design, but 18 trades ran past rollover (one Wednesday among them).
- Account to be traded: raw-spread, $3.25/lot/side commission.
Gross = (51 × 12.5) − (69 × 5.85) ≈ +234 pips · gross expectancy +1.95 pips/trade
This is the number a chart-only backtest reports. Now the audit.
The Audit, Line by Line
1. Spread. Raw account, London session: ~0.2 pips average. But 11 entries triggered in the first volatile minute after a news print where spread averaged ~0.9. Charge: 109 × 0.2 + 11 × 0.9 = −31.7 pips. (On bid/ask tick replay this line is already inside the fills — how that works.)
2. Commission. $6.50 round trip ≈ 0.65 pips × 120 trades = −78 pips. Notice commission, not spread, is the dominant per-trade cost on raw accounts — and it’s the line casual backtests forget most often (commission models).
3. Swap. 18 overnight holds + 2 extra Wednesday nights = 20 swap-nights at −0.55 pips/night = −11 pips (swap math).
4. Slippage buffer. Pessimistic flat 0.15 pips × 120 = −18 pips, mostly honoring the stop-fill asymmetry around the 11 news-adjacent entries (slippage rules).
The Table
| Line | Pips | Running total |
|---|---|---|
| Gross result | +234.0 | +234.0 |
| Spread (session-aware) | −31.7 | +202.3 |
| Commission | −78.0 | +124.3 |
| Swap (20 nights) | −11.0 | +113.3 |
| Slippage buffer | −18.0 | +95.3 |
Net expectancy: +0.79 pips/trade — still positive, still tradeable, but 59% of the gross edge went to costs, and every sizing or payout projection made from +234 would have been roughly 2.5× too optimistic.
Sensitivity: the Stress Round
A robust edge survives pessimism. Three stress tests on the net number:
| Stress | Assumption | Net result |
|---|---|---|
| Doubled spread | all entries at 2× session spread | +63.6 pips — survives |
| Asian-session clone | same strategy at 2.5× spread, thinner fills | −8.4 pips — dies |
| Commission +$1/side | broker tier change | +71.3 pips — survives |
The middle row is a genuine finding: this edge is a London edge. The identical rules traded in the Asian session are a losing strategy purely on costs — no chart would ever show you that.
Run This on Your Own Backtest
- Total your gross pips and trade count.
- Charge spread per trade (session-aware, or $0 if your fills came from bid/ask tick replay — e.g. StrategyTune fills against recorded quotes).
- Charge commission per round trip if your account type has it.
- Count overnight holds (+2 per Wednesday) × your broker’s swap rate.
- Subtract a slippage buffer; apply pessimistic gap/limit fill rules.
- Recompute expectancy. Then double the costs and see if it survives.
If step 6 kills the strategy, the market didn’t — the cost structure did, and now you know before funding an account.
Frequently Asked Questions
Why audit in pips rather than money?
Pips normalize across account sizes and make every cost line comparable — commission converts to pips via pip value, swap rates publish per lot per night. Once the net pip expectancy is known, multiplying by your planned position size converts the whole audit to money in one step.
Is 59% cost drag typical?
For intraday strategies with sub-15-pip average winners, costs eating 40-70% of gross is entirely normal — which is exactly why so many strategies that look profitable on charts lose money live. Swing strategies with 50+ pip winners typically lose 5-15% to costs, plus swap if holds are long.
Should I reject any strategy that fails the doubled-cost stress test?
Not automatically reject — but treat it as fragile: trade it only in the exact conditions backtested (session, instrument, account type), at conservative size, and monitor live costs closely. Strategies that pass doubled costs are the ones that tolerate real-world variation.
Can I avoid most of this by trading bigger timeframes?
Largely, yes — cost drag shrinks proportionally as average winner size grows, which is why beginners are often advised toward higher timeframes. The trade-off is fewer trades, so reaching a statistically meaningful sample takes longer, and overnight swap enters the picture.
More in Costs
All Costs →How to Model Spread Costs in a Backtest
Worked example with real bid/ask math.
Swap & Overnight Financing in Multi-Day Backtests
The cost most backtests silently ignore.
Commission Models by Account Type
Raw-spread vs all-in accounts in your numbers.
Slippage: What You Can and Can’t Model
Honest limits of any backtest.
Leverage & Margin in CFD Backtests
Position-sizing math that matches reality.
Why Backtest Profits Disappear Live
A cost-driven audit of the gap.
Practice This in a Free Replay Tool
StrategyTune replays real bid/ask tick data for 70+ instruments in the browser — free, no registration, no downloads. Place simulated trades and see your stats build.
Open StrategyTune