Save Portfolio#

morningstar_data.direct.user_items.save_portfolio(
portfolio_name: str,
portfolio_type: PortfolioType,
holdings: DataFrame | None = None,
overwrite_if_exists: bool = False,
) DataFrame#

Save or update a portfolio.

Parameters:
  • portfolio_name (str) – Name of the portfolio.

  • portfolio_type (PortfolioType) – Type of the portfolio. Supported portfolio types: model_portfolios, custom_benchmarks.

  • overwrite_if_exists (bool) – If true, an existing portfolio will be overwritten with new name and holdings.

  • holdings – (DataFrame, optional) : A DataFrame object containing holdings to save to this portfolio.

Returns:

DataFrame: A DataFrame object, columns include:

  • Name

  • Portfolio Id

Examples:

Save a new portfolio.

import pandas as pd
import morningstar_data as md
from morningstar_data.direct.user_items.portfolio import PortfolioType

holdings_data_frame = pd.DataFrame(
    [
        ["FOUSA00DFS;FO", "2020-10-31", 33.33],
        ["0P000002RH;ST", "2020-10-31", 66.67]
    ],
    columns=["HoldingId", "Portfolio Date", "Weight"],
)

df = md.direct.user_items.save_portfolio(
    portfolio_name = "new_portfolio",
    portfolio_type = PortfolioType.model_portfolios,
    holdings = holdings_data_frame,
    overwrite_if_exists = False,
)

df
Output:

Name

Portfolio Id

new_portfolio

295F7E59-15AC-4424-958E-3BD8B0A733EE

Update an existing portfolio.

import pandas as pd
import morningstar_data as md
from morningstar_data.direct.user_items.portfolio import PortfolioType

# Updated holdings data
holdings_data_frame = pd.DataFrame(
    [
    ["FOUSA00DFS;FO", "2020-05-31", 50],
    ["0P000002RH;ST", "2020-05-31", 50]
    ],
    columns=["HoldingId", "Portfolio Date", "Weight"]
)

df = md.direct.user_items.save_portfolio(
    portfolio_name = "new_portfolio",
    portfolio_type = PortfolioType.model_portfolios,
    holdings = holdings_data_frame,
    overwrite_if_exists = True # Update the existing portfolio
)

df

Name

Portfolio Id

new_portfolio

295F7E59-15AC-4424-958E-3BD8B0A733EE