My backtest passed but I failed the challenge: nine reasons why
If the backtest said one thing and the challenge said another, one of them was measuring something that cannot happen. It is nearly always the backtest, and the gaps are specific enough to list. Each one below is shown with a worked number rather than a principle.
A rule that uses the closing price of the bar it trades on, an indicator computed over the whole dataset, a filter chosen after seeing the outcome. The size of the effect is the part people underestimate: re-measuring one of our own signal types without it moved the 10x rate from 45-55% down to 6.8%. Nothing in the code looked wrong — the information simply arrived a few seconds early.
Spread, commission and slippage are small per trade and decisive in aggregate. Measured on our live paper book: 125 trades showing +$323 profit, against $281 of costs the same trades would really have paid. 87% of the apparent edge was unpaid fees.
If the equity curve dips below the margin one position requires and the report keeps opening trades, every figure after that point describes an account that no longer existed. Check the lowest point of the curve against your position's margin — a prop account is closed out there, and the simulation should be too.
At 10x a 10% stop sits past the liquidation point, so 91 of 324 trades ended as full margin losses rather than −10%. A challenge's drawdown limit is breached in two such trades. Details in why challenges fail.
53% of trades closed on a 14-day auto-close, earning +$126,245 of the profit. Stretch the limit and profit factor falls 1.74 → 1.17. A 30-day challenge does not permit the holding period the backtest assumed.
If the instrument list is "what exists today", everything delisted, rugged or zeroed is missing. On memecoin data we log every alert at fire time — 475,000 of them — and the unfiltered base rate for ever doubling is 5.2%, against the 30-50% that curated screenshots show.
A backtest happily opens four positions at once because nothing stops it. Four positions at 20% margin each is 80% of the account posted, and the drawdown limit sees all four at the same time. Check the maximum concurrent positions the history actually reached, and what total margin that represented.
Split the history in half. Our gold strategy: PF 1.02 in the first four and a half years, PF 1.89 in the last three. 79% of nine years of profit arrived in 2025-2026. A 30-day evaluation samples one regime, and it may not be that one.
If the take-profit, stop and indicator periods were chosen by trying combinations until the curve looked good, the curve is a description of the past. The test is walk-forward: pick the parameters on data up to a date, measure on data after it, repeat. We ran it on our gold strategy — the exits held up (4 of 4 out-of-sample windows profitable), the entry lookback did not (2 of 4). So we fixed the lookback and stopped tuning it.
Re-run the strategy with costs on, sizing as a percentage of equity, the holding limit set to the challenge's own duration, and the history split in half. If the result survives all four, the gap was execution — latency, the firm's spread, your own hesitation. If it does not, you have found the reason, and it was visible before the fee.
Our engine applies all nine checks by default and reports the warnings above the profit number, because a profit number with a drawdown of 155% is not a result, it is an error message. Three backtests a day are free.