How the engine works
Reading the results
A strategy's Results stage (the workspace's pipeline rail, or a finished run's View Results button) ranks every strategy that run discovered. Opened without a run selected it lists the strategy's finished runs; the run picker at the top switches between them.
The summary header
Across the top: the Dataset (symbol, timeframe, date range), the number of Strategies, the Best fitness found, what the run Optimized for (the fitness metric), and the Verdicts tally — counts of Pass, Marginal, Kill, and unvalidated. If every validated finalist was killed and the run optimized a gameable metric, a hint explains the foot-gun (see Fitness & metrics).
Filters and controls
- Verdict chips — All / Pass / Marginal / Kill / Unvalidated, each with its count.
- Search — substring match on strategy id or hash.
- Min trades — hide strategies with fewer closed trades.
- HBT diverged — show only strategies flagged by the in-house cross-check (blank on standard installs; see Understanding validation).
- Preset — named column sets: the built-ins (All columns, Validation focus, Raw performance) plus your own — Save current as preset… keeps the column chooser's state under a name.
- Columns — a chooser to show/hide columns by group; your choice persists on this device.
- Density — comfortable or compact rows. One preference, honored by every table in the app.
- Export CSV — writes the visible columns in the current sort order.
Stars, names, and multi-select
- The ★ column feeds Favorites: click ☆ to star a result under a name you choose; starred rows show the name, and ✎ renames.
- Checkboxes select rows (shift-click selects a range; on the keyboard, Space toggles and Shift+Space extends). With a selection: Compare side-by-side (2–5 rows — overlaid equity curves and a metric table with the best value per metric highlighted), Add to Favorites, Export… the selection as CSV.
The columns
Grouped as Performance, Validation, and Style. Click a header to sort — first click puts the best value on top (whichever direction that is for the column), second click reverses, third restores original rank order. Missing values always sink to the bottom. The Rank column stays pinned while you scroll horizontally.
| Column | Meaning |
|---|---|
| Rank | Position by fitness (1 = best). |
| Id | Short strategy id — click the row (or press ⏎ on it) for detail. |
| Verdict | Pass / Marginal / Kill chip, or – if unvalidated. See Verdicts. |
| Equity | Sparkline of the equity curve — green if it ended up, red if down. |
| Fitness | The score the optimizer maximized. Comparable only within a run. |
| Net PnL $ | Net profit in dollars over the backtest window — green positive, red negative. |
| PF | Profit factor — gross profit ÷ gross loss. |
| Sharpe | Risk-adjusted return. |
| Trades | Closed-trade count. Small counts make every other stat noisy. |
| Win % | Winning trades ÷ total. |
| Expectancy $ | Average P&L per trade. |
| Avg win $ / Avg loss $ | Mean winner and mean loser. |
| Max DD $ | Largest peak-to-trough equity drop (lower is better; sorts accordingly). |
| Wins / Losses | Raw counts. |
| WF eff. | Walk-forward efficiency — mean OOS/IS ratio. ~1.0 excellent, <0.5 the edge halves out-of-sample. |
| MC robust. | Monte Carlo robustness 0–100 with a colored bar (green ≥65, amber ≥40, red below). |
| Param stress | Parameter-stability score 0–100, same bar coloring. |
| HBT div. | In-house cross-check divergence: yes / no / – (not checked). |
| Style | 0–100 alignment with the declared style preset — reads low on drift. |
| Complexity | Rule-node count in the genome. Lower is simpler; simpler tends to generalize better. |
A reading order that works
- Filter Verdict → Pass (fall back to Marginal if empty).
- Sort by MC robust. or Param stress rather than fitness — fitness already picked the order once; robustness is the independent information.
- Distrust anything with few Trades, whatever the other columns say.
- Prefer lower Complexity between otherwise similar candidates.
- Star the shortlist (Favorites), then click through and read the detail screen before any export.
A results table that's all Kill is the gates working, not failing — see When everything is Kill.