Portfolio Backtest
The Portfolio tool backtests an asset allocation over a historical period. Set the balance, the range and the tickers with their percentages, press Start, and see how the portfolio would have performed. It can also compare up to 3 portfolios side by side.
Fields:
- Ticker + Percent - The assets of the portfolio and the share of each one. Use any of the ticker types, up to 10 per portfolio. The percentages must add up to 100%.
- Balance - The initial amount, in the currency selected at the top of the page.
- Deposits - An amount added to the portfolio at the selected frequency. Balance or Deposits must be more than zero.
- Range - The start and end dates of the simulation. The default is the current year to date.
- Frequency - How often deposits and rebalancing happen: none, weekly, monthly, quarterly, biannual or yearly. With any option other than None, the portfolio is rebalanced to the target percentages on each date of the frequency.
How the simulation works:
- On the first date, the balance is invested according to the percentages.
- Only whole units are bought, so some cash can stay uninvested. Use the fraction modifier for expensive assets (e.g., BTC-USD/100).
- Available cash, such as deposits, is invested every day. With rebalancing, positions above their target are sold only on the frequency dates.
- With rebalancing, an asset without data for part of the range is skipped on those dates, and its share goes to the other assets.
- Prices are adjusted for splits, but not for dividends, so the results show price returns only.
Buttons:
- Start / Stop / Reset - Run, cancel or clear the simulation.
- Compare - Add another portfolio, up to 3. All portfolios use the same balance, deposits, range and frequency, with up to 15 tickers in total.
- Download - Save the results and messages of each portfolio as JSON (see Results).
- Favorites - Save the current inputs with a name and load them later. Favorites are stored in your browser.
- Share - Copy a link that opens the page with the current inputs.
Compare pages:
Pages such as /compare/SPY/QQQ compare assets directly, and start the simulation when they open. Each part of the path is one portfolio, and tickers joined with _ share it equally (e.g., /compare/SPY_TLT/QQQ compares 50% SPY and 50% TLT against 100% QQQ).