Spokes.wiki Search About
Created
Updated

Universal portfolio

A universal portfolio is a sequential investment rule whose growth rate provably matches the best strategy in a reference class chosen in hindsight, for every price sequence — with no statistical model of the market. Cover (1991) introduced the term and the construction; the reference class is the constant-rebalanced-portfolios.

The rule is a mixture, not a choice: spread capital uniformly over the whole simplex of portfolios and let each one's own accumulated wealth reweight it,

b̂ₖ₊₁ = ∫ b Sₖ(b) db / ∫ Sₖ(b) db, giving Ŝₙ = ∫ Sₙ(b) db / ∫ db.

Nothing is estimated and nothing is predicted. The weight on b at time k is exactly what b has earned so far. The algorithm is Bayesian in form (a uniform prior over strategies, updated by realized wealth) while assuming nothing about what generates the data.

Why this is a different kind of claim than the rest of the corpus

Every other performance number in this spoke comes from a simulation of one history: an engine replays klines, a model is scored on a test split, a paper reports a Sharpe from its own backtest. That is why backtest-overfitting is a standing worry: the number depends on which history was replayed and how many configurations were tried before the winner was published.

A universality result has no such dependence. The guarantee is a worst-case bound over all sequences, so there is no sample it could be overfitted to and no trial count N to deflate. It buys that immunity by changing what is promised: not "this makes money" but "this loses almost nothing against the best fixed-proportion strategy you could have picked knowing the future."

The price of the guarantee is explicit and small. Ŝₙ trails S*ₙ by a factor polynomial in n (≈ √(2π/nJₙ) for two assets, a further ~1/√n per additional asset), against wealth that grows exponentially, so the two share an exponent, and the regret vanishes in growth rate while the wealth ratio does not.

strategy-optimization and this page are two answers to the same question, which parameter setting do you run, and they differ in a way worth stating flatly:

  • Search picks the argmax of a backtested objective and runs it. That single choice is what generates N, and what backtest-overfitting taxes.
  • A universal portfolio never picks. It runs the entire parameter space at once, weighted by realized performance. The maximum is tracked by the average rather than selected, and the selection-bias problem does not arise because no selection is made.

This is the corpus's first source where "don't choose, mix" is a theorem rather than a preference — chan-algorithmic-trading's "prefer simple strategies" argument is the same instinct with no bound attached.

What it does not give you

  • No transaction costs. The construction rebalances daily; Cover ignores costs and offers only a rule of thumb for trading less often. Every real deployment lands here first.
  • The benchmark is the whole claim. Universality is relative to the reference class. If the best constant rebalanced portfolio in the class loses money, the universal portfolio loses money too.
  • The bound is worst-case, so it is loose in practice. On Cover's own data the universal portfolio reaches roughly half the hindsight optimum (38.67 against 73.62 over 22 years). It dominates the constituent stocks, but "asymptotically as good as" is not "as good as."

cover-universal-portfolios · constant-rebalanced-portfolio · thomas-cover · backtest-overfitting · strategy-optimization · backtesting · algorithmic-trading · deflated-sharpe-ratio · synthesis