Orometra

Methodology

How the engine decides

We do not re-rank your MT5 table. We look for plateaus and tell you how much evidence backs them. These are the steps, in the order the engine runs them.

01

It reads your export as it is

Drop the XML that MT5 exports, with commas or dots as decimals. The engine does not trust column names to tell parameters from metrics: it uses how they behave (a parameter has the same value for the same pass in the optimized period and in the forward; a metric does not). It does need to recognize the metric columns (profit, profit factor, drawdown, trades) by name, and it reads English and Spanish headers: if key columns are not recognized, it tells you instead of giving a verdict that rests on less than it seems. If it drops any row, it tells you.

02

Your minimums before any ranking

A configuration only enters the search if it clears your floors on the optimized period: profit factor, drawdown, number of trades and positive profit. A ranking always produces a “top 5%”, even when everything loses money; a floor does not.

03

Quality without the Result column

Result is whatever you asked MT5 to optimize, so it is biased in its own favor. The engine scores each configuration from 0 to 1 with several metrics at once: profit factor, drawdown, recovery factor, Sharpe ratio and number of trades. Each metric is measured on a scale that starts from your minimums (a profit factor of 1 scores zero; 0.3 above your minimum or more scores the maximum), and then they are combined with a geometric mean: one bad metric cannot be offset by a good one. Risk (drawdown) weighs the most, then return and efficiency, and last the number of trades. A configuration that loses money scores zero.

04

Plateaus, not peaks

For each configuration it looks at its neighbors: those one, two or three steps away on your grid, adding up the steps across parameters (from 30 to 35, or from 0.1 to 0.2, is one step). The radius only grows until the typical configuration has about eight neighbors. Only the parameters that really change the result count; yes/no and text parameters must match, and those that barely matter are ignored. And only the neighbors you actually tested count: missing ones are never made up.

A plateau is a connected zone of at least three configurations that clear your minimums and whose neighbors respond too: each has at least four tested neighbors, at least 90% of them clear your minimums, three out of four have at least acceptable quality, and the point does not stick out sharply above them. Isolated peaks are rejected, and the report tells you why (too few neighbors, a sharp drop next to it, a peak that sticks out too much…).

Inside the plateau it picks the configuration with the best combined rank on the optimized period and the forward, averaged with its neighbors: not the tallest point, and not luck at a single point. If there is no plateau and there is a forward, it gives a tentative suggestion by the same rule and says so. In our blind benchmark this choice lands closer to the best possible configuration than the pass MT5 lists first, the best forward row, the rank sum and random choice. When every case without a plateau counts as a miss, “average with neighbors” comes out ahead by a hair; counting the tentative suggestion, it beats that one too. In genetic searches, MT5’s #1 comes out ahead.

05

The forward confirms or demotes

Plateaus are found with the optimized period only. Then the forward puts them to the test: the plateau’s configurations must clear your minimums again. MT5 may send only the best passes to the forward (according to its help, the top 10% in a complete search and the top 25% in a genetic one), so some configurations may have no forward: they count as not validated, never as passed.

If fewer than 80% of the plateau’s configurations that have a forward clear your minimums there, you get a warning; below 65%, it is a serious limitation and the level drops to weak. A plateau with many unvalidated configurations also drops in rank. Your minimums are required in each period separately, so a good forward cannot hide a weak optimized period, or the other way around, and the forward’s minimum number of trades is scaled to its length (never below 30). The two periods’ ranks are added together only to choose within an already validated plateau.

06

It estimates how much could be chance

Test thousands of configurations and some will look great by pure chance. The engine computes the bar that the best Sharpe ratio would clear by luck alone only 5% of the time, given how much the Sharpe ratios of your passes vary and how many passes you ran, and compares it with your best one (the forward’s, if there is one). It is not the best you would expect by luck: pure noise clears that one almost half the time. Every pass counts as a trial, even near-identical ones: if neighbors behave alike, the bar ends up somewhat higher than strictly needed, which is the cautious way to be wrong. Until October 15, 2026 neighbors were grouped together, and in our test bench pure noise cleared the bar more than a third of the time instead of 5%. If your best result does not clear that bar, it is a serious limitation: the top result may be nothing but noise. Clearing it is necessary, not sufficient. It is an adaptation of the Bailey and López de Prado test, not their published Deflated Sharpe Ratio.

It also looks at your table the way MT5 ranks it: how often the best configuration of one period falls below the middle of the table in the other (what the report calls “how often MT5’s ranking fails”), whether what does well on the optimized period tends to do well in the forward, whether a parameter’s best value changes from one period to the other, whether the proposed configuration sits on the edge of the tested range, and how many trades there are per optimized parameter: below 50, everything is provisional; below 15, the surface is mostly noise.

Finally, it tells you what to expect from the recommended configuration once its luck is discounted. It measures how much of what a configuration makes above the rest on the optimized period it keeps on the forward, and shrinks what the recommended one and its neighbors made accordingly. The result is a profit per trade to plan with, compared with what any configuration that meets your minimums makes, and a lower bound for its edge over them: if that bound does not clear zero, the recommended one cannot be told apart from the rest of the family. It is a cautious estimate, measured against the truth in the test bench, and it assumes the next period resembles the forward: a regime change moves the whole family, and no past data anticipates that.

07

It tests itself

What the engine requires to call something a plateau (minimum quality, robustness, number of neighbors, size…) are our decisions, not laws. To check that the recommendation does not depend on them, the search is repeated 50 times moving them by up to ±20%, first one at a time and then all together, and it counts how often the winning configuration still falls inside the same plateau. Above 80% is fine; between 50% and 80%, you get a warning; below 50%, it is a serious limitation. The same is done, with fewer repetitions, moving your minimums (with very large files this second test is skipped, and you are told). If a recommendation only appears with the exact numbers, it is not a recommendation.

08

What each evidence level means

The verdict grades how much your data back the recommendation, not your EA. None of the levels means “go trade”. Warnings about the order of your MT5 table (the top pass of one period does not hold in the other, MT5 only sent the best passes to the forward…) are always shown, but they do not lower the level: they judge the ranking, not the plateau.

Strong
A plateau validated on the forward that keeps winning when the engine’s thresholds are moved, with no warnings about it. The most the optimized period and the forward can back. If you add an unseen period, it stays strong unless that period goes against it.
Good
The same, but with one warning about the plateau worth reading (for example, it sits on the edge of the tested range).
Moderate
A plateau with real support, but with several warnings worth reading, or a good or strong one that the unseen period does not confirm.
Weak
At least one serious limitation: for example, no forward, no connected zone, or a best result that does not beat chance.
Insufficient
So few configurations clear your minimums that nothing can be said, for or against.
09

The acid test: your backtest on unseen data

The cleanest check is to test the configuration on a period you used neither to optimize nor to validate. Drop that backtest report into the app: it checks that the parameters are those of the proposed configuration and compares each metric with what is usual for its plateau, adjusted to the length of the period. The result is within the usual range, in the tail or out of range.

That check can only keep the level or lower it, never raise it, because it detects little: in our benchmark, when the edge is gone it warns in 35–45% of cases depending on the length of the period, and with the edge intact it raises a false alarm in 24–30%. On the trades of that report it also warns you if there are too few trading days to conclude anything, and shows what happens if spread or slippage get worse than in the optimization. If the report is a long backtest and you give the last day you looked at for choosing, the check uses only what comes after, computed from the trades: trades, profit and profit factor (drawdown, recovery factor and Sharpe cannot be reproduced that way). With three figures it warns less: 18–29% when the edge is gone and 8–13% false alarms.

With the same trades it runs a Monte Carlo in two parts. The radiography reorders whole days of trading (2,000 orders) and tells you whether the real order was lucky: how large the drop and the losing streak would usually be with the same trades. It is not a forecast, and it is exact when the days are interchangeable. The 6- and 12-month forecast (Bayesian block resampling of days, with its level calibrated by double bootstrap) only appears with 2 years of trades you did not use for choosing, at least 100 trading days and no streaks or clustered volatility; otherwise it says why. There is no 3-month forecast: it was not reliable with any sample size. Both passed tests on simulated cases with a known answer, with rules set in advance; martingales get no figures.

How we know it works

Before every change to the engine is published, it goes through a benchmark: simulated optimizations shaped like an MT5 export in which we know the truth, because we put it there. There are cases with no real edge at all, pure overfitting (the edge exists only in the optimized period), a regime change, genetic searches and a grid taken from a real export. The pass marks were written down before seeing any result, and each exam is blind, on new cases.

In the latest exam, 800 optimizations:

And where it fails: it passed 12 of the 13 criteria. When it sees no plateau, Orometra does not propose one (at most, a tentative suggestion), and the exam counts each of those cases as a miss: that is why averaging each configuration with its neighbors comes out ahead overall, by a hair (0.211 versus 0.213). Measured the way the app is actually used, it does not come out ahead: when Orometra proposes a plateau it lands at 0.126, versus 0.166 for the neighbor average, and counting the tentative suggestion, at 0.15, versus 0.21. That accounting is also why MT5’s #1 beats it in genetic searches, within the margin set in advance (0.254 versus 0.239). These are simulated data: the test on real MT5 optimizations is still pending. The rules, written in advance and the full results are public (in Spanish).

What it does not do

Why not just ask an AI?

Paste your table into a chat and you will get a convincing explanation of why the best result in the list is good. With thousands of configurations tested, some always look good by chance. That is not analysis — it is a story.

Read the full explanation
Same data, same answer
A language model writes every answer from scratch: it changes with the wording of your question, the order of the data and from one day to the next. Orometra is a calculation: same files, same result, today and a year from now. That is what lets you compare one optimization with another.
A fixed method, not an improvised one
Ask an AI to assess robustness and it makes up a method on the spot. You cannot know whether it is the same as last time, or whether it is right. Orometra's method is written on this page, it is always the same, and automated tests check that it keeps doing what it says.
Numbers you can check
Language models can give figures that sound right and come from no calculation. Even when they write code, you have to review that code every time. Every figure in Orometra's report comes from the columns of your export and can be traced back.
It knows when to say no
An AI is built to be helpful, so it tends to answer even when the data cannot support a conclusion. Orometra lowers the evidence level and says why: if there is no plateau, if the forward does not confirm it or if the result does not beat chance, it stays at “weak”; and if the data are not enough even for that, it says “insufficient”.
Your strategy stays yours
For an AI to analyze your optimization you have to upload your parameters — the heart of your strategy — to another company's servers. Orometra runs the analysis in your browser: your files never leave your computer.
Something you can use
An AI gives you text. Orometra gives you a specific configuration, its evidence level, the reasons, a .set to load in MT5 and the range to re-optimize around it.

AI is very good at explaining concepts: use it to understand the report and ask it anything about it. But the decision of which configuration you risk your money on deserves a criterion that is fixed, tested and does not change from one conversation to the next.

Try it with my files