Transaction-cost realism — the hurdle an edge must clear
InconclusiveTransaction-cost realism — the hurdle an edge must clear
2026-06-06 · status: inconclusive · 1.0s
Hypothesis: Round-trip cost is a hard hurdle: a conditional mean return below it is not tradeable. An edge-less rule (trade last-bar momentum at CUSUM events) has ~zero gross EV and therefore negative net EV — costs guarantee a loss without a real edge.
Verdict: QUANTIFIED — round-trip hurdle ≈ 8 bps/trade (7.0 bps taker + funding over 8h). The edge-less momentum rule on CUSUM events nets -8.5 bps (gross -0.5) → loses. Use ml.costs.cost_summary / break_even_return in feature studies: a conditional mean return below the hurdle is not an edge, no matter how clean the IC.
Key metrics
| metric | value |
|---|---|
| interval | 1h |
| hold_bars | 8 |
| taker_round_trip_bps | +7.0000 |
| all_in_round_trip_bps | +8.0000 |
| n_trades | 19,943 |
| momentum_gross_bps | -0.4800 |
| momentum_net_bps | -8.4800 |
| momentum_survives | 0 |
The hurdle
At our fee level (TAKER_FEE_RATE, FUNDING_RATE_PER_HOUR in backtesting/config): round-trip taker cost = 7.0 bps (in + out); held 8h the all-in round-trip is 8.0 bps. A strategy's conditional mean return per trade must clear this to be tradeable.
Edge-less rule on CUSUM events (trade last-bar momentum)
| n | gross_mean | round_trip_cost | net_mean | survives | gross_win_rate | net_win_rate | |
|---|---|---|---|---|---|---|---|
| momentum_rule | 19943 | -4.76283e-05 | 0.0008 | -0.000847628 | False | 0.471193 | 0.439753 |
| always_long | 19943 | 0.000663868 | 0.0008 | -0.000136132 | False | 0.516221 | 0.483478 |
- Momentum rule: gross EV -0.5 bps/trade → net -8.5 bps after 8.0 bps cost. Survives: False.
- This is the whole point: ~zero gross edge minus a fixed cost = a guaranteed bleed. An edge must clear ~8 bps net per trade to matter.
