The cost hurdle
Why almost every strategy on this site fails. The edges we found are measured in hundredths of a percent per trade, and a round trip costs tenths.
Key findings
- A round trip costs 0.2% to 0.5% on a European crypto spot exchange and about 0.7 pip on EUR/USD through a raw-spread CFD account. Holding a currency position overnight costs another 1.0–1.8% a year per side in swap mark-up.
- The gross edges we measured were usually far smaller: about 0.01% per trade for a foundation-model forecast on Bitcoin, 0.01–0.04 pip for order-book imbalance on EUR/USD, and about zero for 1,442 intraday currency rules.
- Where a gross edge was larger than the cost, it disappeared out of sample. Costs decide the sign of most strategies, and the out-of-sample test decides the rest.
This site is a research log of about 23,600 strategy configurations tested on crypto and currency data, with costs included from the start. Before reading any single result it helps to know how large the costs are, because they explain most of what follows.
What a round trip costs
| Market | What you pay | Round trip |
|---|---|---|
| Crypto spot, market orders | 0.25% taker fee per side | 0.50% |
| Crypto spot, limit orders | 0.10% maker fee per side | 0.20% |
| Altcoins, realistic | maker fee plus 0.10% slippage per side on thinner order books | 0.40% |
| EUR/USD, raw-spread CFD account | 0.1 pip median spread plus 0.6 pip commission | ≈ 0.7 pip (0.6 bp) |
| EUR/USD at the daily rollover, 21:00 UTC | 3.8 pips median spread plus commission | ≈ 4.4 pips |
| Any currency position held overnight | swap mark-up over the interest differential | 1.0–1.8% a year per side on the majors |
The fee levels are those of the exchange and broker we used in September 2026. The spread and swap numbers were measured on the broker’s demo server.
EURUSD spread by hour of day (UTC)
The quoted spread is ~0.1 pip all day and jumps around the 21:00 UTC rollover (17:00 New York).
Show data · values in pips
| Hour of day (UTC) | median | 90th percentile |
|---|---|---|
| 00:00 | 0.10 | 0.40 |
| 01:00 | 0.10 | 0.40 |
| 02:00 | 0.10 | 0.30 |
| 03:00 | 0.10 | 0.30 |
| 04:00 | 0.10 | 0.40 |
| 05:00 | 0.10 | 0.40 |
| 06:00 | 0.10 | 0.20 |
| 07:00 | 0.10 | 0.20 |
| 08:00 | 0.10 | 0.20 |
| 09:00 | 0.10 | 0.20 |
| 10:00 | 0.10 | 0.20 |
| 11:00 | 0.10 | 0.20 |
| 12:00 | 0.10 | 0.20 |
| 13:00 | 0.10 | 0.20 |
| 14:00 | 0.10 | 0.20 |
| 15:00 | 0.10 | 0.10 |
| 16:00 | 0.10 | 0.30 |
| 17:00 | 0.10 | 0.30 |
| 18:00 | 0.10 | 0.30 |
| 19:00 | 0.10 | 0.30 |
| 20:00 | 0.10 | 0.30 |
| 21:00 | 3.80 | 7.40 |
| 22:00 | 0.10 | 0.40 |
| 23:00 | 0.10 | 0.40 |
The edges were smaller
| Study | Gross edge per trade | Cost per round trip |
|---|---|---|
| Kronos foundation model, Bitcoin, 5 minutes | about 0.01% | 0.2–0.5% |
| Order-book imbalance, EUR/USD, 60 seconds | 0.01–0.04 pip | about 0.9 pip |
| Intraday currency patterns, 1,442 configurations | about −0.15 bp | 1 bp |
| Trend indicators, crypto, 4-hour bars | +23 bp | 20 bp |
| Band reversion indicators, currencies | +2.4 bp | 1 bp |
| Carry, G10 and emerging markets | 5.0% a year | 2.9% a year lost to swap mark-ups |
The first three never had a chance. The last three cleared their costs on paper and then failed elsewhere: crypto trend rules lost to simply holding in the test period, currency band reversion failed on 2000–2015 data it had never seen, and carry kept 2.1% a year after the mark-up with a t-statistic of 1.0 and a −56% drawdown.
Costs grow with turnover
A strategy pays its round-trip cost every time it trades. A rule that trades 50 times a year at 0.5% per round trip has to earn 25% a year before costs to break even. That is why the short-horizon ideas on this site fail first: the faster the strategy, the more often it pays, and the smaller the moves it tries to catch. At one minute, two EUR/USD moves in three are smaller than a 0.7-pip round trip, whatever their direction.
A random strategy loses exactly its costs. One of the unit tests behind the simulators checks this, and the take-profit and stop-loss test shows it in practice: every reward-to-risk ratio produced the win rate a random walk predicts, and all 36 combinations lost the cost.
Winning often does not pay the hurdle
Many of the strategies we tested won most of their trades. Oscillator reversion rules won 54–70% of their trades, and every one of them lost money per trade. Buying sharp dips on 1-minute bars won about 80% of its trades in the hold-out and still lost 6%. A high win rate usually means small gains and occasional large losses, and after costs the balance was negative every time.
How costs are handled on this site
- Every result is after costs unless it is explicitly labelled as gross. Where it helps, we show both.
- Costs were modelled per venue: fees, spread by hour of day, commission, slippage estimates, overnight swap mark-ups and, for tick-level tests, a 250 ms order delay.
- The live bots on demo accounts measured real costs: market orders filled in 286 ms on average with no adverse slippage, and commission matched the published schedule on every trade.
The details for each study are on the methods page.