You must be logged in to view this page. Log in or create a free account.
Portfolio Optimizer
Fifteen institutional-grade optimization engines on any basket you own, or on the full GNG universe of 4,500+ stocks and 400+ ETFs.

Start from your goal
Four modes cover the real jobs: build a new portfolio from a goal, rebalance an existing one back to optimal weights, refine toward a specific yield, return, or drawdown target, or run a wash-sale-aware tax-loss harvest.
- Build: start from scratch with a goal in mind
- Rebalance: bring current holdings back to optimal weights
- Refine: hit a yield, return, or drawdown number
- Tax-loss harvest: sell losers, replace with similar peers, wash-sale aware
Fifteen institutional engines
Black-Litterman with a Bayesian views editor, classic Markowitz mean-variance, hierarchical risk parity (HRP) and hierarchical equal risk clustering (HERC), nested clustered optimization, equal risk contribution, and tail-risk engines built on CVaR, EVaR, and conditional drawdown. Max Sortino, max Calmar, max diversification, target return, and target risk round out the set.
- Constrained optimization: position caps, sector caps, turnover limits
- Bayesian market views blended into the Black-Litterman prior
- Tax-aware rebalancing presets and account-type handling
- Stress windows from the 2000 dotcom bust to the 2022 rate shock
Your basket or the whole universe
Point the solver at your own holdings, a custom ticker list, or the full GNG slate of 4,500+ stocks and 400+ ETFs and let it search for the optimal mix subject to your targets and caps.
Apply the weights
Review the optimized allocation next to your current one, compare both on the efficient frontier, and apply the weights when the result holds up.
Analytics, not advice
Optimizer output is a mathematical allocation under your stated constraints. It is informational only and is not a recommendation to buy or sell any security.
Create a free GNG Research account to explore the rest of the GNG research toolkit.
Free to join. No credit card. Takes seconds.