← All posts
Execution5 min read

Transaction Costs: The Silent Killer of High-Frequency Backtests

A strategy turning over 5× per month needs to clear a much higher gross return bar than one turning over 2× per year. Most backtesting tools underestimate this dramatically.

Gross returns are easy to model. Net returns — after the market's relentless friction — are where strategies go to die.

The components of transaction costs

  • Commission — Straightforward: a fixed or percentage fee per trade. Even "zero commission" brokers route to market makers who extract value via spread widening.
  • Bid-ask spread — You almost never trade at the mid. For liquid large-cap equities this might be 1–2bps. For small-caps or futures at illiquid hours, it can be 20–50bps.
  • Market impact — For any order large enough to move the market, you're buying higher than the quoted ask and selling lower than the quoted bid. Impact scales roughly with the square root of order size relative to average daily volume.
  • Slippage — The difference between your signal price and your fill price, caused by latency, queue position, and order routing.

A simple breakeven analysis

If your strategy turns over 200% per month (enters and exits its entire portfolio twice), and round-trip costs are 10bps, you need to earn 20bps per month above the benchmark just to break even on costs. That's 2.4% per year before you make a dollar of alpha.

Why most backtesting tools get this wrong

Many tools let you set a flat "commission" and nothing else. That misses market impact entirely — which, for any strategy managing more than a few hundred thousand dollars, is often the largest single cost. Our simulation engine models impact using a modified Almgren-Chriss framework, calibrated to actual intraday volume profiles.