Trading algorítmicoBacktestingEstadísticaComisionesRustPython

I switched off the bot: five strategies, 77,000 candles and zero net edge over fees

Published on 2026-08-18 · Xiliux

I had a trading bot running on a server. I switched it off, and the reason wasn't a losing streak: it was a measurement.

Five strategies, 77,000 one-minute candles of BTC and ETH, fees subtracted. The best of them all returned +0.0135% per trade, with a t = 0.16 statistic.

That's zero. Not "a little": zero.

What was measured, and against what

The five families anyone starting out tends to try:

And a volatility-based exit rule of the kind that does have good literature behind it.

Each was measured subtracting the account's real fees, not an ideal fee or zero. That detail is what decides the experiment, and it's the one most often left out.

Why fees flip the sign

A strategy on one-minute candles trades a lot. Each trade pays twice: on entry and on exit. If your gross edge per trade is on the order of thousandths of a percentage point and your round-trip fee is on the order of hundredths, there's no strategy: there's a machine for transferring money to the exchange with intermediate steps.

The fee-free backtest of those same five strategies showed curves that went up. That's the whole trap in one sentence: a backtest without fees doesn't measure a strategy, it measures market noise, and noise always has stretches that go up.

The t-statistic, which is the uncomfortable part

A positive average return says nothing on its own. Flip a coin a thousand times and you'll find streaks. The question is whether your result is distinguishable from chance, and that's what the t-statistic answers: how many standard deviations separate your mean from zero.

With t = 0.16, the answer is that it isn't distinguishable. Not by a long way. To talk about a signal you need to be around 2, and even then with caution given the number of strategies tested —testing five and keeping the best already biases the result upward, so the real bar is higher, not lower.

Another of the strategies gave an information coefficient of +0.00%. It's hard to find a more honest number.

The second measurement: the fixed cost

Even if the edge had been small but real, there was a calculation almost nobody makes: the server costs money every month, edge or no edge. With a small account, the annual cost of the infrastructure exceeded the expected return of a marginal edge.

That is, even in the optimistic scenario —real but tiny edge— the whole system lost money. Not because of the market: because of the bill.

What was done

The bot and the data collector were switched off, and the capital moved to a savings product with a published rate. It yields little and yields what it says.

Switching off isn't giving up. Keeping a system running with an edge measured at zero isn't a neutral position: it pays fees, it pays infrastructure and —most expensive of all— it consumes the attention that would be producing elsewhere.

What I take away

  1. Measure with fees from the very first backtest. If they show up at the end, they'll flip conclusions you already took as settled.
  2. Demand a statistic, not a curve. A rising curve is the easiest thing to produce by accident in this trade.
  3. Count the fixed cost inside the result, not beside it. A system that needs a server has to pay for it before it can be considered profitable.
  4. A negative result is a result. These measurements saved months of tuning parameters on something that didn't exist.

FAQ

Why does a t of 0.16 mean "zero" and not "a little"?

Because the t-statistic measures how many standard deviations separate your result from zero. At 0.16 the result falls within the noise: if you repeated the experiment with random data you'd get that magnitude easily. Conventionally you need to be around 2 to talk about a signal. 0.16 isn't a small edge, it's the absence of an edge.

Wasn't optimising the parameters enough?

Optimising on the same dataset you used to measure produces a pretty curve and no future edge: you're fitting the noise. And there's a prior problem: if the strategy doesn't beat fees in its simple form, tuning parameters is usually moving the overfitting, not the signal.

How much do fees really weigh?

Enough to flip the sign. A high-frequency strategy on one-minute candles trades a lot, and each trade pays twice —entry and exit—. A backtest that doesn't subtract them can show sustained profitability on a strategy that in production loses money steadily.

What do you do with the capital when there's no edge?

You put it where the return is known and the risk is explicit. A savings product with a published rate yields little, but it yields what it says. Keeping capital trading with zero edge isn't neutral: it pays fees, it pays infrastructure and it consumes attention.

← More articlesRequest a quote