Free during beta $19.99/mo at launch Get your free beta key →
Verdict Strategy BuilderNT8

How the engine works

How evolution works

Verdict Strategy Builder searches for strategies with a genetic algorithm (GA) — an optimizer modeled on natural selection. You don't write a strategy; you define a space of possible strategies, and the GA breeds better ones out of it. This page explains the machinery conceptually; the knobs live on the Optimizer tab.

The candidate

Each candidate strategy is a genome: an entry-condition tree built from your canvas blocks (comparisons, crossings, AND/OR combinations), plus exit genes (stop kind, R-multiple target, trailing/breakeven/partials, time stop) and the block parameters sampled from your ranges. Everything on the Run tab — account, costs, sizing, session rules — is not part of the genome: it's the fixed world every candidate trades in, so scores are comparable.

The loop

  1. Seed a population of random candidates (the Population knob).
  2. Evaluate every candidate — a full backtest over the selected window, scored by the fitness function.
  3. Select parents, favoring higher fitness.
  4. Breed the next generation: with probability = the crossover rate, two parents recombine (subtrees of entry logic and exit genes are exchanged); otherwise a parent is copied. Mutation then perturbs parameters and occasionally rewires logic.
  5. Elitism copies the top few candidates into the next generation untouched, so the best found is never lost.
  6. Repeat for the configured number of generations, or until early termination decides the search has stalled.

Along the way the engine eliminates behavioral duplicates (two genomes that trade identically count once) and adapts its operator rates as the search progresses.

Reading the live run

The run screen streams the story of the search:

  • Best fitness climbing = the search is still finding improvements. A long flat stretch = converged (or stuck).
  • Median fitness tracks the population as a whole; best rising while the median stalls means a few lineages are pulling ahead.
  • Diversity (0–100%) measures how genetically different the population still is. High diversity = still exploring; collapsing diversity = converging. A population that converges in the first few generations probably has too-narrow ranges or too small a population.

Why the result isn't "the best strategy"

A GA is a stochastic searcher: it finds good regions of a huge space, not a provable optimum. Two consequences:

  • Different seeds find different strategies. That's a feature — re-run with a new seed to explore another path. Identical seed + identical inputs reproduce a run exactly.
  • The optimizer will exploit anything you let it. If the fitness metric is gameable (raw net profit, say), it will be gamed — that's why Composite is the default, why gates exist, and why the validation gauntlet gets the final word. Evolution proposes; validation disposes.