Skip to content

Fees & Costs

No backtest result is valid without transaction costs applied. Gordon models fees, slippage, and funding rates at every layer.

Binance Futures fee schedule

All cost assumptions use VIP 0 (baseline tier, no BNB discount):

ComponentValueNotes
Maker fee0.02% (2 bps)Limit orders that add liquidity
Taker fee0.04% (4 bps)Market orders and limit orders that take liquidity
Average funding (8h)0.01% (1 bp)Long-term average; spikes to 0.1%+ during extreme sentiment

Slippage estimates

Conservative estimates for typical position sizes ($2k–$5k account):

AssetEstimated slippageReason
BTC0.01% (1 bp)Deepest order book in crypto
ETH0.015% (1.5 bps)Second deepest, slightly wider spreads
SOL0.03% (3 bps)More volatile, wider spreads at times

Two cost models

Gordon uses two separate cost models that operate at different layers. This is intentional.

FeeModel (gordon-exchange, Rust)

The execution-layer model. Applied at order execution time on a per-order basis.

  • Used by gordon-executor during live trading and by gordon-manager during backtest replay.
  • Separate maker/taker rates.
  • Slippage applied as additional basis points on market orders.
  • Funding charged per 8h period on open positions.

CostModel (gordon-lab, Python)

The research-layer model. A round-trip convenience model for parameter sweeps and signal quality testing.

  • Combines entry cost + exit cost + estimated slippage + estimated funding into a single round-trip number.
  • Appropriate for Level 1 / Level 2 lab validation where throughput matters.
  • Never used in live trading or production backtest replay — that path uses FeeModel.

The two models serve different layers. Unifying them would either slow down research or reduce execution accuracy.

Funding rate impact

Funding rates on perpetual futures can significantly impact trend-following returns:

  • Longs pay shorts when funding is positive (most of the time in bull markets).
  • Shorts pay longs when funding is negative.
  • Charged every 8 hours on the full position value.

A position held for 30 days at average funding:

30 days × 3 periods/day × 0.01% = 0.9% of position value

This is why the funding z-score overlay exists — to avoid entering positions when funding is abnormally high.

Gordon — keep compounding without blowing up