A gross return bar reduced by transaction cost and slippage to a lower net return bar.
Small friction matters because the edge is usually smaller than the model wants to admit.

Why small frictions matter

Trading ideas usually fail by a thousand cuts, not one dramatic mistake. A tiny cost per trade can wipe out a signal that only works on paper. If the edge is thin, the friction is the edge.

How Quantfoo models it

Quantfoo deducts transaction costs and slippage in R units. Slippage is not treated as one flat number either: stop-outs, limit fills, and timeouts get different assumptions because the fill quality is different.

  • Stop-outs carry the full slippage hit.
  • Profit targets are the cleanest fills.
  • Timeout exits sit in the middle.

What to stress-test

Look at net PnL, not just gross R. Then double the cost, halve it, and see how fast the edge decays. If the result flips sign the moment friction moves, the model is too fragile to matter.

Intraday strategies usually suffer first. More turnover means more friction, and more friction means the model spends its life paying for its own optimism.

The blunt rule

If a model cannot survive a modest cost shock, it is not ready. The edge is still theoretical.

A worked sensitivity check

If a strategy makes 0.20R per trade before costs and you trade 200 times, a 0.08R round-trip cost turns the gross idea into something much thinner. Bump the cost to 0.12R and the same setup may go negative. That is the test: not whether the model can win once, but whether it has room to breathe.

The useful question is simple. How much friction can the idea take before the edge disappears?

Common mistakes

  • Using one flat slippage number. Entry, stop, and timeout fills are not the same.
  • Checking only gross returns. Gross PnL is where fragile ideas hide.
  • Testing one cost assumption. A real edge should survive a range, not a single point.