Methodology·2026-07-07·12 min read·← all posts

How to backtest a trading strategy honestly — the free tool competitors won't build

A backtest is supposed to answer one question: does this strategy have an edge, or does it just look like it does? Almost every backtest a retail trader runs answers the second question and pretends it answered the first. The failures are not exotic — they are four specific, well-understood mistakes that turn a losing pattern into a beautiful equity curve. Here is how to avoid all four, and a free tool that bakes the corrections in so you don't have to trust yourself to be disciplined about them.

1. Charge real fees on every trade

This is the single most common killer, and it is entirely self-inflicted. A strategy that trades often can show a lovely gross return and be deeply negative after costs. On crypto perpetuals, the realistic round-trip cost on a liquid pair is roughly 0.1% in fees plus spread and slippage — call it 0.2% and worse on anything outside the top names. Run your backtest with that friction applied per trade, then run it again at double. A real edge degrades gracefully (from +40% to +25%). A mirage collapses to deeply negative as friction rises, because the gross edge per trade was always smaller than the cost of harvesting it. Any backtester that lets you leave fees at zero is a fantasy generator.

2. Never let the future leak into the past

Look-ahead bias is when your entry or exit uses information that was not available at the moment of the trade. It sneaks in quietly: using the closing price of the signal candle to enter during that candle, using a full-day high computed with data from later in the day, normalising with statistics calculated over the whole sample. Each one silently improves your results and none of them will exist when you trade live. The discipline: at every bar, ask "could I actually have known this, right now, in real time?" If the answer is no, the result is fiction. We once produced a backtest with a profit factor of 3.2 that turned out to be entirely a look-ahead artifact — the forward path started on the signal bar itself, so its own pre-move high counted as a future take-profit. Corrected, the profit factor was 1.36.

3. Assume you overfit, because you did

A strategy has free parameters: which indicator, what threshold, how long to hold. A dataset has a fixed amount of real structure and a much larger amount of noise. When you search across parameter combinations for the one that produced the best historical return, you are fitting to that noise by construction. The more you try, the better your best result looks and the less of it is real. The defence is a parameter landscape: instead of reporting the single best setting, plot the result across the whole range of the setting. If one narrow value is a spike of profit surrounded by losses, that spike is an accident. If the whole neighbourhood is positive, you might have something. A single cherry-picked number is how every course screenshot is made.

4. Beat a coin flip, not zero

This is the check almost nobody runs, and it is the most important one. If the market drifted up during your test window, then buying at random moments and holding also made money. So a positive return proves nothing until you compare it to a random-entry control: the same stop-loss and take-profit fired at random times. Your strategy has to beat that grey baseline, not zero. In a recent 90-day crypto window, random 2:1 long entries netted about −0.17% per trade after fees — and the majority of famous retail strategies could not beat even that. If your "edge" cannot outperform a coin flip carrying the same risk, it is not an edge; it is the market's drift wearing your strategy's name.

All four corrections, built in, for free

We built a public tool that applies real fees, avoids look-ahead, sweeps the parameter landscape, and — the part no competitor ships — benchmarks against a random-entry control. Pick a strategy or build your own from indicator conditions, and get an honest verdict on 90 days of real data in ten seconds. No signup. No paywall. No upsell to see the real number.

Open the free backtester →

Why no one else builds this

The honest backtest is not hard to build. It is bad for business. A tool that tells most users "your strategy loses to a coin flip" does not sell a $1,000 course or a subscription to a signal group. The entire retail-education economy depends on the random control staying hidden, because the moment you show it, the majority of what is sold evaporates. TradingView's strategy tester will happily let you optimise into an overfit fantasy and never once mention random entries. Course sellers show the winning configuration and bury the hundred that failed. The incentive everywhere is to help you fool yourself, gently, for a fee.

We have the opposite incentive. We make money from strategies that actually survive this test on our own capital, so the more traders learn to demand real evidence, the better our reputation and the worse our competitors' looks. Giving away the honest tool is aligned with how we make money. That is the whole reason it exists and the whole reason it is free.

What an honest backtest actually looks like

When you run a strategy the right way, most of the time the answer is disappointing, and that is correct. Real edges are rare, small, and fragile; they hide in specific market structure, not in a moving-average crossover that fires forty times a week. The value of an honest backtester is not that it finds you a winner — it usually won't — but that it stops you from lighting money on fire chasing patterns that were never there. The traders who last are the ones who internalised that most ideas fail, tested ruthlessly, and only sized up the handful that beat the coin flip out of sample. Everyone else is paying tuition to the market, one −0.2% trade at a time.

Stop trusting screenshots. Start testing.

Run any popular strategy — or your own — against a random control, with real fees, in seconds. Free, forever, no account needed.

Open Reality Check →

← Back to all posts · The research log · We tested 16 course strategies →