The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Monte Neo strategy verifier listing page.
The independent verifier for trading strategies written by AI agents and humans.
Catch look-ahead bias, hidden trading costs and overfitting before a backtest reaches your money.
Docs · Quick start · Use from agents · Verifier API · Trap Suite · Changelog
A coding agent can turn a trading idea into a backtest in minutes. It will then tell you the strategy returns 40% a year with a Sharpe of 3. Most of the time that number is wrong, for the same few reasons:
shift(-1), centred windows, bfill,
statistics over the whole series, np.gradient, an FFT filter.Backtest libraries run whatever code you give them. None of them tell you the backtest itself is broken.
Monte-Neo checks the backtest, not the idea. Give it the price data and the strategy code or its positions. It returns one of four verdicts, the checks behind the verdict, concrete next steps and a reproducible, optionally signed certificate.
The agent's strategy used shift(-1), so it knew the next close. Monte-Neo found the leak in four
independent ways and named the line. After the fix, no look-ahead is left, and the verifier tells
the truth: on a random walk, the strategy has no edge after costs.
The run used a synthetic random walk; output shortened.
| Verdict | Meaning | CLI exit code |
|---|---|---|
PASS | No problems found | 0 |
PASS_WITH_WARNINGS | Usable; read the warnings | 0 |
NEEDS_MORE_EVIDENCE | Too few trades, or the Sharpe does not survive the number of variants tried | 1 |
REJECT | The backtest is broken or loses money after costs | 2 |
| Family | Checks |
|---|---|
| Look-ahead | Truncation probe (does bar t change when later bars are removed?), future-perturbation probe, static AST lint (20 rules), implausible hit rate |
| Economics | Net return after commission and slippage, break-even cost in bps, one- and two-bar execution delay |
| Statistics | Probabilistic and Deflated Sharpe priced by n_trials, sample size, holdout consistency, walk-forward out-of-sample check for grid searches |
| Integrity | Broken OHLCV, non-deterministic signals |
Every rule is backed by the Trap Suite: 50 strategies that are known to lie and 18 honest controls. It runs on every build, so the verifier cannot silently stop catching a leak or start accusing honest code.
| You are… | Use Monte-Neo to… |
|---|---|
| Building strategies with Claude Code, Codex, Gemini CLI or Cursor | Make the agent verify its own backtest before it reports results. The MCP server and the Claude Code plugin do this automatically. |
| Running a strategy repository | Add the GitHub Action. A pull request whose backtest leaks or loses money after costs fails CI, and the verdict is posted as a PR comment. |
| A quant, reviewer or allocator | Check a strategy someone else sends you, with their data and code, in one command. Re-check or verify the signature of the certificate they hand over. |
| A prop firm, strategy marketplace or trading course | Screen submissions before a human looks at them. Publish signed certificates next to listed strategies. |
| A researcher comparing agents | Run the Honesty Bench: the same tasks for every agent, scored by how often each one claims profit that is not there. |
next_action the agent can act on.n_trials always give the same certificate_id. Anyone can reproduce a certificate with --recheck.verify_grid count them for you. The Deflated Sharpe prices them in.Command line
my_strategy.py defines signal(df), which returns one position per bar: +1 long, 0 flat,
-1 short. The position decided on bar t is filled at the open of bar t + 1.
Python
Parameter search with honest trial counting
Claude Code (plugin with the MCP server, the verify-strategy skill and /verify):
Any MCP client (Codex, Gemini CLI, Cursor, and others):
It is also listed in the official MCP Registry as io.github.NeoZorK/monte-neo. Setup for each
client: Use from agents.
MCP tools: verify_strategy, verify_grid, probe_lookahead, cost_stress,
recheck_certificate, check_signature, verdict_schema, verifier_manifest.
The job fails on REJECT. The verdict and every check appear in the step summary.
Each run produces a strategy-verdict/1 JSON certificate. It contains the verdict, every check,
the metrics and the SHA-256 hashes of the data, signals and code.
Show that a strategy passed:
Link the badge to the verification page with your certificate and public
key (/verify/?cert=<https URL>&key=ed25519:<key>). Readers then check the signature in their
browser with one click; nothing is uploaded.
Python 3.11+ on macOS or Linux.
Monte-Neo started as a fast local research engine for Apple Silicon, and the verifier runs on it. The engine is still available. It is in maintenance mode: bug fixes only.
Docs: quick start · export API · backtest engine
Monte-Neo is in active development (beta). The verifier API and the strategy-verdict/1
schema are stable across minor releases. See the
roadmap.
Not investment advice. Monte-Neo checks backtest methodology. It does not predict future profit.
Found a way a backtest fooled you or your agent? Submit it as a trap. Bug reports and pull requests are welcome; see the contributing guide. Report security issues privately: SECURITY.md.
If Monte-Neo helps your research, please cite it. GitHub shows the citation under Cite this repository (CITATION.cff).