Portfolio Construction: Using the Optimizers

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 → Factor Models → Portfolio Optimization cluster, or from the Factor Models ribbon.

Configuration

  1. Enter tickers — Type or paste the symbols you want to optimize. These are typically your top candidates from the screener
  2. Select return estimation method — Historical Mean (simple), CAPM (beta-based), or Black-Litterman (equilibrium-based). Black-Litterman generally produces the most sensible weights
  3. Select covariance method — Sample (direct), Ledoit-Wolf Shrinkage (recommended), or Exponential Weighted (recent-data emphasis)
  4. Set constraints — Minimum and maximum weight per stock, maximum number of holdings. Constraints prevent extreme concentration
  5. Set lookback period — 1-5 years of historical data for estimation. Default is 2 years
  6. 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
Constraint Tip

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

  1. Enter tickers — Same as MVO
  2. Select distance metric — Standard Correlation (positive correlation = similar) or Absolute Correlation (treats negative correlation as similar too)
  3. Select linkage method — Single, Complete, Average, or Ward. Ward linkage is recommended as it minimizes within-group variance and produces the most balanced clusters
  4. Set constraints — Min/max weight per stock, maximum holdings
  5. 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

  1. Enter tickers
  2. Select volatility calculation — Standard (equal-weighted historical) or Exponential Weighted (emphasizes recent data, halflife parameter adjustable)
  3. 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.

VaR Interpretation

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.

Optimization Workflow
  • 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

Further Reading

Related QuanterLab articles

Try it in QuanterLab

Run the same backtested strategy through equal-weighted, vol-targeted, and risk-parity portfolio constructions. Same edge, different drawdown profiles — pick the one whose path you can psychologically and financially survive.

Back to the Knowledge Base
New research, when it's published

We publish methodology work on validation, overfitting and strategy design. Join the list to hear when a new piece goes out — email only, and you confirm by clicking a link before we ever send anything.

Join the list