This guide covers the practical steps for using QuanterLab's three portfolio optimization modules and its two risk analysis tools.
Mean-Variance Optimization (FM098MVOX)
Access from the Dashboard → Fundamental Analysis → Portfolio Optimization cluster, or from the Fundamental ribbon.
Configuration
- Enter tickers — Type or paste the symbols you want to optimize. These are typically your top candidates from the screener
- Select return estimation method — Historical Mean (simple), CAPM (beta-based), or Black-Litterman (equilibrium-based). Black-Litterman generally produces the most sensible weights
- Select covariance method — Sample (direct), Ledoit-Wolf Shrinkage (recommended), or Exponential Weighted (recent-data emphasis)
- Set constraints — Minimum and maximum weight per stock, maximum number of holdings. Constraints prevent extreme concentration
- Set lookback period — 1-5 years of historical data for estimation. Default is 2 years
- Choose optimization goal — Maximum Sharpe Ratio or Minimum Variance
Output
- Efficient frontier chart — 30 portfolios plotted on a return vs. volatility curve. Your optimized portfolio is highlighted
- Weight allocation table — Each ticker with its optimal weight percentage, sorted by weight
- Portfolio metrics — Expected annual return, annualized volatility, Sharpe ratio
- Sector allocation — Percentage breakdown by sector
- Covariance matrix — Visual correlation structure of the top 20 holdings
Without constraints, MVO often concentrates 50-80% of the portfolio in 1-2 stocks. Set a maximum weight of 15-20% per stock to force diversification. This produces more practical portfolios while staying close to the efficient frontier.
Hierarchical Risk Parity (FM097HRPX)
Configuration
- Enter tickers — Same as MVO
- Select distance metric — Standard Correlation (positive correlation = similar) or Absolute Correlation (treats negative correlation as similar too)
- Select linkage method — Single, Complete, Average, or Ward. Ward linkage is recommended as it minimizes within-group variance and produces the most balanced clusters
- Set constraints — Min/max weight per stock, maximum holdings
- Set correlation filter threshold — Stocks with correlation above this value (default 0.85) are filtered to avoid redundancy. Known share class pairs (GOOG/GOOGL, BRK.A/BRK.B) are detected automatically
Output
- Dendrogram — Tree visualization showing how assets cluster together. Nearby branches are highly correlated
- Ordered correlation matrix — Quasi-diagonal form showing the block structure after clustering
- Weight allocation table — Optimal weights per ticker
- Cluster assignments — Which assets belong to which cluster
- Correlation filtering report — Which stocks were removed due to high correlation and what their correlation was
Inverse Volatility (FM096IVOX)
Configuration
- Enter tickers
- Select volatility calculation — Standard (equal-weighted historical) or Exponential Weighted (emphasizes recent data, halflife parameter adjustable)
- Set constraints — Min/max weight, maximum holdings
Output
- Weight allocation table — With individual volatility and inverse volatility scores for each holding
- Volatility distribution — Histogram of all screened stocks' volatilities
- Sector allocation
- Portfolio metrics — Realized return, volatility, Sharpe ratio
Risk Analysis Tools
Monte Carlo Simulation (FM095MCSX)
Enter a ticker or portfolio. The module runs 1,000 simulated price paths using Geometric Brownian Motion over your chosen time horizon (1 month, 3 months, 6 months, or 1 year).
The output includes:
- 40 sample paths — Visual representation of possible price trajectories
- Percentile bands — 5th, 25th, 50th, 75th, 95th percentile paths showing the distribution of outcomes
- Terminal value histogram — Distribution of ending portfolio values across all simulations
- Probability analysis — Probability of gain, probability of 50%+ gain, probability of doubling, probability of loss, probability of 25%+ loss
Value at Risk (FM094VARX)
Calculates three VaR measures across multiple confidence levels (90%, 95%, 99%) and time horizons (1 day to 1 year):
- Historical VaR — Uses actual return distribution (no distribution assumption)
- Parametric VaR — Assumes normal distribution (faster, but underestimates tail risk)
- Conditional VaR (CVaR) — Expected loss beyond the VaR threshold (more conservative tail risk measure)
Additional outputs include per-stock risk contribution, rolling VaR chart (60-day window), historical VaR breach count, and return distribution histogram with VaR thresholds overlaid.
A 95% daily VaR of 2.3% means: "On 95% of trading days, the portfolio will not lose more than 2.3%." The remaining 5% of days — the tail events — can produce losses much larger than 2.3%. CVaR captures the expected magnitude of those tail losses and is generally more useful for risk management.
- Start with HRP — It requires the fewest assumptions and produces stable, diversified portfolios
- Compare with MVO — If you have strong return views, run MVO with Black-Litterman and Ledoit-Wolf to see if it produces meaningfully different allocations
- Validate with Monte Carlo — Run the optimized portfolio through Monte Carlo to understand the range of possible outcomes
- Check VaR — Use VaR to quantify the worst-case scenarios at your preferred confidence level
- Deploy — Build the portfolio in Portfolio Visualizer with the recommended weights