← blog  /  bots

Why every strategy has to beat a coin toss

2026-10-20  ·  2 min read  ·  bots

Run the same sizing, stops and fees with seeded random entries across many seeds and you get a distribution of luck. A strategy is interesting only if it clearly sits outside it.

"It made money in the backtest" is a weak sentence. A lot of random things make money in a backtest, because markets move and costs are small compared with a lucky run. The question is whether the strategy did better than chance would, using exactly the same machinery.

The control group#

Take the strategy under test. Keep everything except its signal: the same sizing, the same stops, the same fees, the same number of entries. Replace the signal with a coin toss, seeded so it is reproducible. Run that hundreds of times, with different seeds.

You now have a distribution of what luck does under your own rules. Your strategy is one more point. Where does it sit?

Illustrative: where does the strategy sit among random seedspython
import random

def percentile_vs_luck(strategy_result, run, n_bars, n_entries, seeds=range(500)):
    luck = []
    for seed in seeds:
        rng = random.Random(seed)
        entries = sorted(rng.sample(range(n_bars), n_entries))
        sides = [rng.choice(("buy", "sell")) for _ in entries]
        luck.append(run(entries, sides))          # same sizing, stops and fees as the real strategy
    beaten = sum(r < strategy_result for r in luck)
    return beaten / len(luck)                     # 0.5 is a coin toss; you want to be far above it

A strategy that lands in the middle of that cloud has no edge. Beating zero is not enough, because most coin tosses beat zero about half the time.

Why this catches things nothing else does#

  • It exposes bias in the machinery. If random entries come out consistently positive, your fills or fees are too kind, and every result is inflated.
  • It exposes bad luck dressed as skill. A good run can sit comfortably inside the random cloud.
  • It is a sanity floor for tuning. Trying many variants of a strategy and keeping the best one finds the luckiest variant, not the best. The walk-forward post goes into how to account for that.

In the live system, too#

A good setup keeps a coin toss variant running next to the real ones on a demo account, with identical sizing and stops. It costs almost nothing, and it is the only honest answer to "is any of this skill?".

not advice

This is how trading software can be built. It is not investment advice. Trading crypto assets, especially with leverage, carries a risk of losing money, and results from tests or simulations do not guarantee anything in live markets. The studio builds trading software and tooling. It does not manage anyone's money, hold client funds or trade on anyone's behalf.