Private beta now open — 14-day free trial on demo accounts, no card required. Join the beta →
Research

HOW ONE LINE OF CODE
TURNED 1.98 INTO 0.77.

In July 2026 we re-audited every strategy in our library and found that two of them — both already shipped, both running on real accounts — had been validated against results that could never have happened. Not a rounding error or an optimistic assumption. The simulations had used information that did not exist yet at the moment they claimed to act on it.

We withdrew both. This is what the bugs actually were, because "lookahead bias" is one of those phrases that gets repeated far more often than it gets shown.

Case one: reading a bar's close at its open

Regime Breakout traded a breakout confirmed on the four-hour chart. Its backtest read the close of an H4 bar and acted on it at that same bar's open — four hours before that close existed.

In a trending market this is close to clairvoyance. You are deciding whether to enter a move using the outcome of the very period you are entering. The result looked excellent for three years.

Corrected so that every indicator reads the last closed bar, the strategy's out-of-sample profit factor is 0.59. Every rescue we tried failed. And the live results had been quietly reporting the same verdict all along at 0.40 — we had a real-world measurement that disagreed with the backtest, and the backtest was wrong.

Case two: a take-profit filled by a low that came first

Session Fade is the subtler and more instructive one. It credited a take-profit using the entry bar's own low.

On most bars, that low occurs before the trade was entered. The simulation was awarding a profitable exit at a price that had already been and gone by the time the position existed. Not every time — just often enough.

Removing that single line took the profit factor from 1.98 to 0.77.

A rolling walk-forward over Dec 2022 – Jul 2026 returns 0.83. It loses in every year. Nothing rescued it: not a different target, not a wider stop, not a news filter, not trading the break in the opposite direction. The strategy had never worked. What worked was the bug.

Why it is so easy to do this to yourself

Neither bug looks wrong when you read it. Both are one line inside a loop that is otherwise correct, and both produce results that are plausible — 1.98 is a good profit factor, not an absurd one. If the number had come out at 40 we would have found it immediately.

That is the trap. Lookahead bias does not usually produce impossible results. It produces results just good enough to be believed and shipped.

  • It hides inside bar data. A candle is four numbers with no timestamps between them. Nothing in the data tells you the low came before your entry.
  • It survives out-of-sample testing. Both strategies passed split-sample validation, because the bias was present in both halves.
  • It gets more convincing with more data. Three good years of a biased backtest is more persuasive than one, not less.

What we changed

Causality is now an explicit stage in our process rather than an assumption inside it. Every indicator reads the last closed bar with the forming bar dropped, and the simulation is checked for any figure that could not have been known at the moment it was used.

We also added a significance stage: results are compared against random entries held for the same duration, and resampled by whole trading days to produce a confidence range. A strategy that a coin toss could have produced should not reach a live account, and "better than random" is not the same as proven.

And we now weight live results against the backtest rather than treating a disagreement as noise. Regime Breakout was telling us the truth at 0.40 for months while we trusted a simulation that said otherwise.

The uncomfortable part

The corrected figures for both sit in our profit-factor table, alongside the seven that survived.

Publishing this costs us. It means saying that two strategies we sold access to did not work, that our validation missed it, and that the honest figure for one of them is barely half what we advertised.

We do it because the alternative — quietly retiring them and saying nothing — is exactly the behaviour that makes every performance claim in this industry worth ignoring. If we only ever showed you what worked, you would have no way to judge whether our process is rigorous or merely lucky.

Both are still documented on the strategies page

Retired, with their corrected figures, rather than deleted. Existing positions in Regime Breakout were managed out rather than dumped. The full failure ledger →

How we validate a strategy now

The strategies are one part of this

Profit factors describe what an automated strategy did. They say nothing about the risk stack around it or the work you do yourself — which is where most of this platform actually lives. See what our own risk guards cost you, measured the same way, and why the desk argues with your analysis instead of handing you a signal.