How Much Do Trading Costs Eat? 387 Backtests Compared

Spreads, commissions and slippage, measured across every strategy we have backtested: how much of the profit before costs they took, how often they turned a profit into a loss, and why the strategies that trade most lose most.

ES and NQ futures, gold, forex, Bitcoin, SPY · 54 published tests, 387 versions · no new backtest: every number comes from the published results

Guide · 387 versions compared

A third of our strategy versions made money before costs and lost it after.

Written22 Oct 2026
Study rules frozen22 Oct 2026, before any number across the tests was computed

Tests: 54 · Versions: 387 · Lost to costs: 131 · Passed every gate: 3 · New backtests: none

Short answer: a lot. Across 387 versions of 54 strategies we backtested, costs turned 131 (34%) from a profit before costs into a loss, and took a median 87% of the profit before costs of the versions that had one. The more often a strategy traded, the bigger the share.

00The short answer

  • Costs decided the verdict for a third of our strategy versions. Of 387 versions in 54 published backtests, 131 (34%) made money before costs and lost money after them. Another 95 (25%) lost before any cost. 161 (42%) stayed positive after costs, but positive is not proven: only 3 passed all six of our gates.
  • For a version that made money before costs, costs took a median 87% of it. The share was 47% on ES and NQ futures, 99% on gold and 113% on forex, where the typical version paid more in costs than it earned before them.
  • The more a strategy traded, the more costs took. Versions trading fewer than 85 times a year lost a median 46% of their profit before costs; versions trading more than 230 times a year lost 126%, more than all of it.
  • A cheaper broker would have flipped some verdicts, not most. At half our costs, 51 of the 131 versions lost to costs would end positive; at double costs, 68 of the 161 positive ones would turn negative. Neither count says a version would pass our tests.

01What we measured, and how

Every backtest on this site reports a result before costs (gross) and after costs (net), with the same cost model for each market. This guide reads those published numbers for all 387 versions of all 54 strategy tests and compares them without converting units: tests in dollars, R, pips and percent are compared only through shares and counts.

  • Cost share = the costs a version paid ÷ its profit before costs. 40% means costs took 40% of the profit; above 100% means they took all of it and turned the version into a loss. Only versions with a profit before costs have one (292 of 387).
  • Three outcomes: lost before costs (the rules lost money even when trading was free), lost to costs (profit before costs, loss after), positive after costs.
  • Costs used, the same in every test of a market: ES futures $30.76 a round trip per contract, NQ $15.76 and GC $25.76 (commission plus one tick of slippage on each fill); spot gold $0.30 an ounce; forex about 1 pip (1.2 on USDJPY); Bitcoin 0.05% on each fill; SPY 0.04% a round trip.
  • What is in: every published strategy test and every version in its gate table, round-2 versions included. Guides that re-use other tests (like the gold strategies guide) are not counted again.

The rules of this comparison, the four questions and the checks were written and frozen before any number across the tests was computed (the specification).

02How often costs decided the verdict

MarketVersionsLost before costsLost to costsPositive after costsShare of the profitable-before-costs versions that costs turned into losses
Index futures (ES, NQ)11732275832%
Gold (spot and GC futures)9713424250%
Forex14946564754%
Bitcoin1946940%
SPY (S&P 500 ETF)50050%
All3879513116145%

Counted by test instead of by version (each test by what most of its versions did): 14 of the 54 tests were mostly lost to costs, 12 mostly lost before costs, 23 mostly positive after costs, and 5 were tied.

Forex is where costs mattered most: 56 of the 103 forex versions with a profit before costs lost money after a cost of about one pip. On SPY, all 5 versions stayed positive; they traded at most about 15 times a year and paid 0.04% a round trip, so costs took a median 19% of their profit before costs.

03How much of the profit costs took

For the 292 versions that made money before costs, the share their costs took (medians, because the share explodes when the profit before costs is close to zero):

MarketVersions with a profit before costsMedian cost share25th percentile75th percentile
Index futures (ES, NQ)8547%21%226%
Gold (spot and GC futures)8499%38%183%
Forex103113%71%263%
Bitcoin1559%14%314%
SPY (S&P 500 ETF)519%1%23%
All29287%35%228%

The typical strategy in our tests did not earn its profit before costs by a wide margin: it earned something close to its costs. A quarter of the versions with a profit before costs paid more than 228% of it in costs. The 3 versions that passed all six gates paid less than 10% of their profit before costs.

04The more you trade, the more costs take

The 208 versions with a profit before costs from tests outside the gold guide, split into three equal groups by how often they traded (the gold tests are left out of this question because the idea came from them, so they cannot also confirm it):

Trades a yearVersionsMedian cost shareLost to costs
0.3 to 84.66946%19
84.7 to 230.67080%30
231.6 to 1819.569126%40

The rank correlation between trades a year and cost share is 0.46 (Spearman, 208 versions; in none of 10,000 random shufflings of the cost shares was it as high). With the gold versions included it is 0.54. The reason is arithmetic: each trade pays the full cost, but a short trade has a small expected move to pay it from. Scalping and intraday rules need a much bigger edge per trade than swing rules to keep the same share of it.

This is a description of our sample, not a law: our fast and slow strategies also differ in markets and rules, and the strategies are the ones we chose to test, mostly popular ones.

05Would a cheaper broker change the verdict?

Every cost in these tests is charged per trade, so the result at any other cost level follows exactly from the published numbers: result = profit before costs − k × our costs. Versions positive after costs, at each level:

MarketNo costsHalf our costsOur costs1.5 timesDouble
Index futures (ES, NQ)8563584844
Gold (spot and GC futures)8464422826
Forex10370472111
Bitcoin1510997
SPY (S&P 500 ETF)55555
All markets29221216111193

Halving costs would turn 51 more versions positive; doubling them would turn 68 negative. Forex is the most sensitive (47 positive at our costs, 11 at double). Being positive after costs is not enough: all but 3 of the 161 versions positive at our costs failed at least one of our six gates. You can put your own broker’s costs into our trading cost calculator.

06Every test, side by side

One row per published test, in order of market and then of how often it traded. Trades a year is the median over the test’s versions; cost share is the median over its versions with a profit before costs (– when none had one).

Test and marketTestedVersionsTrades a yearLost before costsLost to costsPositive after costsMedian cost share
VWAP strategies (ES, 5-min)
ES futures
14 Oct31,739210339%
9 EMA strategies (NQ)
NQ futures
14 Oct3796111607%
Coppock Curve (1H)
ES futures
8 Oct12664750352%
EMA ribbon 5/8/13 (NQ)
NQ futures
8 Oct865503583%
Supertrend
ES futures
7 Oct*8275053176%
Initial balance breakout (ES)
ES futures
21 Oct324101289%
MACD Crossover
ES futures
7 Oct*4240022741%
Initial balance breakout (NQ)
NQ futures
21 Oct323600316%
Bollinger Band Reversal
ES futures
7 Oct*421800441%
Opening gap fill (ES)
ES futures
22 Oct3207030332%
Intraday momentum (NQ)
NQ futures
11 Oct4199400–
Intraday momentum (ES)
ES futures
11 Oct4199400–
Opening range breakout (NQ, 5-minute)
NQ futures
17 Oct419400424%
EMA 9/21 (1H)
ES, NQ and GC futures
8 Oct1219213831%
First 5-min candle + FVG (NQ, YouTube scalping)
NQ futures
21 Oct2183200–
Noise area breakout (NQ)
NQ futures
11 Oct617321332%
Noise area breakout (ES)
ES futures
11 Oct6168222175%
Donchian Channel Breakout
ES futures
7 Oct*4163211163%
Fibonacci scalping, Google AI (ES)
ES futures
14 Oct411630176%
The RSI(2) Dip Buyer
ES futures
7 Oct*48400446%
RSI Divergence
ES futures
7 Oct*46511237%
Golden Cross (1H)
ES futures + XAUUSD spot
8 Oct2427141931%
Golden Cross (daily)
ES futures + XAUUSD spot
8 Oct80.60080%
EMA 9/20 gold (M15, H1)
XAUUSD spot
8 Oct243904128148%
H1 Open Trap (gold, 1-minute)
XAUUSD spot
21 Oct43872208022%
Engulfing candle (gold, 1-hour)
XAUUSD spot
21 Oct4332040484%
Best time to trade gold (night vs day)
XAUUSD spot
21 Oct325101285%
Gold Opening-Range Breakout
XAUUSD spot
7 Oct*12193093163%
Noise area breakout (XAU)
XAUUSD spot
11 Oct6145132101%
TTM Squeeze (gold, 1-hour)
XAUUSD spot
14 Oct411501353%
RSI 30/70 (gold, 5-min and 1-hour)
XAUUSD spot
14 Oct866242134%
WaveTrend (gold, 1-hour)
XAUUSD spot
16 Oct45530116%
Turtle Trading (gold, daily)
XAUUSD spot
9 Oct46.70044%
Head and shoulders (gold, 15-minute)
XAUUSD spot
17 Oct46.110319%
TDI, Traders Dynamic Index (EUR/USD, 4-hour)
EURUSD
22 Oct3272030266%
Parabolic SAR (EUR/USD, 1-hour)
EURUSD
22 Oct3267120551%
London breakout (GBPUSD)
GBPUSD spot
21 Oct323201292%
Stochastic + RSI + MACD (EUR/USD)
EUR/USD spot
14 Oct6153060344%
Six Strategies on Four Currency Pairs
4 FX majors
8 Oct96131313530108%
Fibonacci 61.8% (EUR/USD 1H)
EUR/USD spot
9 Oct2117110819%
ADX + DI (4 forex majors, 1-hour)
EURUSD, GBPUSD, USDJPY, AUDUSD spot
21 Oct89751284%
Trading Made Simple, TDI + Heikin Ashi (EUR/USD)
EURUSD
22 Oct396021163%
Ichimoku Cloud (EUR/USD)
EUR/USD spot
14 Oct63531288%
Golden Cross (EUR/USD 1H)
EUR/USD spot
8 Oct122934592%
Inside bar breakout (EURUSD, daily)
EURUSD spot
21 Oct31420158%
Turtle Trading (EUR/USD, daily)
EUR/USD spot
11 Oct47.40045%
Noise area breakout (Bitcoin, 24/7)
BTCUSDT
15 Oct41,031130385%
Trend pullback (Bitcoin, 15-min)
BTCUSDT
14 Oct28890206696%
Heikin Ashi (Bitcoin, 4-hour)
BTCUSDT
21 Oct331801250%
Accumulation/Distribution (Bitcoin, 4-hour)
BTCUSDT
22 Oct324700359%
Bitcoin CME gap fill
BTCUSDT spot
21 Oct328300–
Turtle Trading (Bitcoin, daily)
BTCUSDT spot
14 Oct49.80042%
Accumulation/Distribution (SPY, daily)
SPY daily
22 Oct31300323%
200-day moving average (SPY, daily)
SPY ETF
21 Oct22.00021%

* Tested on 7 October 2026, before the protocol additions of 8 October 2026; gates are shown as each test published them. Tests are listed under the market most of their versions traded. The 1-hour golden cross on gold passed every gate in its run and was changed to Inconclusive after a data check; the two New York noise area versions on NQ passed every gate and are being forward-tested on new data.

07What this comparison does not say

  • It is not a sample of all strategies. These are 54 tests of mostly popular rules we chose to test. “A third lost to costs” describes them, not trading in general.
  • Positive after costs is not “works”. 161 versions stayed positive; 3 passed all six gates.
  • Our costs are one broker’s. Section 05 shows how the counts move with cheaper or dearer trading.
  • The tests were run over two weeks as our protocol grew (stricter thresholds for some families, better random controls after 8 October). The gross and net numbers do not depend on that; the gates do.

08What to do with this

  1. Backtest with costs, and look at the result before costs too. A strategy whose profit before costs is about the size of its costs has no margin for a worse fill.
  2. Put the cost next to the average trade. If one round trip is half of what an average trade earns before costs, the strategy lives or dies on execution.
  3. Trade less often unless the edge per trade is large. In our tests, the versions trading hundreds of times a year gave away more than their whole profit before costs.
  4. Then test the edge itself against the same trades at random times; see how to backtest a trading strategy without fooling yourself.

FAQCommon questions

How much do trading costs affect profits?

In our backtests, a version with a profit before costs gave a median 87% of it to spreads, commissions and slippage; a quarter gave more than 228%. 131 of 387 versions went from a profit to a loss because of costs.

Why do scalping strategies lose to costs?

Each trade pays the full cost, but a short trade has a small expected move to pay it from. In our tests, versions trading fewer than 85 times a year lost a median 46% of their profit before costs to costs; versions trading more than 230 times a year lost 126%.

Do trading costs matter more in forex or futures?

In our tests, costs took a median 113% of the profit before costs on forex (about 1 pip a round trip) against 47% on ES and NQ futures. The strategies differed too, so this describes our tests rather than the markets.

Would a cheaper broker make a losing strategy profitable?

Sometimes, not usually: at half our costs, 51 of the 131 versions that costs turned into losses would end positive. Being positive after costs is also not enough: almost every version that was positive at our costs still failed at least one of our six gates.

How should I include costs in a backtest?

Charge every trade the full round trip (spread or commission plus slippage on each fill), report the result before and after costs, and compare the cost with the average trade. Our trading cost calculator does the arithmetic for your broker.

09Check our arithmetic

SpecificationThe inclusion rules, measures, four questions and checks, frozen before the comparison.
cost_spec.md
Scripts and dataThe inventory reads every test’s published numbers through the site’s own consistency checker; the run checks them against the 387 trade logs, the gold guide and the articles’ cause labels, then answers the questions; a second, independent script recomputes every answer and must match.
cost_lib.js · cost_run.js · cost_ref.js · cost_rows.json · cost_summary.json · check results
The testsEach test’s frozen specification, code, trade logs and gates are on its own page, linked in the table above.

10Corrections

None since publication.

+More tests and guides