portfolio_toolkit.portfolio package
Subpackages
- portfolio_toolkit.portfolio.stats package
- Submodules
- portfolio_toolkit.portfolio.stats.portfolio_stats module
PortfolioStats
PortfolioStats.realized_profit
PortfolioStats.unrealized_profit
PortfolioStats.initial_valuation
PortfolioStats.final_valuation
PortfolioStats.incomes
PortfolioStats.deposits
PortfolioStats.withdrawals
PortfolioStats.commission
PortfolioStats.closed_positions_stats
PortfolioStats.closed_positions
PortfolioStats.open_positions
PortfolioStats.transactions
PortfolioStats.realized_profit
PortfolioStats.unrealized_profit
PortfolioStats.initial_cash
PortfolioStats.final_cash
PortfolioStats.initial_valuation
PortfolioStats.final_valuation
PortfolioStats.incomes
PortfolioStats.deposits
PortfolioStats.withdrawals
PortfolioStats.commission
PortfolioStats.closed_positions_stats
PortfolioStats.closed_positions
PortfolioStats.open_positions
PortfolioStats.transactions
PortfolioStats.from_portfolio()
PortfolioStats.total_profit
PortfolioStats.valuation_change
PortfolioStats.net_cash_flow
PortfolioStats.return_percentage
PortfolioStats.to_dict()
PortfolioStats.__init__()
- portfolio_toolkit.portfolio.stats.stats_from_portfolio module
- Module contents
PortfolioStats
PortfolioStats.realized_profit
PortfolioStats.unrealized_profit
PortfolioStats.initial_valuation
PortfolioStats.final_valuation
PortfolioStats.incomes
PortfolioStats.deposits
PortfolioStats.withdrawals
PortfolioStats.commission
PortfolioStats.closed_positions_stats
PortfolioStats.closed_positions
PortfolioStats.open_positions
PortfolioStats.transactions
PortfolioStats.__init__()
PortfolioStats.from_portfolio()
PortfolioStats.net_cash_flow
PortfolioStats.return_percentage
PortfolioStats.to_dict()
PortfolioStats.total_profit
PortfolioStats.valuation_change
PortfolioStats.realized_profit
PortfolioStats.unrealized_profit
PortfolioStats.initial_cash
PortfolioStats.final_cash
PortfolioStats.initial_valuation
PortfolioStats.final_valuation
PortfolioStats.incomes
PortfolioStats.deposits
PortfolioStats.withdrawals
PortfolioStats.commission
PortfolioStats.closed_positions_stats
PortfolioStats.closed_positions
PortfolioStats.open_positions
PortfolioStats.transactions
- portfolio_toolkit.portfolio.time_series package
- Submodules
- portfolio_toolkit.portfolio.time_series.plot module
- portfolio_toolkit.portfolio.time_series.plot_evolution module
- portfolio_toolkit.portfolio.time_series.portfolio_time_series module
PortfolioTimeSeries
PortfolioTimeSeries.portfolio_timeseries
PortfolioTimeSeries.from_portfolio()
PortfolioTimeSeries.print()
PortfolioTimeSeries.plot_evolution()
PortfolioTimeSeries.__init__()
PortfolioTimeSeries.name
PortfolioTimeSeries.currency
PortfolioTimeSeries.assets
PortfolioTimeSeries.data_provider
PortfolioTimeSeries.account
PortfolioTimeSeries.start_date
- portfolio_toolkit.portfolio.time_series.print_date_frame module
- portfolio_toolkit.portfolio.time_series.utils module
- Module contents
PortfolioTimeSeries
PortfolioTimeSeries.__init__()
PortfolioTimeSeries.from_portfolio()
PortfolioTimeSeries.plot_evolution()
PortfolioTimeSeries.print()
PortfolioTimeSeries.portfolio_timeseries
PortfolioTimeSeries.name
PortfolioTimeSeries.currency
PortfolioTimeSeries.assets
PortfolioTimeSeries.data_provider
PortfolioTimeSeries.account
PortfolioTimeSeries.start_date
Submodules
portfolio_toolkit.portfolio.portfolio module
- class portfolio_toolkit.portfolio.portfolio.Portfolio(name: str, currency: str, assets: List[portfolio_toolkit.asset.portfolio.portfolio_asset.PortfolioAsset], data_provider: portfolio_toolkit.data_provider.data_provider.DataProvider, account: portfolio_toolkit.account.account.Account, start_date: str)[fuente]
Bases:
object
- assets: List[PortfolioAsset]
- data_provider: DataProvider
- classmethod from_dict(data: dict, data_provider: DataProvider) Portfolio [fuente]
- get_stats(year: str) PortfolioStats [fuente]
Returns PortfolioStats for the given year.
- get_time_series() PortfolioTimeSeries [fuente]
Returns a PortfolioTimeSeries for the given portfolio.
- get_open_positions(date: str) OpenPositionList [fuente]
Returns OpenPositionList for the given date.
- get_closed_positions(from_date: str, to_date: str) ClosedPositionList [fuente]
Returns ClosedPositionList for the given date.
- __init__(name: str, currency: str, assets: List[PortfolioAsset], data_provider: DataProvider, account: Account, start_date: str) None
portfolio_toolkit.portfolio.portfolio_from_dict module
- portfolio_toolkit.portfolio.portfolio_from_dict.portfolio_from_dict(data: dict, data_provider: DataProvider) Portfolio [fuente]
Loads and validates a JSON file containing portfolio information.
- Parámetros:
data (dict) – The portfolio data as a dictionary.
data_provider (DataProvider) – Data provider instance for fetching ticker information.
- Devuelve:
The loaded portfolio object.
- Tipo del valor devuelto:
- portfolio_toolkit.portfolio.portfolio_from_dict.process_transactions(transactions: dict, splits: dict, portfolio_currency: str, data_provider: DataProvider) Tuple[List[PortfolioAsset], Account, datetime] [fuente]
Processes transactions to create asset objects and validate them.
- Parámetros:
- Devuelve:
List of real assets (non-cash). dict: Cash account with all cash transactions. datetime: Calculated portfolio start date.
- Tipo del valor devuelto:
- portfolio_toolkit.portfolio.portfolio_from_dict.get_transaction_ticker(transaction, portfolio_currency)[fuente]
Returns the ticker for a transaction. If the transaction does not have a ticker, it returns the synthetic cash ticker based on the portfolio currency.
- portfolio_toolkit.portfolio.portfolio_from_dict.validate_transaction(transaction)[fuente]
Validates that a transaction contains the required fields: date, type, and quantity.
- Parámetros:
transaction (dict) – The transaction to validate.
- Muestra:
ValueError – If the transaction does not contain the required fields.
Module contents
- class portfolio_toolkit.portfolio.Portfolio(name: str, currency: str, assets: List[portfolio_toolkit.asset.portfolio.portfolio_asset.PortfolioAsset], data_provider: portfolio_toolkit.data_provider.data_provider.DataProvider, account: portfolio_toolkit.account.account.Account, start_date: str)[fuente]
Bases:
object
- __init__(name: str, currency: str, assets: List[PortfolioAsset], data_provider: DataProvider, account: Account, start_date: str) None
- classmethod from_dict(data: dict, data_provider: DataProvider) Portfolio [fuente]
- get_closed_positions(from_date: str, to_date: str) ClosedPositionList [fuente]
Returns ClosedPositionList for the given date.
- get_open_positions(date: str) OpenPositionList [fuente]
Returns OpenPositionList for the given date.
- get_stats(year: str) PortfolioStats [fuente]
Returns PortfolioStats for the given year.
- get_time_series() PortfolioTimeSeries [fuente]
Returns a PortfolioTimeSeries for the given portfolio.
- assets: List[PortfolioAsset]
- data_provider: DataProvider
- class portfolio_toolkit.portfolio.PortfolioStats(realized_profit: float, unrealized_profit: float, initial_cash: float, final_cash: float, initial_valuation: float, final_valuation: float, incomes: float, deposits: float, withdrawals: float, commission: float, closed_positions_stats: Dict[str, Any], closed_positions: DataFrame, open_positions: DataFrame, transactions: DataFrame)[fuente]
Bases:
object
Portfolio statistics dataclass containing all financial metrics and data for a given period.
- closed_positions
DataFrame of closed positions
- Type:
pd.DataFrame
- open_positions
DataFrame of current open positions
- Type:
pd.DataFrame
- transactions
DataFrame of account transactions
- Type:
pd.DataFrame
- __init__(realized_profit: float, unrealized_profit: float, initial_cash: float, final_cash: float, initial_valuation: float, final_valuation: float, incomes: float, deposits: float, withdrawals: float, commission: float, closed_positions_stats: Dict[str, Any], closed_positions: DataFrame, open_positions: DataFrame, transactions: DataFrame) None
- classmethod from_portfolio(portfolio: Portfolio, year: str) PortfolioStats [fuente]
Alternate constructor that builds PortfolioStats from a Portfolio and year.
- class portfolio_toolkit.portfolio.PortfolioTimeSeries(name: str, currency: str, assets: List[PortfolioAsset], data_provider: DataProvider, account: Account, start_date: str)[fuente]
Bases:
Portfolio
DataFrame with the following structure:
Columns: - Date (str): Date of the transaction or calculation. - Ticker (str): Asset symbol (including synthetic cash tickers like __EUR). - Quantity (int): Accumulated quantity of shares/units on the date. - Price (float): Share price on the date in original currency (1.0 for cash tickers). - Price_Base (float): Share price converted to portfolio base currency, including fees for purchase transactions. - Value (float): Total value of the shares/units on the date (Quantity * Price). - Value_Base (float): Total value in portfolio base currency (Quantity * Price_Base). - Cost (float): Total accumulated cost of the shares/units on the date in base currency. - Sector (str): Sector to which the asset belongs (Cash for synthetic tickers). - Country (str): Country to which the asset belongs.
Each row represents the state of an asset on a specific date. Cash transactions use synthetic tickers (e.g., __EUR) with constant price of 1.0.
- __init__(name: str, currency: str, assets: List[PortfolioAsset], data_provider: DataProvider, account: Account, start_date: str) None
- classmethod from_portfolio(portfolio: Portfolio) PortfolioTimeSeries [fuente]
Alternate constructor that builds PortfolioTimeSeries from a Portfolio.
- plot_evolution() LineChartData [fuente]