Imagine you are packing a suitcase for a long trip.
You want it light. You want it warm. You want it cheap. You want shoes for dinner, shoes for rain, and the jacket that makes you look mysteriously competent in hotel lobbies.
At some point, “best suitcase” stops being one question. A lighter suitcase may be less warm. A cheaper suitcase may be less durable. A more complete suitcase may be harder to carry.
Backtest results have the same problem.
A trader rarely wants only the highest return. They want return, but not with ruinous drawdown. They want a high win rate, but not if it clips every winner too early. They want enough trades to trust the sample, but not so many that costs eat the edge.
Frontier is built for that moment: when “best” depends on a set of goals that disagree with each other.
Comparing competing objectives
Suppose a batch test produces thousands of candidate settings. Each row has metrics:
- Return.
- Max drawdown.
- Win rate.
- Trade count.
- Profit factor.
- Final value.
One way to rank them is to create a weighted score:
score = return - 2 * drawdown + 0.5 * win_rate
That can be useful later. But doing it too early can hide the argument inside the formula. Why is drawdown worth exactly twice as much? Why should win rate matter half as much? What if two candidates score the same but behave completely differently?
Frontier delays that compression. It asks a more transparent question:
Which candidates cannot be beaten across all selected objectives at once?
That question comes from Pareto dominance.
A small example
Say we care about two objectives: higher return and lower drawdown.
| Candidate | Return | Max drawdown | Status |
|---|---|---|---|
| A | 42% | 18% | On frontier |
| B | 38% | 16% | On frontier |
| C | 42% | 24% | Dominated by A |
| D | 30% | 14% | On frontier |
| E | 28% | 22% | Dominated by B and D |
Candidate C has the same return as A but worse drawdown. If those are the only two objectives, C is not worth keeping in the main comparison.
Candidate E is worse than B on both return and drawdown, and worse than D on return while also having more drawdown. It is clearly dominated.
Candidates A, B, and D remain. None of them beats the others on everything. A has the highest return. D has the lowest drawdown. B sits between them.
That set is the frontier.
What the Frontier adds to a ranking
A ranked table gives you a line. A frontier gives you a shape.
That shape keeps strategy research’s exchange rates visible:
- How much drawdown must I accept for another 10% return?
- How much return do I give up to improve win rate?
- Does a higher trade count come with lower average trade quality?
- Is the best-return candidate meaningfully better, or only slightly better with much worse risk?
The frontier lets those tradeoffs stay visible.
Comparing candidates across return, drawdown, win rate, and trade count directly is multi-objective optimization.
The knee: where the tradeoff changes
The most interesting point on a frontier is often not the endpoint.
Imagine candidates arranged from low drawdown to high return. Early on, accepting a little more drawdown might buy a lot more return. Later, the bargain may deteriorate: a large increase in drawdown only buys a tiny increase in return.
The bend in that curve is called a knee.
| Candidate | Return | Max drawdown | Extra return vs previous | Extra drawdown vs previous |
|---|---|---|---|---|
| Low risk | 24% | 8% | - | - |
| Balanced | 39% | 13% | +15% | +5% |
| Aggressive | 45% | 26% | +6% | +13% |
The balanced candidate may be the knee. It is the place where the frontier bends from a good bargain into a worse one.
That does not mean the knee is always the correct choice. A trader with a high risk tolerance may prefer the aggressive candidate. A trader who cares about capital preservation may prefer the low-risk candidate.
The value of the knee is that it makes the tradeoff explicit. It says: here is where the price of more return appears to change.
Constraints before comparison
Not every result deserves to enter the frontier.
If a strategy only took two trades, its 200% return may be a story, not evidence. If max drawdown is beyond what a trader could tolerate, the result may be irrelevant no matter how high the return is. If a setting violates the strategy’s practical rules, it should be filtered out before comparison.
That is constraint filtering.
For example:
- Minimum trade count: at least 30 closed trades.
- Maximum drawdown: no worse than 25%.
- Minimum final value: above starting capital.
- Minimum average trade: high enough to survive costs.
After those constraints, the frontier can focus on plausible candidates rather than theatrical ones.
Filtering changes the comparison set from every mathematically non-dominated row in the raw export to the candidates you could take seriously.
Large batches need approximation
A small sweep can compare every candidate directly. A large sweep may contain hundreds of thousands or millions of rows.
Exact Pareto comparison can become expensive because many candidates must be compared against many others. Frontier can use bounded representative sets before exact comparison. One practical technique is epsilon approximation.
The intuition is simple: group very similar candidates into buckets, keep representative candidates, and then compare those representatives more carefully.
This preserves the shape of the tradeoff space while keeping the interface responsive.
Reading a Frontier result
A weak conclusion sounds like this:
“The best row returned 92%.”
A stronger frontier-aware conclusion sounds like this:
“The 92% row sits on the frontier, but it requires 38% drawdown. There is a knee around 74% return and 19% drawdown, and below that point return drops quickly. After filtering out candidates with fewer than 30 trades, the knee remains.”
The frontier leaves risk visible and shows the available bargains without treating one objective as the only one that matters.
What Frontier can and cannot show
Frontier does not decide your risk tolerance for you.
Its job is to remove candidates that are clearly worse under your chosen objectives, then show the remaining tradeoffs plainly.
Sorting by return alone hides what you must sacrifice to gain something else. Frontier leaves those tradeoffs visible.