EXPERIMENTALExperimental model. The volatility and the co-movement are measured from 2014 to 2026. The expected return of every asset is an assumption, and the best mix moves a lot when those assumptions change. Pre-tax, no costs. Read it as a way of thinking, not as advice.
Portfolio mix: six assets, one covariance
Two assets that each go nowhere can grow when held together. We show why first, with a toy you can play with. Then we take six real assets in EUR: US stocks, European stocks, semis, gold, euro government bonds and bitcoin. We measure how they move together, simulate five years of every mix, and look for the best one.
Part 1 · The idea
Why two unrelated assets beat either one
An asset that swings a lot pays for it in compound growth. If it falls 50% and then rises 50%, it ends at 75%, not where it started. Over time the median path grows by roughly average return minus half the variance (volatility squared ÷ 2). At 30% volatility that drag is 4.5 points a year.
Hold two assets that do not move together and rebalance them now and then: their ups and downs partly cancel, so the mix swings less than either one, while the average return stays the same. Less swing means less drag, so the mix compounds faster than each of its parts. This is sometimes called Shannon's demon, after Claude Shannon, who showed it with two coin-flip assets. The trick only works while the assets stay unrelated. As the correlation rises toward 1, the benefit disappears.
Toy lab: identical assets, held alone or together
Every asset here has the same expected return and volatility; only the correlation between them changes. Normal monthly returns, 10 years, 3,000 paths, the same random numbers for every setting.
AssetsRebalance
Source: nxtdev.sk NXTlab · simulated in your browserlog scale, €1 start
Part 2 · The real assets
Six building blocks, and how they move together
Weekly total returns in EUR (dollar assets converted at the ECB rate), measured over the same weeks for all six: . The window starts when bitcoin's euro price starts.
The assets
Volatility is measured. The expected value is our assumption for the next five years, taken from our other models; nothing here is fitted to past returns.
Correlation matrix
1 = always move together, 0 = unrelated, −1 = opposite. Pick which weeks to measure on.
Covariance matrix (annualised)
Covariance = correlation × volatility of one × volatility of the other. Its diagonal is each asset's variance. This is the whole input of a textbook optimiser; we show it, but the simulation below does not need it (see Part 3).
Correlations move: one-year rolling correlation with US stocks
Each point uses the 52 weeks up to that date. A diversifier is worth most when this line stays low in bad years.
Part 3 · Five years ahead
Every mix on the same 20,000 simulated futures
The simulation does not take a covariance matrix as input. It draws weeks from the record, in blocks of about 8 weeks, and reads all six assets from the same drawn week. So if a week had stocks −10%, bitcoin −25% and gold +2%, a simulated week has all three together. Correlation, fat tails and crashes that bunch up come straight from the data: the simulated correlations match the measured ones to within . Each asset's past average return is removed first and our assumed expected value is put back, so the past decade's winners get no head start. Mixes are rebalanced to their weights once a year. Pre-tax, no costs.
The matrix: single assets against mixes
€10,000 invested for five years. Click a column to sort. "Rebal. bonus" = median return with yearly rebalancing minus buy-and-hold of the same starting weights.
EV p.a. = the average five-year outcome, annualised. Median p.a. = the middle path. Volatility = spread of five-year log returns, annualised. Sharpe = (average yearly return − EUR cash ) ÷ volatility. Max drawdown = the deepest fall from a high within five years: median path and worst 5% of paths.
Five years of simulated wealth
Median (line), 25th–75th percentile (dark band) and 5th–95th percentile (light band) of €10,000. Pick up to three rows.
Source: nxtdev.sk NXTlab · 20,000 pathslog scale
3,003 mixes: risk against reward
Every long-only mix in steps of 10% (grey dots), scored on 5,000 paths. Coloured: single assets and the named mixes. Up and to the left is better.
RewardRisk
Part 4 · The catch
The best mix is only as good as the return guesses
The correlation and volatility above are measured and fairly stable. The expected returns are guesses, and the optimiser trusts them completely: it piles into whichever asset looks a little better and drops one that looks a little worse. Below, the same simulated weeks with different views. The "capped" column keeps any asset at or below and bitcoin at or below .
Best-Sharpe mix under each view
5% grid, 5,000 paths. The change from the base view is in bold.
Part 5 · Looking back
What the same mixes actually did,
The real record with yearly rebalancing. This is hindsight: semis and bitcoin had an extraordinary decade, and we already know they survived. It is here to show how much the rebalanced mixes kept, not as a guide to the next five years.
Sharpe here subtracts today's cash rate for the whole window, although cash paid close to zero for most of it, so these Sharpe ratios are on the low side. Hover a name in Part 3's table for its weights.
Part 6 · Try it
Build your own mix
Set the weights and, if you disagree with ours, the expected value of each asset. The browser reruns the same method on 2,000 paths: the same weeks, the same block draw, the same pinning of the average. "Find best Sharpe" searches all 3,003 mixes in 10% steps under your views.
Rebalance
How it is built
Data. Daily closes from Yahoo Finance: S&P 500 total return index, iShares STOXX Europe 600 (EXSA), VanEck Semiconductor (SMH), SPDR Gold (GLD), iShares Euro Government Bond 7-10yr (IBGM), BTC-EUR. Dollar series converted at the ECB reference rate, then Friday-to-Friday log returns. ETF fees are inside the prices.
Simulation. Stationary block bootstrap of whole weeks (mean block 8 weeks, Politis–Romano), the method our ETFs vs AI stocks page and our portfolio models use. Bitcoin's weeks are scaled to its last five years' volatility (), the noise our Bitcoin page uses; timing and co-movement stay. Each asset's own drift is replaced by its assumed expected value, pinned so the average five-year outcome over all paths matches it exactly.
Expected values. Stocks: our valuation-anchored index model. Semis: the average of two semis models. Gold: our asset-class number. Bonds: the ECB AAA yield for 7–10 years today, which a 7–10y bond roughly earns if held. Bitcoin: our scenario table, the most cautious of three models on the Bitcoin page.
Optimiser. No formula: we score every long-only mix on a 5% grid (53,130 mixes) on the same paths and pick the best. That also handles fat tails, which the textbook mean-variance formula ignores.
Not included. Tax (in Slovakia, rebalancing can cost the holding-period exemption), trading costs, currency hedging of the dollar assets, and any asset not on the list.
Strong sides
Co-movement is real. Crashes, fat tails and calm years come from actual weeks, not from a bell curve.
No past-winner bias. The decade's returns are removed; only its shape is kept.
Same paths for every mix, so differences between rows are the decision, not noise.
Every assumption is visible and can be changed in Part 6.
Weak sides
Twelve years of data. Bitcoin sets the window, so it holds one bond crash (2022) and no long stagflation. Before 2000 stocks and bonds often fell together.
Return guesses drive the answer. Part 4 shows how far the best mix moves.
Bitcoin may change. A young asset's correlation has not been tested by a long recession.
Five years is short for a rebalancing bonus to show; it compounds over decades.
Not investment advice. Built ; analysis code in our equity-valuation-framework (research/portfolio_mix.py).