AMMDocumentationWebsite ↗
how to · 5 min read

Evaluate optimisation results and robustness

Compare candidate performance, parameter neighbourhoods and Genetic diagnostics before selecting a historical configuration.

Reviewed 2026-10-24 · Windows & macOS

On this page

Open the run and establish its scope#

Open a run from the Optimization Config panel's History. Search by algorithm, run ID, symbol or strategy, and use All, Running, Completed, Failed or Cancelled. History identifies the target, progress, worker and failure reason. A result loaded from history is stored evidence; it does not repeat the search.

The results workspace has Results, Surface, Curve Grid and GA Diagnostics. ⌘/Ctrl+1–4 select them while the panel has focus. The run header provides status and settings, successful/failed test counts, duration and best/plateau information. Read these before comparing rows from another run.

AMM parameter optimisation with candidate results, sensitivity surface and equity chart in dark modeView full-size screenshot ↗
A nine-candidate AAPL parameter search with a results table, neighbourhood surface and selected candidate chart, equity and trades.

Inspect candidate rows#

Use Results to sort by the target or neighbour average. Filters include Top N, shape and an expression filter. The table's Nbr avg and Shape help distinguish a single high value from a wider region of similar performance. They are research summaries, not statistical confidence guarantees.

Select a candidate to load its chart, equity or summary. The detail pane offers Chart, Equity, Both and Summary; the trade list can show All, Wins or Losses. Inspect losing trades as well as winners. A smooth summary can hide a single large trade or a short high-performing interval.

Candidate results are paged. Load next 100 fetches more rows. A filtered subset of the loaded table is not automatically the entire search. Check the run's total and loaded count before claiming that a candidate is the only acceptable result.

Right-click a row for Open in This Tab, Open in New Window, Copy parameters, Show on surface, New backtest with these parameters or Walk-forward these parameters. A new Backtest/Walk-forward handoff preserves the supported execution assumptions, including frozen fill defaults and applicable futures roll/price settings. Review the receiving form before submission.

Read the surface as a conditional slice#

Surface plots a chosen metric against two parameter dimensions. Other dimensions are held at the current selection. This means a broad green area in one slice does not prove that every combination of the remaining dimensions is robust.

The view can identify a plateau, an isolated peak or a thin edge. Its recommendation card explains the reason; the editable plateau threshold changes the research classification. Inspect neighbouring rows and the text alternative, and use parameter slices to understand which change produces the difference.

For example, a moving-average strategy may produce similar outcomes over several fast/slow pairs, but only at one stop setting. Examine another slice with the stop changed. A best point on the edge of the allowed range can mean the search boundary matters; it does not authorize silently expanding the range after reviewing the same out-of-sample period repeatedly.

Show on surface is useful when comparing a high-return row with one ranked by neighbour average. Keep track of the target and filters so that colour and selection are interpreted consistently.

Compare equity shapes and Genetic evidence#

Curve Grid places candidate equity curves in a visual comparison. Look for concentration, jumps, long flat periods and similar shapes that may represent effectively duplicate behaviour. Open a promising cell's exact backtest rather than relying on a sparkline alone.

GA Diagnostics applies to Genetic runs. It provides stored generation convergence, a generation table and parameter exploration. Gaps labelled not stored are missing evidence, not zero improvement. Non-Genetic runs explain why this view is unavailable and direct you towards the surface.

Early convergence can reflect a stable region or inadequate exploration. Continued improvement can reflect search progress or repeated fitting. Interpret diagnostics together with the fixed search space, population settings, candidate failures and unseen-period results. Neither a completed generation count nor an attractive curve establishes a trading edge.

Use sensitivity and exports#

The Export menu offers result CSV, Parameter Sensitivity, sensitivity CSV and best/recommended parameter copying. Parameter Sensitivity groups target values by each parameter value and reports average, minimum, maximum and run count. Different counts and interactions with other parameters can affect the averages.

For a two-parameter system, a high average for one value can arise because that value was paired with favourable values of the other parameter. It is a descriptive summary of the tested candidates, not an isolated causal effect. The dialog's loading/error state applies to that analysis without replacing the run.

Retain the run ID, exact plugin identity, dates, fixed size, data source and execution assumptions alongside an export. A naked parameter map cannot reproduce a historical result or configure a live broker account correctly.

Recover and decide the next experiment#

When child detail fails, reopen the candidate and inspect the named error. For missing bars, verify chart paging and instrument selection. For a failed/cancelled search, distinguish retained completed candidates from untested combinations. Do not describe an interrupted search as exhaustive.

If history fails to load, Retry uses the selected API server. Check the host before assuming another server's run was deleted. If an old result cannot be decoded under the current schema, preserve the original artifact and perform a new, explicitly identified run rather than altering old evidence to resemble a current result.

The next useful step is often a plain backtest inspection, a controlled spread/cost sensitivity run, or Walk-forward testing. Portfolio allocation comes later and uses the saved source artifacts with their own restrictions.

Application screenshotOpen original ↗