Cost Analysis11 min read

Transaction Costs & Slippage

Master the true cost of trading. Learn how commissions, spreads, and slippage drain your edge—and how to model them accurately in backtests.

Key Takeaways

  • • Many profitable backtests become losers once real costs are included.
  • • Spreads and slippage often exceed commissions; don't ignore them.
  • • Model costs per market (stocks < forex < crypto); per order type (market > limit); per venue (prime broker > retail).
  • • 0.25-0.50% round-trip cost is typical; anything >0.75% makes most strategies unviable.

Types of Trading Costs

1. Commissions

Per-trade fees charged by brokers. Typically fixed per share/contract or percentage of notional.

Examples:

• Stocks: \$0-5 per round trip (many brokers now \$0)

• Options: \$0.25-1.00 per contract

• Crypto: 0.05-0.30% per trade

• Futures: \$2-10 per round trip

2. Bid-Ask Spread

Difference between what buyers offer and sellers ask. You pay this on entry AND exit (round trip = 2× spread).

Examples:

• Large cap stocks (SPY): 0.01% spread

• Small cap stocks: 0.05-0.20% spread

• Illiquid options: 0.50-5.00% spread

• Crypto major pairs (BTC/USD): 0.01-0.10% spread

• Forex majors: 0.001-0.002% spread

3. Slippage

Difference between expected fill price and actual fill price. Increases during volatility and low liquidity.

Typical slippage:

• Market order vs best bid/ask: 0.01-0.20%

• During gaps: 1-10%

• Flash crashes: Up to 50%+

• Limit orders: 0% (you set the price)

4. Market Impact

Your order moving the price against you if it's large relative to typical volume.

Examples:

• Large block orders: 0.05-0.30% market impact

• Retail trader (small orders): Negligible

• Illiquid altcoins: Can be 1-5%

Costs by Market

MarketCommissionsSpreadTotal Round Trip
Stocks (Large Cap)$00.01%0.02%
Stocks (Small Cap)$0-50.05-0.20%0.10-0.40%
Forex (Majors)0.002-0.01%0.001-0.005%0.006-0.03%
Crypto (Major Pairs)0.05-0.30%0.01-0.10%0.12-0.70%
Crypto (Altcoins)0.10-0.50%0.20-1.00%0.60-3.00%
Options$0.25-1.00 per leg0.10-1.00%0.30-2.00%

⚠️ Common Mistake: Ignoring Costs in Backtests

Many backtests assume perfect fills and zero costs. Result: a strategy shows 15% CAGR, but once you trade it with real costs, you get 5% CAGR or worse.

Rule: Always include commissions and spreads in backtests. At minimum, use 0.15-0.25% round-trip for stocks; 0.50% for crypto.

How to Model Costs Realistically

Fixed Percentage Approach

Simplest: assume fixed % cost per round trip. Works for similar-sized trades.

Entry: -0.15% (half round trip)

Exit: -0.15% (half round trip)

Total: -0.30% per round trip

Apply to backtest PnL

Granular Approach

More accurate: break down by commission, spread, slippage separately.

Commission: 0.05% (your broker)

Spread (half on entry/exit): 0.02%

Slippage (market orders): 0.05-0.10%

Total: 0.15-0.20% per round trip

Volatility-Adjusted Approach

Advanced: model costs varying by volatility and time of day.

Low vol days: 0.10% round trip

Normal vol: 0.25% round trip

High vol (earnings, macros): 0.75%+ round trip

Apply cost based on backtest conditions

Impact on Strategy Returns

Example: How Costs Kill Edge

Strategy: Swing Trading (10 trades/month)

Backtest result (no costs): 25% annual return

Average trade duration: 5 days

With 0.15% cost:

Annual cost: 120 trades × 0.15% = 1.8%

Final return: 25% - 1.8% = 23.2%

With 0.50% cost:

Annual cost: 120 trades × 0.50% = 6.0%

Final return: 25% - 6.0% = 19.0%

With 1.00% cost (realistic for altcoin/options):

Annual cost: 120 trades × 1.00% = 12.0%

Final return: 25% - 12.0% = 13.0% ❌

Edge cut in half!

Rule of Thumb

High-frequency (100+ trades/month): Costs > 30% of gross profit → needs sub-0.10% total cost

Swing (10-30 trades/month): Costs 5-15% of profit → use 0.15-0.50%

Position (5-10 trades/month): Costs 1-5% of profit → up to 1.00% acceptable

Frequently Asked Questions

Should I use limit or market orders to reduce slippage?

Limit orders have zero slippage but risk not filling. Market orders fill instantly but cost the full spread + slippage. For backtests, assume you'll use limit orders on 70% of entries, market orders on 30%. This is realistic.

How do I know actual costs for my broker?

Check your broker's fee schedule. Many disclose commissions, but spreads vary. Best: backtest on a small live account first and track actual costs vs your assumptions.

What if my broker offers zero commission?

Spreads still exist (broker makes money on bid-ask). Model spread + slippage instead. For crypto, many exchanges charge 0.1-0.30% taker fees even if commission is free.

Related Guides

Model Realistic Costs in Your Backtests

Strategies that look great with zero costs often underperform once trading. Always backtest with realistic transaction cost assumptions.