Skip to main content

Improving a strategy

A first draft is rarely your best strategy. Once you've assembled one and seen its backtest, you can improve it - either by guiding the AI yourself, or by letting it optimize automatically. Both run more refine-and-backtest cycles on the same strategy so you can watch the metrics move before you commit.

Open a saved strategy (or its chat) and choose Improve strategy. You'll pick one of three modes.

Correcting earlier documentation

Earlier docs described two modes, Manual and Loop. There are three, the third is Chart mode, which opens the backtest chart with Target Moves enabled and generates strategy hypotheses from moves you annotate. It has its own backend service and it was documented nowhere. See Chart mode below.


Manual Improve

The default. You review the backtest, describe the change you want in plain language, and the AI regenerates the strategy and re-runs the backtest for that turn. Repeat as many times as you like until it behaves the way you want.

Typical guidance:

  • tighten the stop-loss
  • reduce the drawdown
  • swap RSI for Bollinger Bands
  • trade less frequently, only the strongest signals
  • make the take-profit trail wider

Manual Improve keeps you in control of every change - use it when you have a specific idea of what to adjust.


Loop Improve

Loop Improve optimizes automatically. Instead of one change at a time, the AI runs a series of refine-and-backtest cycles on its own, steering toward an objective you choose, and returns the best version it found.

You set three things:

ControlWhat it does
ObjectiveThe goal the AI optimizes for (see below). Default: Balance return & risk
RoundsHow many refine-and-backtest cycles to run (1-25, default 10)
PatienceOptional early-stop: give up if there's been no improvement after this many rounds. Leave blank to run every round

You can also add an optional starting instruction to point the loop in a direction (for example, "focus on the London session").

Objectives

ObjectiveOptimizes for
Balance return & risk (default)The best risk-adjusted trade-off, not raw return
Maximize profitThe highest total return
Reduce drawdownThe smallest peak-to-trough loss
Increase win rateA higher share of winning trades
Reduce losing streakFewer consecutive losses in a row
Increase trade frequencyMore trades over the period
One objective at a time

The loop steers toward the single objective you pick. Optimizing hard for one measure often costs you another - chasing Maximize profit can deepen drawdown; chasing Increase win rate can cut trade frequency. Pick the objective that matches how you'll actually judge the strategy live.


Chart mode

The third mode, and the least like the other two. Instead of describing a change in words or letting the loop search, you annotate the chart.

How it works

  1. Chart mode opens the backtest chart with Target Moves enabled.
  2. You mark historical price movements, Long, Short, or Ignore.
  3. The platform analyses your annotations and generates strategy hypotheses from them.
  4. Each hypothesis is a testable strategy you can backtest.

It is deterministic, not a model

No AI is involved in Chart mode

Target Moves uses deterministic pattern-matching algorithms. No machine-learning model. Given the same annotations it produces the same hypotheses, which is what makes the output inspectable rather than something you have to trust.

The analysis carries a confidence score per hypothesis, and generation runs are tracked with idempotency so a repeated request does not produce duplicates.

Auto-annotate

Rather than marking everything by hand, the platform can propose the most significant moves for you. The selection is filtered by real quality criteria rather than just size:

CriterionPurpose
Minimum move size and minimum bar countExcludes noise
Reward-to-risk floorRejects legs whose adverse excursion is so deep that any stop derived from the marked set would be hit before the target
Pace preferenceFavours faster moves, percent-per-bar against a reference pace
Overlap capLimits how much a selected leg may overlap an already-selected one, so "best N" yields N distinct opportunities
Unreachable-entry penaltyDemotes legs the generated entry rule could never actually have entered
Chop detectionExcludes moves inside a choppy window

The reward-to-risk floor is the one worth understanding: a 6% move that first drew down 5% is not a tradeable opportunity, because the stop implied by the annotation would have been hit first. Marking it would teach the generator the wrong lesson.

When to use it

Use Chart mode whenRather than
You can see what you want to catch but cannot state it as a ruleManual, which needs the rule
You want the platform to infer the condition from examplesLoop, which optimises an existing rule
You are exploring what is even capturable on this instrumentEither

Limitations

  • You are selecting the training examples. Marking only the moves you remember fondly produces a strategy fitted to a curated past, the same overfitting risk as the Loop, arrived at differently.
  • Hypotheses are hypotheses. Backtest them and read the result as sceptically as any other.
  • Rate limits apply, and the service has its own error taxonomy.

Comparing versions

Every improvement - manual or looped - produces a new backtest, so you're never comparing against a memory. You can line up the versions and read the performance delta before keeping one, the same way you'd weigh two separate strategies with Compare or the Compare tab on the Backtest page.


Overfitting

This is the feature most able to produce a strategy that only works on the past

The Loop can run 25 refine-and-backtest cycles toward a single objective. It will find a configuration that fits the tested window well. That is what optimisation does, and it is not evidence about the future.

Three things that reduce the damage:

  1. Prefer Manual with a reason. Change one thing, because a metric was weak, and re-test. That is iteration against a diagnosis rather than a search.
  2. Use Patience. Early-stopping on no-improvement at least stops the search burning rounds on noise.
  3. Judge the result against the first version, not against the best version. If round 22 beats round 1 by a lot, ask whether round 22 found something real or just found the window.

And the structural point: the parameters were chosen after seeing the data. That is the definition of the trap, and no amount of care inside the loop removes it. See Reading results honestly.

Improve, don't over-fit

It's easy to loop until the backtest looks perfect - and end up with a strategy tuned to the past, not the future. A version that's a little worse on paper but simpler and steadier is usually the better live bet. Before you deploy an improved version, re-read it with the same scrutiny as any backtest: see Reading results honestly.


Next