update_portfolio
Update an existing portfolio's name, description, weights, capital, or options positions. Only pass the fields to change; omitted fields stay unchanged.
Instructions
Update an existing portfolio. Can change name, description, weights, capital, and/or options_positions. Only pass the fields you want to update — omitted fields stay unchanged. Weights must sum to 1.0 if provided.
ASSET MUTATION: passing a weights dict that includes a ticker not currently in the portfolio's target set is supported — update_portfolio AUTO-EXPANDS the target set as long as the new ticker is in the global feature catalog. If the ticker isn't in the catalog yet, call add_feature first, then retry this update. (You don't need to create a new portfolio to add an asset.) Removing assets is not supported via this path — drop a weight to 0.0 to zero a position; only create_portfolio_from_assets can produce a portfolio with a strictly smaller asset universe.
options_positions sets the options overlay for derivatives analysis (persisted on the portfolio).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New portfolio name | |
| capital | No | New capital allocation in USD | |
| weights | No | New weights by ticker (e.g. {'AAPL': 0.5, 'MSFT': 0.5}). Must sum to 1.0. | |
| description | No | New description | |
| portfolio_id | Yes | The portfolio UUID | |
| options_positions | No | Options overlay positions to persist on the portfolio. Each dict: underlying (display_name), option_type ('call'/'put'), strike (float), days_to_expiry (int), quantity (int, negative=short), implied_vol (float), entry_premium (float). These are used by analyze_derivatives when no positions are passed inline. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |