Methodology

How every Backtestify report is produced

Engine backtestify-engine-3 · Parser v5

Signals and fills

A signal only counts once the candle that produced it has closed. The trade itself fills at the OPEN of the next candle — never on the signal candle's own close, which the strategy could not have traded on in real time.

Same-bar stop and target

When a stop and a target are both touched inside the same candle, the stop resolves first (adverse-first). A backtest that let the target win in that situation would be quietly optimistic about every strategy it tested.

Gaps

When a candle opens beyond the stop, the fill is the OPEN price, not the stop price — the strategy could not have gotten the stop price because the market never traded there. The same rule applies in the other direction: a candle that gaps straight through the target fills at the open, not the target. Fills never happen at a price the candle did not actually trade.

Costs

Every trade pays commission on both sides (entry and exit) at 0.05% per side, plus 0.02% slippage per side. These are the same defaults every simulation uses — see the "Execution assumptions" panel on any report for the figures actually applied to it.

Position sizing and the notional cap

Each trade is sized off account risk to the stop distance. Where a strategy has no stop, or the implied position would be larger than the account can actually hold, size is capped at 100% of account equity notional — a single trade never simulates more capital than the account has.

Data

Candles are exchange spot data. When the primary data source cannot serve a symbol or window, Backtestify falls back to the next provider in a fixed order rather than inventing candles — a run that could not get real data reports a failure for that timeframe instead of a result.

Indicator warm-up

Every indicator needs bars before it produces its first value. Backtestify fetches 3× the longest indicator period, floored at 50 bars and capped at 1000 bars, purely to warm indicators up. Those bars are never counted as tested history and no trade is taken on them.

Train / test split

History is split chronologically: the first 70% trains or selects the strategy, the remaining 30% is the held-back test window. The winning spec is frozen and hashed BEFORE the test window is touched. That one frozen spec produces the verdict and is evaluated exactly once for that purpose. Afterwards, robustness and cost-stress diagnostics re-run the same frozen spec on the same candles — parameter neighbourhood, execution delay, extra slippage, doubled costs — and those extra evaluations are reported as diagnostics, never as the verdict.

A "create" or "improve" run also reports how many candidate specs were evaluated on the train window; it is always shown on the report's integrity receipt.

The two verdicts, and the three gates

There are exactly two outcomes: RECOMMENDED and NOT RECOMMENDED. RECOMMENDED requires all three measured gates to pass — win rate ≥ 51%, profit factor ≥ 1.0 and an average trade above zero. NOT RECOMMENDED means one of those three gates failed, plus two caps that can never be recommended: a strategy with no exit rule at all, and a named strategy whose published rules we could not find.

Sample size does not decide the verdict. It sets the confidence label and the evidence chip only. A system that trades a few times a year cannot reach a fast-timeframe sample in any realistic history, so refusing to recommend it would be a different claim from "it failed a test". These are the trade counts at which we stop calling the sample limited:

  • 1m – 15m: 100 trades or more before the sample stops being called limited.
  • 30m – 1h: 60 trades or more before the sample stops being called limited.
  • 2h – 12h: 40 trades or more before the sample stops being called limited.
  • 1d and above: 25 trades or more before the sample stops being called limited.

What we do not claim

  • Every number is a hypothetical simulation of stated rules on past candles — it is not a live trading record and no capital was ever actually deployed.
  • No slippage or cost model survives all market conditions, especially thin liquidity or news events.
  • Results on one symbol or window do not transfer to another symbol, timeframe or period.

Public proof set

Real house-run reports, published with their full integrity receipt visible to signed-out visitors, including strategies that failed.