Annualised volatility
Sample standard deviation of real daily returns, annualised with 252 periods for S&P 500 and gold and 365.2425 for Bitcoin.
σyear = σday × √NAsset classes & risk
The asset-class backtester puts the S&P 500, Bitcoin and gold on the same euro basis. This guide explains the data, the metrics and the points where a historical comparison can promise more than it can deliver.
The question
Three price charts side by side say little. The S&P 500 is quoted in index points, Bitcoin in a currency per coin and gold in this project as the price of a GLD share. Their absolute values are not comparable. The backtester therefore sets every series to the same starting capital on the selected start date and follows how that amount would have developed.
Choose the period, asset classes and starting amount. The result shows historical paths, ending values and risk metrics. It is not a buy recommendation or a forecast. The useful question is: How different were return and risk under the same time conditions?
Common basis
A fair historical comparison needs three common denominators. All selected series start on the same calendar day, every value is converted to euros and every series starts with the same amount. The difference in ending value then comes from price development rather than different units.
The starting value is the last real observation on or before the selected date. This matters on weekends and holidays. If a period starts on Sunday, a listed security normally uses Friday's close, while Bitcoin can have a real weekend value.
The series
Names such as “S&P 500” or “gold” sound more precise than they are. A price index, ETF, spot price and total-return index can differ materially. The project therefore fixes one concrete series for each asset class and shows that definition in the dashboard.
| Asset class | Series in the backtester | Currency path | What to note |
|---|---|---|---|
| S&P 500 | FRED SP500, daily closing level of the price index | USD value divided by the ECB USD per EUR rate | The price index excludes dividends. It is not the total return of an accumulating S&P 500 fund. |
| Bitcoin | Ten-year BTC/USD history from minute values, live BTC/EUR through CoinGecko | History converted with ECB rates, live values already in EUR | The source changes on 3 August 2026. The methodology discloses that change. |
| Gold | SPDR Gold Shares (GLD), historical archive and live Alpha Vantage data | USD close divided by the ECB USD per EUR rate | GLD represents gold bullion less fund costs. Its share price is not pure spot gold. |
This definition makes the result reproducible, but it also limits its meaning. Someone expecting a total-return index, a different gold ETC or one particular Bitcoin venue is comparing a different series.
Data pipeline
The site does not call foreign APIs on every page view. A daily process retrieves new values, checks them and stores them in MySQL. The public backtest then reads from this internal history. That keeps results reproducible and prevents a short provider outage from breaking the entire page.
Missing days
Exchanges close at weekends and holidays; Bitcoin trades continuously. Showing only real points would give the three series different date axes. For display, the backtester carries the last known value forward. The database does not create a synthetic price.
That distinction is required for the risk metrics. Carried-forward days do not count as extra days with 0% return. Otherwise S&P 500 and gold volatility would look lower simply because markets close at weekends. Best day, worst day, positive days and Sharpe use only changes between real observations.
Result metrics
Ending value translates price movement into an amount. €10,000 becomes €14,000 if the series rises 40% over the selected period. Profit or loss is the same information as a euro difference; both depend on the starting capital.
CAGR converts the total change into a constant annual rate. The backtester uses the actual calendar days divided by 365.2425. Over short periods, that annualisation can look extreme. A strong week is not a reliable annual return.
Risk metrics
Risk has several dimensions. Volatility measures the dispersion of observed daily returns; maximum drawdown measures the deepest fall from a previous high. Sharpe and Calmar relate return to different risk measures. No single number replaces the others.
Sample standard deviation of real daily returns, annualised with 252 periods for S&P 500 and gold and 365.2425 for Bitcoin.
σyear = σday × √NThe largest percentage fall from a previous high to a later low. A −50% drawdown needs a subsequent +100% to recover.
Drawdown(t) = value(t) / previous high − 1Average daily return divided by its standard deviation and annualised. The backtester deliberately uses a 0% risk-free rate.
Sharpe = average daily return / σday × √NCAGR divided by the absolute maximum drawdown. No value is shown when there is no drawdown.
Calmar = CAGR / |maximum drawdown|The largest positive and negative change between two real observations, each with its date.
r(t) = value(t) / value(t−1) − 1Share of observed daily changes above 0%. A high share can coexist with small gains and a few large losses, so read it with worst day and drawdown.
positive changes / all changesThe dashboard presents Sharpe and Calmar without a quality badge. “Higher” is usually preferable within the same method, but short periods, outliers and return distributions can move both metrics substantially.
Read them together
Suppose series A has 12% CAGR, 16% volatility and a −25% maximum drawdown. Series B has 18% CAGR, 60% volatility and a −70% drawdown. B was more profitable in hindsight, but it required much more patience, risk tolerance and confidence in a recovery.
Sharpe asks how much average return was earned for ongoing volatility. Calmar focuses more on the worst historical fall. Best and worst day show whether isolated jumps carry a large part of the result, while positive days show how often the path moved up.
Limits
The calculator answers a defined historical question. Several factors are missing once you turn it into a real investment strategy. Some would lower the result; others would change the comparison basis.
Even a ten-year window is only one slice of history. The backtester therefore offers several fixed periods and a custom range.
Application
Use the calculator to test assumptions. It quickly shows whether “asset X was clearly better” is true only for one favourable start point or also survives other windows.
Select S&P 500, Bitcoin and gold, change starting capital and period, and read return and risk together.
Sources and definitions
The dashboard methodology names the source, symbol, currency and data date for every series. These primary sources document the endpoints and definitions used. Written permissions for imported historical files are stored separately from the web root.
Read next