Overview
Two champions, neither discarded — high-drawdown robots are labeled, not hidden.
Tier champions
| steady | xauusd_base_seed_0ff1c86bfe88 | $3,834 | 9.54% |
How to compete
The lab turns tuning a trading robot into a competition. You overclock a robot on your own machine, submit what you found, and it is re-scored against everyone else — on a slice of history no one can tune to.
Specimen ranking
Every robot is a catalogued organism, ranked by profit across the XAUUSD · daily · 10-year category. Dataset 6086b7de9fd83cbf · 2016-07-05 to 2026-06-30
Showing RAVEN-6. Regenerate with --generate-specimen-screen --candidate-id <id> to profile another robot.
RAVEN-6
steadyEvery figure below is measured on the held-out slice this robot could not tune to. High drawdown does not disqualify it — it is labeled.
Engine notes: use_session_filter_not_simulated_on_daily_bars
Equity curve
The whole pinned history, in-sample and held-out together, as the robot actually traded it.
Genome
Eleven genes. Every one of them is simulated.
Year by year
Best year 2024 at 23.45%, worst 2022 at -8.26%. A robot that earned in one year and gave it back is not the same as one that earned steadily.
| 2016 | -2.13% | |
| 2017 | -6.01% | |
| 2018 | -5.62% | |
| 2019 | +3.34% | |
| 2020 | +16.45% | |
| 2021 | -5.94% | |
| 2022 | -8.26% | |
| 2023 | -2.15% | |
| 2024 | +23.45% | |
| 2025 | +2.35% | |
| 2026 | +9.11% |
Walk-forward robustness
Profitable in 2 of 5 consecutive windows. A genuine edge holds across regimes; a fluke wins one window and collapses.
| window 1 | 2016-07-05 .. 2018-07-05 | $-1,289 | 12.89% |
| window 2 | 2018-07-06 .. 2020-07-02 | $1,193 | 5.24% |
| window 3 | 2020-07-06 .. 2022-06-30 | $-832 | 8.93% |
| window 4 | 2022-07-01 .. 2024-07-01 | $-276 | 13.76% |
| window 5 | 2024-07-02 .. 2026-06-30 | $3,928 | 9.54% |
Compare
Every robot on the board today sits in the steady tier, so this compares the top 3 by rank. When a wilder robot appears, it takes a column here automatically.
out_of_sample_official · dataset gold-daily-v1 · 2016-07-05 .. 2026-06-30
RAVEN-6 steady | QUASAR-V steady | VANTA-V9 steady | |
| Net return | $3,834BEST | $979 | $261 |
| Max drawdown | 9.54% | 2.19%BEST | 7.76% |
| Profit factor | 1.67BEST | 1.66 | 1.09 |
| Robustness | 0.4 | 0.4 | 0.6BEST |
| Win rate | 38.36% | 43.48%BEST | 36.99% |
| Trades | 73 | 23 | 73 |
Genes
8 of 11 genes differ. The shared ones explain nothing about why these robots diverged, so they are dimmed.
| •ATR_period | 14 | 21 | 14 |
| •ADX_min | 25 | 30 | 25 |
| •TP_R | 3.0 | 2.5 | 2.0 |
| •SL | 500.0 | 350.0 | 350.0 |
| •risk_percent | 1.0 | 1.0 | 0.25 |
| •use_session_filter | on | on | on |
| •use_grid | off | off | off |
| •use_martingale | off | off | on |
| •lot_multiplier | 1.0 | 1.0 | 1.5 |
| •break_even | on | on | on |
| •trailing_stop | on | off | off |
Genome Lab
What the search did to each of the 11 genes across 8 generations. Selection swept trailing_stop through the population: a gene that starts in almost nobody and ends in almost everybody is one the search kept choosing.
The exploration width does not narrow, and that is a choice, not an oversight. Mutation keeps a constant width by default, so the search looks just as widely in the last generation as in the first. Annealing it was measured: it does make the population converge, but on this data a converging search settles for a steadier, smaller champion while the constant-width one stumbles onto the lucky outlier — and the ranking policy says a lucky winner is a winner. Annealing is a lever a competitor can pull (--annealing-rate), not the house setting.
Convergence is not proof. A gene can sweep because every survivor inherited it from one lucky ancestor, not because it is good. That is what the held-out slice and the walk-forward windows are for.
Lineage
From the seed to the champion in 3 steps, across 8 generations and 97 evaluations. Profits shown are in-sample, because that is all the search ever saw.
dataset gold-daily-v1 · search scope in_sample_only · seed $-1,924 → champion $47,315
Experiments
Every robot ever submitted lands here, winners and failures alike. The record is the archive, not the showroom.
Methodology
How a robot earns its place on the board, and what the numbers on it do not mean.
Every rule stated here is read from the code that enforces it. This page cannot drift from the engine.
You submit parameters, not code
A robot is 11 numbers and switches — a genome. Nothing you send is ever executed. The engine validates each gene against its allowed range and refuses the submission if any falls outside. This is why the lab can accept robots from strangers.
Scored on history it never saw
The search only ever sees the first 75% of the pinned history. The last 25% is held out, and that held-out slice — and only it — produces the number you see on the leaderboard. A robot that memorised the past scores nothing here.
Chronological, never shuffled. The held-out slice is the most recent quarter of history, so a robot is judged on time it never saw.
And on whether the edge repeats
One good window can be luck. The robot is re-run across 5 consecutive walk-forward windows, and the fraction it wins becomes its robustness score. A genuine edge holds across regimes; a fluke wins one window and collapses. Both numbers are shown. Neither is hidden.
0.4 won two windows of five — the leaderboard says so.High drawdown is labeled, never discarded
Winning by luck is still winning. A robot with an enormous profit and a frightening drawdown stays on the board, next to the steadier ones, with its drawdown printed in full. We classify. We do not hide, and we do not delete.
| steady | Steady (DD <= 10%) |
| balanced | Balanced (DD 10-25%) |
| wild | Wild (DD 25-50%) |
| extreme | Extreme (DD > 50%) |
Costs are charged before you see a profit
Spread and slippage are charged on entry and on exit. A strategy that only works with free trading does not work.
25.0 points · slippage 5.0 points charged on entry and exit · commission 0.0 per unitThe dataset is pinned, so proofs stay true
If tomorrow's bar changed the dataset, every proof issued today would stop verifying tomorrow. So the history is pinned to a fixed window that has already ended, with an expected bar count and a checksum. The loader recomputes the checksum and refuses to score anything on data that does not match.
gold-daily-v1 · 2016-07-05 → 2026-06-30 · 2510 barssha256 6086b7de9fd83cbf2fda95a05e7541d10a8de307216cc750c699ba41c76bd0ef
Anyone can re-derive the result
Same pinned dataset, same engine, same cost model, same genome, same result — and the same anchor hash. A regression guard runs the whole chain on every commit and fails loudly if any scoring rule moves, because a silent change would break every proof ever issued.
--check-reproducibility re-scores a frozen genome and asserts the exact anchor hash. It exits non-zero on drift.What these numbers are not
This matters more than anything above.