Swiss-Quant

The Portfolio

Everything else on this site tries to forecast direction, and the scored record says direction is close to unforecastable at a one-week horizon. This page is the exception: a rule that makes no forecast at all and measured profitable anyway. It holds broad index ETFs, FX majors, commodity futures and the major coins, and sizes each one inversely to its own volatility, so the book’s risk stays steady instead of exploding whenever markets do. It borrows nothing.

What was measured

Year by year

Today's book

How to run it

Four decisions, each answered with a measurement rather than an opinion. All figures net of the same costs and financing as the headline.

The rule in five lines.
  1. Split your capital into equal slices, one per instrument in the book below.
  2. For each instrument, measure its recent volatility (a 60-day exponentially weighted standard deviation of daily returns, annualised).
  3. Position size = 20% ÷ that volatility, capped at 1×. A calm asset gets a full slice; an asset running at 40% volatility gets half a slice. You never borrow.
  4. Hold everything long. There is no forecast, no entry signal and no stop.
  5. Check weekly. Only trade a leg when its target has drifted more than 20% from what you hold.

1. How often to rebalance

Cadence barely matters — monthly scores as well as daily. What it changes is turnover, and turnover is the part you pay for.

2. The no-trade band

Ignoring small drifts is free money: a 20% band cuts turnover by more than half and the Sharpe goes slightly up, because you stop paying to chase noise.

3. How many instruments

This is where shortcuts cost real money. Cutting to six instruments keeps most of the return but the worst drawdown goes from −15% to −24%. Diversification is the engine here, not the garnish — if you can only hold a few, expect a rougher ride.

4. Choosing your risk level

The volatility target is the dial: Sharpe stays flat while return and drawdown scale together. Pick the drawdown you can actually sit through, not the return you would like.

Read this before using it