QUANTHEON Lab
Guide

Backtesting one strategy on many stocks (and why one ticker proves nothing)

A rule that works on one symbol is an anecdote: you found the symbol where it worked. Running the same rules across a whole universe in one pass is the cheapest honesty test there is — and the second cheapest way to fool yourself, if you read it wrong.

The one-ticker illusion

Suppose you test an idea on twenty stocks, keep the one that looked best and publish that curve. Nothing about that procedure is dishonest — and the result is still meaningless, because you have measured the best of twenty draws and reported it as if it were one. The same arithmetic that inflates a Sharpe when you try a hundred parameter sets inflates it when you try a hundred symbols; the Deflated Sharpe ratio exists for exactly this.

The fix is not to stop looking at many symbols. It is to stop keeping only the winner: run the identical rules on all of them, and read the whole distribution.

What a multi-asset run actually gives you

One pass, up to fifty instruments, and two answers side by side:

The headline numbers on a multi-asset run are per-asset averages, not the numbers of a portfolio. That distinction decides how you read them: a portfolio has one wallet, and positions compete for it. This does not — each symbol is simulated with its own capital, in parallel, so nothing here is a claim about what you could actually have deployed. That is a different question, and it has its own engine.

One detail that decides the number: mean or median

Most metrics average across assets. A few do not, and the reason is worth stating because it is where a basket number usually lies. Profit factor is taken as a median, not a mean: it is an unbounded ratio, so a single asset with almost no losing trades produces a profit factor of 40 and drags the average of twenty symbols somewhere no symbol actually is. A median says what the typical symbol did, which is the question you were asking.

Assets whose metric is missing or non-finite are skipped rather than poisoned into the aggregate, and both the engine that shows you the number and the optimizer that searches for a better one use the same aggregation rule — because an optimizer that maximizes a different number from the one on screen will happily hand you a winner that looks worse when you open it.

How to read the spread

The temptation you should refuse

Once you can see per-asset results, the obvious next move is to tune the parameters per asset — a faster EMA for the volatile names, a slower one for the placid ones. Do not. Fitting a different parameter set to each instrument is overfitting each one separately and then reporting the sum as a strategy; the engine deliberately does not offer it. If a rule needs a different setting on every symbol, what you have is twenty strategies with a sample size of one each.

The honest version of that instinct is a rule that adapts — sizing tied to a volatility or trend signal, identical on every symbol — whose response curve is then validated out-of-sample like anything else.

How QUANTHEON Lab does this for you

Add more than one instrument to a strategy and the run becomes multi-asset automatically: S&P 500 stocks, ETFs and the SPX / NDX / VIX indices, searchable by ticker, name or ISIN. The result comes back aggregated and per-asset, the chart draws the primary symbol with the rest a click away, and the whole basket can go through the same walk-forward, Monte-Carlo and parameter-stability checks as a single-symbol run. No code, and no per-asset knobs to talk yourself into.

Frequently asked questions

How many instruments can one strategy trade at once?

Up to fifty per run. Beyond that the extras are dropped with an explicit message telling you how many — never silently, because a basket that quietly shrank is a different experiment from the one you asked for.

Is a multi-asset backtest the same as a portfolio backtest?

No, and confusing the two is the most common mistake here. A multi-asset run simulates the same rules on each instrument independently, each with its own capital, and reports the average — it answers “does this edge generalize?”. A portfolio runs one cash account where holdings compete for the same money bar by bar, which answers “what could I actually have deployed?”. Use the first to decide whether an idea is real, the second to decide how to fund it.

Why is the basket's profit factor lower than most of my assets'?

Because it is a median, not a mean. Unbounded ratios are dominated by their best sample: one symbol with a handful of tiny losses can post a profit factor in the dozens and pull a mean far above anything typical. The median reports the middle symbol, which is what you wanted to know.

Should I optimize parameters separately for each stock?

No. That is overfitting each instrument individually and presenting the collection as one strategy — the engine deliberately doesn't support it. If the idea only works with a different setting per symbol, the honest reading is that you have one observation per symbol, not an edge.

Does testing many symbols count as "trying many configurations"?

It does if you keep only the winner. Running all of them and reading the distribution is the honest use; picking the best curve out of fifty and quoting it is exactly the selection bias the Deflated Sharpe ratio was built to punish.

Keep reading