The #1 way a Python backtest lies is look-ahead bias— code that acts on data it couldn't have known yet. Paste your pandas · backtrader · freqtrade · vectorbtstrategy and we flag it: negative shifts, centered windows, backtrader's future indices, same-bar execution, higher-timeframe leakage, in-sample overfitting, and missing cost/risk modeling — each with the exact fix. Correctness, not profitability.
Deterministic static analysis — runs on the server, code isn't stored. Correctness only, not profitability.
Negative .shift(), centered rolling windows, backtrader positive indices ([1] = a future bar), and .iloc[i+1] future access.
vectorbt from_signals with unshifted entries — filling on the close of the bar that produced the signal.
freqtrade informative-pair merges that reference a still-forming HTF candle — the request.security repaint problem, in Python.
Global-statistic normalization, and model .fit() with no out-of-sample split (data snooping).
Missing commission/slippage, no stop-loss, no position sizing — the assumptions that flatter a backtest.
Unseeded randomness and error-swallowing bare except: blocks.
Paste your strategy here. The validator statically scans for the patterns that leak the future into the present — negative .shift(), centered rolling windows, backtrader positive indices ([1] is a FUTURE bar), global-statistic normalization, same-bar execution in vectorbt, and higher-timeframe merges in freqtrade — and shows the exact line and fix for each. It's deterministic and doesn't run your code.
pandas, backtrader, freqtrade and vectorbt. The validator auto-detects the framework and applies both generic look-ahead checks and framework-specific ones (e.g. backtrader's [1]-is-future indexing, freqtrade's informative-pair merges, vectorbt's from_signals same-bar execution).
No. The score measures code CORRECTNESS — whether your backtest could have known what it's acting on and whether it models costs and risk. It says nothing about profitability, and nothing here is a prediction or trading advice.
No. The analysis is deterministic static pattern-matching that runs on the server and returns the report — your code is not executed and not stored.