Understanding Optimizer Results

How to interpret the metrics in create_strategy / get_strategy_status output. Each strategy in top_strategies is a Pareto-optimal configuration -- no other strategy in the search space beats it on all metrics simultaneously.


Key Metrics

CAGR (Compound Annual Growth Rate)

What it is: The annualized return rate, expressed as a decimal. 0.22 means 22% per year.

What's good:

CAGR Assessment
< 0.10 Low. Barely beating risk-free rate after fees
0.10 - 0.20 Solid. Typical for conservative IC strategies
0.20 - 0.35 Strong. Good capital utilization
> 0.35 Very aggressive. Check max_drawdown and p_ruin carefully

Caveat: CAGR is from simulated backtesting. Real-world performance may differ due to slippage, execution gaps, and regime changes.


win_rate

What it is: Fraction of trades that are profitable. 0.81 means 81% of trades make money.

What's good:

Win rate Assessment
< 0.50 Low; the strategy loses more trades than it wins
0.50 - 0.65 Normal for balanced presets with data-derived deltas
0.65 - 0.80 Good; typical for conservative presets
> 0.80 Very high; may indicate overfitting -- check OOS gap

Win rate vs Avg PoP: Both metrics are computed from the same simulation. Avg PoP is the average fraction of profitable outcomes across the candidate pool. Win rate is the fraction of executed trades that finish profitable after exit rules, rolls, and costs. They should be close (within a few percentage points); a large gap indicates a problem with the simulation or config.


max_drawdown

What it is: The worst peak-to-trough loss as a fraction of capital, measured on a mark-to-market basis. 0.09 means the portfolio lost 9% from its highest point at some time during the simulation.

Mark-to-market means open positions contribute their estimated unrealised P&L to the drawdown calculation. A market crash that puts your open ICs deep underwater will show up as a drawdown immediately -- not just when the positions eventually close.

What's good:

Max drawdown Assessment
< 0.05 Very conservative. Capital is well protected
0.05 - 0.10 Low. Comfortable for most investors
0.10 - 0.20 Moderate. Expect some painful weeks
> 0.20 Aggressive. Can test emotional discipline

Key insight: max_drawdown is the most important risk metric for IC strategies. A strategy with 22% CAGR and 8% max drawdown is fundamentally different from one with 22% CAGR and 18% max drawdown -- the second one will be much harder to stick with.


p_ruin

What it is: Probability that portfolio capital drops below the ruin threshold at any point during the simulation. 0.03 means a 3% chance of hitting the ruin level over the simulation period.

The ruin threshold is configurable per preset:

Preset Ruin threshold Meaning (on $15K)
Conservative 10% Ruin = dropping below $13,500
Balanced 15% Ruin = dropping below $12,750
Aggressive 25% Ruin = dropping below $11,250

What's good:

p_ruin Assessment
< 0.01 Excellent. Very unlikely to hit the ruin level
0.01 - 0.05 Acceptable for most risk profiles
0.05 - 0.10 Elevated. Conservative users should avoid
> 0.10 Red flag. Strategy is too aggressive for the capital allocation

Why it matters: p_ruin is the "tail risk" metric. A strategy might have great CAGR and win rate but still have high p_ruin if its losing trades are catastrophic (e.g. wide wings with low protection). Unlike max_drawdown (which reports the median worst case), p_ruin tells you the probability of hitting a dangerous level.


sharpe_ratio

What it is: Annualized Sharpe ratio — excess return divided by return volatility across Monte Carlo paths. Uses a configurable risk-free rate (default 4.5%). Zero in EV simulation mode.

Sharpe and Sortino are NSGA-II objectives: the optimizer actively selects for risk-adjusted return, not just raw CAGR.

What's good:

Sharpe Assessment
< 0.5 Low. Returns do not compensate for volatility
0.5 - 1.0 Typical for conservative IC strategies
1.0 - 2.0 Strong risk-adjusted return
2.0 - 3.0 Excellent. Verify with OOS validation
> 3.0 Suspicious. Likely a simulation artefact

Note: The engine clamps Sharpe to ±10.0. Trials with Sharpe above 5.0 are pruned during optimisation and will not appear in results.


sortino_ratio

What it is: Annualized Sortino ratio — excess return divided by downside deviation (only negative returns are penalised). More relevant than Sharpe for IC strategies because profitable trades should not count as "risk." Zero in EV simulation mode.

What's good:

Sortino Assessment
< 1.0 Low. Downside losses are large relative to returns
1.0 - 3.0 Solid downside-adjusted return
3.0 - 5.0 Strong. Losses are rare and small relative to gains
> 5.0 Suspicious. Near-zero downside deviation is unrealistic

Note: The engine clamps Sortino to ±10.0. A strategy reporting 10.0 means the cap was hit — downside deviation was effectively zero, which is not realistic over multi-year horizons.


cvar_drawdown (CVaR / Expected Shortfall)

What it is: Mean of the worst 5% of drawdown paths, scaled by sqrt(n_concurrent_lanes). More tail-sensitive than median drawdown because it focuses on the worst outcomes, not the typical case. Zero in EV simulation mode.

What's good:

CVaR Assessment
< 0.05 Very conservative tail risk
0.05 - 0.15 Moderate. Worst-case losses are contained
0.15 - 0.30 Elevated. The 5% worst paths are painful
> 0.30 Aggressive. Tail risk is substantial

Why it matters: max_drawdown is the median worst case. CVaR captures the tail — what happens when things go really wrong. A strategy with 8% max_drawdown but 25% CVaR has a long left tail that only shows up in extreme scenarios.


dd_floor (Drawdown Floor)

What it is: Theoretical minimum drawdown from position sizing: max_loss_per_entry / initial_capital. If median drawdown is below this floor, the simulation never experienced a single full-position loss, which is statistically implausible over multi-year horizons. Zero in EV simulation mode.

Red flag: When max_drawdown < dd_floor, the simulation is suspiciously optimistic — every single trade exited profitably or at a partial loss, which does not happen in practice.


capital_efficiency

What it is: Fraction of the max_capital budget that is actively deployed in positions at any given time. 0.65 means 65% of capital is working. This is a diagnostic metric (not an optimisation objective).

What's good:

Efficiency Assessment
< 0.30 Low. Most capital sits idle. Safe but not productive
0.30 - 0.60 Moderate. Reasonable balance of deployment and reserve
0.60 - 0.80 High. Good capital utilization with manageable risk
> 0.80 Very high. Little reserve for margin calls or drawdowns

Trade-off: Higher efficiency = higher CAGR but less safety margin.


annualized_ror

What it is: Annualised return on risk — annualized_pnl / max_capital. A linear rescaling of annual P&L by capital. This is a diagnostic metric (not an optimisation objective — Sharpe and Sortino replaced it).


n_lanes

What it is: Number of concurrent IC positions the strategy runs.

Context: More lanes means more diversification across expiry dates and strike levels. A 3-lane strategy has 3 ICs open simultaneously, staggered by entry date. If one IC takes a loss, the others may still be profitable.

n_lanes Description
1 Single position. All-or-nothing each cycle
2-3 Moderate. Staggered entries reduce per-trade impact
4-6 Higher diversification. Each position is a smaller % of capital
> 6 Requires sufficient capital. Diminishing diversification returns

entry_freq_days

What it is: Average calendar days between opening new positions.

Frequency Description
7 Weekly entries
14 Biweekly entries
21-30 Monthly entries

More frequent entries combined with more lanes creates a "conveyor belt" of overlapping positions, smoothing P&L.


avg_days_held

What it is: Average holding period per position in calendar days. IC strategies typically hold 21-45 days.

Shorter holds (< 21 days) indicate more active management (early exits, tight profit targets). Longer holds (> 45 days) indicate a more passive approach.


total_trades

What it is: Total number of simulated trades. More trades means more statistical confidence in the other metrics.

Trades Confidence
< 50 Low. Results are noisy. Treat with caution
50-200 Moderate. Reasonable for decision-making
> 200 High. Metrics are statistically meaningful

Effect of Effort Level on Result Quality

Higher effort levels produce tighter confidence intervals on all metrics. The key driver is n_paths (Monte Carlo paths) and oos_seeds:

Effort Paths OOS Seeds Est. time Effect on metrics
free 1,000 3 ~45s Noisy estimates. p_ruin and drawdown have wide bands
low 3,000 3 ~40s 3x tighter. Suitable for quick scans
medium 5,000 10 ~2 min Reliable for trade decisions. 10-seed OOS catches most overfitting
high 10,000 20 ~8 min Tight estimates. 10-year horizon captures rare regimes
ultra 10,000 50 ~12 min Highest confidence. 50-seed OOS gives publication-grade validation

If you see a strategy with win_rate=0.82 on low effort, re-running on high or ultra will give you a more precise estimate -- it might tighten to 0.80 or widen to 0.84, but you'll know it's real.


Robustness (Out-of-Sample Validation)

The robustness field contains OOS validation results, which measure whether the strategy's performance holds up outside the training data.

oos_cagr_median

Median CAGR across out-of-sample seeds. This is the "realistic" CAGR -- what you might expect in production, stripped of in-sample bias.

oos_cagr_p5

5th percentile CAGR across OOS seeds. This is the worst-case scenario from the validation. If this number is positive, the strategy survived even the worst resample.

overfit_gap

In-sample CAGR minus OOS median CAGR. Measures how much of the in-sample performance is "real" versus "overfit."

Overfit gap Assessment
< 0.02 Excellent. In-sample and OOS performance are nearly identical
0.02 - 0.05 Acceptable. Modest overfitting
0.05 - 0.10 Elevated. The strategy may have overfit to training data
> 0.10 Red flag. In-sample performance is unreliable

Free vs premium OOS

Aspect Free Premium
Seeds 3 3-50 (effort-dependent)
Mode Bootstrap resample Full GARCH Monte Carlo
Gap metric 3-seed median Median over N seeds (statistically robust)

The free tier provides a basic sanity check with 3 OOS seeds. Premium tiers increase seeds with effort level (up to 50 at ultra), and use parametric GARCH simulation for higher fidelity.


How to Compare Strategies

When reviewing top_strategies, focus on these trade-offs:

CAGR vs max_drawdown

The most important trade-off. A strategy with lower CAGR but much lower drawdown may be the better choice for most users. The Pareto front presents the optimal trade-off boundary -- no strategy below the front beats one on the front on both metrics.

win_rate vs CAGR

Higher win rate often comes at the cost of smaller per-trade profit. A 90% win-rate strategy with 8% CAGR is more predictable but slower growing than a 75% win-rate strategy with 20% CAGR.

capital_efficiency vs p_ruin

Deploying more capital increases CAGR but also increases exposure. If p_ruin is above your comfort threshold, the strategy is too aggressive for your capital allocation.

Overfit gap as a tie-breaker

When two strategies have similar CAGR and drawdown, prefer the one with a lower overfit gap. It is more likely to perform consistently in live trading.


Red Flags

Risk metrics

  • p_ruin > 0.10 -- strategy is too aggressive
  • max_drawdown > 0.25 -- hard to recover from psychologically
  • capital_efficiency > 0.90 -- no safety margin for adverse moves
  • overfit_gap > 0.10 -- in-sample results are unreliable
  • total_trades < 50 -- insufficient sample size

Ratio warnings (automated sanity checks)

The backend flags these automatically in the response warnings array:

  • Sharpe > 5.0 -- no IC strategy sustains this; likely a simulation artefact
  • Sharpe > 2.5 -- high for an IC strategy; verify with OOS before trading
  • Sortino = 10.0 (engine cap) -- downside deviation is near zero, meaning the simulation produced almost no losing paths. Not realistic.
  • Sortino > 5.0 -- near-zero downside deviation is suspicious

Consistency checks

The backend also flags impossible metric combinations:

  • Low win rate (< 55%) with near-zero CVaR -- a strategy that loses half its trades cannot avoid tail drawdowns
  • Win rate < 70% with 0% P(Ruin) and positive CAGR -- losing streaks over multi-year simulations should produce nonzero ruin probability
  • High CAGR (> 10%) with near-zero CVaR -- high returns without measurable tail risk are likely a simulation artefact
  • max_drawdown < dd_floor -- the simulation never experienced a full-position loss, which is implausible over multi-year horizons
  • Avg PoP and win rate disagree by > 10pp -- both come from the same simulation and should track closely

Cross-references