US Monte Carlo Portfolio Simulation (GARCH)

Monte Carlo portfolio simulator on US markets GARCH volatility fat-tailed shocks VaR/CVaR path charts for a blended S&P 500 / Dow Jones portfolio

Summary

This project uses a Monte Carlo engine for multi-asset US portfolios. Each asset follows a GARCH(1,1) variance process with Student-t innovations; residual correlations are estimated from pre-window history and injected via a Cholesky factor so simulated shocks co-move realistically.

The default exhibit is the README test portfolio: 50% S&P 500 (^GSPC) and 50% Dow Jones (^DJI), simulated forward from the configured start date through the latest available prices. Thousands of paths produce a 5–95% central band, a mean trajectory, and a terminal return histogram with VaR, CVaR, and probability of net loss.

The red actual line overlays realized weighted index performance on the same calendar—useful for judging how the stochastic model’s dispersion relates to what happened in markets.

Methodology

Data: Adjusted closes from Yahoo Finance from 2021 onward; pre-simulation history fits GARCH and residual correlation.

Single-asset engine: Per path, draw drift uncertainty, evolve variance with GARCH(1,1), multiply by correlated Student-t shocks, compound into prices (simple or log returns).

Portfolio: Weighted sum of simulated asset price paths; actual portfolio uses the same weights on aligned historical series.

Outputs: Path fan chart (sample paths + mean + VaR band + actual), terminal histogram, and scalar risk metrics at the horizon.

How to read the charts

Path panel: The gold band is where 90% of simulated wealth paths fall day-by-day; divergence of actual from the band signals periods the model would have deemed unlikely or that volatility was under-estimated.

Histogram: Wide spread implies high horizon uncertainty; VaR/CVaR summarize left-tail outcomes. P(loss) is the fraction of paths finishing below the starting value.

Known limitation from the upstream authors: holiday calendars are approximate when mixing indices, so simulated day counts may differ slightly from realized series.

Additional analytics (what the numbers mean)

Terminal risk metrics are path-based. Mean and median summarize central tendency across simulated outcomes; they are not “expected” paths in a probability sense. VaR 95% is the 5th percentile of terminal return; CVaR 95% is the average terminal return among outcomes at or below that VaR level.

Mean vs median = skew signal. A large gap between mean and median usually indicates a skewed / fat-tailed return distribution (e.g., volatility clustering + Student-t shocks). If the actual return lands far from both mean and median, it’s a sign the fitted volatility/tail model may not match the realized regime well.

Interpreting P(loss). P(loss) answers: “What fraction of Monte Carlo paths end with a negative total return versus the starting value?”. When P(loss) is high, the distribution is dominated by left-tail outcomes even if the mean return looks acceptable.

Actual vs simulated dispersion. If the realized return repeatedly sits outside the simulated percentile bands (not just once), it usually indicates one of: (1) volatility was structurally different than the fitted GARCH regime, (2) tail heaviness was mis-calibrated (Student-t degrees of freedom), or (3) cross-asset correlation shifted during the window.

Reading the GARCH parameter table. alpha controls how quickly new shocks feed into next-period variance; beta controls persistence (how long elevated variance “hangs around”). A larger alpha + beta generally implies slower variance reversion; omega scales the long-run variance level.

Why VaR/CVaR can disagree with intuition. GARCH + Student-t can generate fat tails and volatility clustering, so drawdowns cluster in time. That means “average” volatility can look moderate while tail metrics remain severe.

Limitations

GARCH is a parsimonious volatility model; structural breaks and regime shifts are not modeled explicitly.

Index levels (^GSPC, ^DJI) are not directly investable; results illustrate risk mechanics rather than tradable ETF tracking error.

Monte Carlo draws are pseudo-random; regenerate data to refresh paths. Research output only—not investment advice.

Empirical exhibits (below)

Charts show the default 50/50 US index blend. Refresh with npm run data:us-mc-investem (requires arch and numba; first run JIT-compiles the GARCH loop).

Results

Portfolio: S&P 500 (50%) · Dow Jones (50%) · 2025-02-05 → 2026-05-29 · 400 simulated paths

Risk summary (terminal returns)

Statistics across all Monte Carlo paths at the end of the simulation window. VaR 95% is the 5th percentile of terminal return; CVaR 95% is the average of outcomes at or below that level.

Mean return

16.98%

VaR 95% / CVaR 95%

-20.18% / -37.99%

P(net loss)

28.5%

Actual return

15.07%

Best / worst simulated

130.45% / -97.32%

Median terminal return

14.93%

Terminal positioning: actual is 35.25 pp vs VaR95 and 53.06 pp vs CVaR95.

Simulated portfolio paths vs actual

Faint lines are sample Monte Carlo paths; green is the cross-path mean; gold band is the 5th–95th percentile range; red is the realized weighted portfolio (rebased to 1.0 at the start).

In-band days

91.5%

Below 5th pct

8.5%

Above 95th pct

0.0%

Terminal return distribution

Histogram of percentage return at the end of the horizon across all simulated paths. Compare the bulk of the distribution to the actual outcome (red reference in summary above).

Mean 16.98% · VaR 95% -20.18% · CVaR 95% -37.99% · Actual 15.07%

GARCH(1,1) parameters (estimation window)

Fitted on pre-simulation history per index; used to drive stochastic volatility in the Monte Carlo engine.

Assetωαβ
S&P 5000.00e+00.08400.9020
Dow Jones0.00e+00.06500.9150
QuantifiedTrader logoQuantifiedTrader

Independent quantitative research on trading methods, backtesting, and market analytics.

Research disclaimer

QuantifiedTrader is operated by an independent quantitative research group. We study, document, and compare different methods of trading, portfolio construction, risk management, and investment analysis. Our work is exploratory and academic in nature—we build tools, run backtests, and publish findings to advance understanding, not to promote any particular strategy or product.

Not investment advice. Nothing on this website constitutes investment, trading, financial, tax, legal, or other professional advice. We do not recommend, endorse, or solicit the purchase or sale of any security, derivative, or financial instrument, nor do we suggest that any strategy, model, or result presented here is suitable for any individual or institution. Any examples, simulations, or performance figures are illustrative research outputs only.

No client or advisory relationship. We do not provide investment advisory, brokerage, portfolio-management, custody, or asset-management services to any person or entity. Browsing this site, using our tools, or contacting us does not create a client, fiduciary, or advisory relationship. We do not manage money on behalf of third parties and do not act as agents for any financial institution.

Research & education only. Content, datasets, backtests, charts, code, and software made available here are for informational and educational research. Materials may be incomplete, simulated, hypothetical, or derived from third-party sources that we do not control. Past performance, backtested results, and historical analyses are not indicative of future results. Market conditions change; models may fail; assumptions may be wrong. You are solely responsible for evaluating any information and for all decisions you make.

No responsibility or liability. To the fullest extent permitted by applicable law, QuantifiedTrader and its contributors disclaim all responsibility and liability for any loss, damage, cost, or expense—direct or indirect—arising from access to, use of, or reliance on this website, its content, or its tools. All materials are provided “as is” and “as available,” without warranties of any kind, whether express or implied, including but not limited to accuracy, completeness, fitness for a particular purpose, or non-infringement.

Non-commercial research sharing. This site does not aim to profit from the knowledge, tools, or datasets published here. Materials are shared for non-commercial research and learning, subject to applicable open-source or site terms where noted. We are a research collective, not a commercial product or service provider.

Contact. For questions about this notice, the site, or published research materials, contact support@quantedx.com. Correspondence is for administrative and research purposes only and does not constitute advice or create any professional obligation on our part.

© 2026 QuantifiedTrader. All rights reserved.