risk_parity
Calculate portfolio weights using Inverse Volatility to balance risk across assets for diversified investment strategies.
Instructions
Calculates weights based on Inverse Volatility (Naive Risk Parity).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
Implementation Reference
- tools/portfolio_optimizer.py:120-134 (handler)The risk_parity tool handler: computes portfolio weights using inverse volatility (risk parity) from 1y historical data via yfinance.def risk_parity(tickers: List[str]) -> str: """ Calculates weights based on Inverse Volatility (Naive Risk Parity). """ data = yf.download(tickers, period="1y", progress=False)['Close'] returns = data.pct_change().dropna() volatility = returns.std() inv_vol = 1 / volatility weights = inv_vol / inv_vol.sum() w_dict = weights.to_dict() w_dict = {k: float(f"{v:.4f}") for k, v in w_dict.items()} return f"Risk Parity Weights: {w_dict}"
- server.py:395-398 (registration)MCP registration of the risk_parity tool (imported from tools.portfolio_optimizer) into the 'Portfolio Optimization' category.register_tools( [mean_variance_optimize, risk_parity], "Portfolio Optimization" )
- server.py:17-17 (registration)Import statement for risk_parity function used in MCP tool registration.from tools.portfolio_optimizer import mean_variance_optimize, risk_parity