portfolio_analyze
A diversification read on a list of holdings: how concentrated they are across clusters of co-moving stocks (shares, Herfindahl index), the portfolio's residual volatility, which names most and least move with the portfolio as a whole, and which clusters are least correlated to it — per volatility regime (high-vol is the conservative one, since correlations rise when volatility does). Residual correlation is how much two stocks move together after the market and sector effects are removed from each, so it shows peers and true co-movement rather than shared market beta. diversifiers are the names with the lowest correlation to the portfolio, not recommendations to buy them. hedge=true marks TLT, GLD and UUP, market ballast rather than residual offsets. Holdings are tickers (equal weight) or {symbol, weight} objects; share classes collapse to one company; tickers outside the graph universe are listed under unknown. Everything returned is descriptive statistics of past returns, not a recommendation. Free within your daily allowance (anonymous 5/day by IP, signed-in users 10/day, power users 50/day); beyond that $0.05 per call via x402 (USDC).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Diversifiers to list per regime, 1-50 (default 10). | |
| regimes | No | Regimes to analyse; default ["all","highvol"]. | |
| holdings | Yes | 1-200 tickers (equal weight) or {symbol, weight} objects (weights positive, given for all holdings or none), e.g. ["NVDA","XOM"]. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| regimes | Yes | ||
| holdings | Yes | Canonical symbols analysed (GOOG is GOOGL) | |
| unavailable | Yes | Requested regimes without a matrix yet | |
| equal_weight | Yes | ||
| cluster_run_date | Yes |