Making optimiser runs reproducible: data, settings and seeds
Posted: Thu Oct 15, 2026 8:47 pm
Making optimiser runs reproducible: data, settings and seeds
Ever run an optimisation, got a nice result, then a month later tried to repeat it and got something different? That usually comes down to something changing that you didn't record.
The usual suspects. The history data changed, because the platform downloaded more or the broker's data got updated. The tester settings were different, like modelling mode, spread, or date range. The EA code changed slightly. Or the optimiser itself uses randomness, as genetic optimisation does, and you got a different path through the parameters.
What helps is boring record keeping. Save a copy of the data you tested on, or at least note its source and date range. Save the tester settings file alongside the results. Keep the EA version in version control and record the commit with each run. If your optimiser lets you set a random seed, set one and note it. MT5's genetic optimiser doesn't make that easy, so I'd at least run it a few times and compare.
The payoff is that when a result looks good, you can rerun it and check it's real. And when something looks off later, you can work out what changed.
Without that it's hard to tell whether a strategy improved or the test setup just drifted.
Ever run an optimisation, got a nice result, then a month later tried to repeat it and got something different? That usually comes down to something changing that you didn't record.
The usual suspects. The history data changed, because the platform downloaded more or the broker's data got updated. The tester settings were different, like modelling mode, spread, or date range. The EA code changed slightly. Or the optimiser itself uses randomness, as genetic optimisation does, and you got a different path through the parameters.
What helps is boring record keeping. Save a copy of the data you tested on, or at least note its source and date range. Save the tester settings file alongside the results. Keep the EA version in version control and record the commit with each run. If your optimiser lets you set a random seed, set one and note it. MT5's genetic optimiser doesn't make that easy, so I'd at least run it a few times and compare.
The payoff is that when a result looks good, you can rerun it and check it's real. And when something looks off later, you can work out what changed.
Without that it's hard to tell whether a strategy improved or the test setup just drifted.