Plan#

class portfolio_plan.core.Assets(assets: List[Asset], resource: Resource)#

Bases: object

fetch(start_date: datetime, end_date: datetime, name: str, **kwargs) Prices#
Parameters:

name (str) – Passed to portfolio_plan.financialseries.Prices()

class portfolio_plan.core.Portfolio(assets: Assets, weights: Weights | None = None, name: str = 'Portfolio', optimizer: Optimizer = Optimizer.MEANVARIANCE, **optimizer_kwargs)#

Bases: object

A portfolio consists of assets and its associated weights

Parameters:
  • assets (Assets)

  • weights (Weights | None) – Defaults to None

  • name (str) – Defaults to portfolio_plan.const.DEFAULT_PORTFOLIO_NAME

  • optimizer (Optimizer) – Defaults to MeanVariance optimizer

Warning

For the moment optimizers are ignored (not implemented).

fetch(start_date: datetime, end_date: datetime, name: str, **kwargs) Prices#
Parameters:

name (str) – Passed to portfolio_plan.financialseries.Prices()

class portfolio_plan.core.Plan(portfolio: Portfolio, start_date: datetime, end_date: datetime)#

Bases: object

Parameters:
  • portfolio (Portfolio) – See Portfolio

  • start_date (datetime) – Start date of the plan

  • end_date (datetime) – End date of the plan

property end_date: datetime#

The plan end date, which is the final date of the plan period.

portfolio_returns() Returns#

Portfolio return across time

property start_date: datetime#

The plan start date, which is not necessarily the effective start date. The effective start date is the first date with available data, and it satisfies: effective start date >= start_date <= effective end date, where effective end date <= end date.