portfolio_toolkit.asset package
Submodules
portfolio_toolkit.asset.create module
- portfolio_toolkit.asset.create.create_market_asset(data_provider: DataProvider, ticker: str, currency: str | None = None) PortfolioAsset [source]
Creates a PortfolioAsset object with market data using a data provider.
- Parameters:
- Returns:
- The PortfolioAsset object with market data including:
ticker
sector
prices (historical price data)
info (ticker information from data provider)
currency
transactions (empty list)
- Return type:
portfolio_toolkit.asset.market_asset module
portfolio_toolkit.asset.optimization_asset module
- class portfolio_toolkit.asset.optimization_asset.OptimizationAsset(ticker: str, prices: pandas.core.series.Series, info: Dict, currency: str | None = None, quantity: float = 0.0)[source]
Bases:
MarketAsset
- classmethod to_dataframe(assets: List[OptimizationAsset]) DataFrame [source]
Convert a list of OptimizationAsset objects to a pandas DataFrame.
portfolio_toolkit.asset.portfolio_asset module
- class portfolio_toolkit.asset.portfolio_asset.PortfolioAsset(ticker: str, prices: pandas.core.series.Series, info: Dict, currency: Optional[str] = None, transactions: List[portfolio_toolkit.asset.portfolio_asset_transaction.PortfolioAssetTransaction] = <factory>)[source]
Bases:
MarketAsset
- transactions: List[PortfolioAssetTransaction]
- classmethod to_dataframe(assets: List[PortfolioAsset]) DataFrame [source]
Convert a list of PortfolioAsset objects to a pandas DataFrame.
- add_transaction(transaction: PortfolioAssetTransaction)[source]
Adds a transaction to the portfolio asset.
- add_transaction_from_dict(transaction_dict: dict)[source]
Adds a transaction to the account from a dictionary.
- add_split(split_dict: dict) float [source]
Adds a stock split to the portfolio asset by simulating sell all + buy equivalent. Creates a sell transaction for all held shares and a buy transaction for split-adjusted quantity.
- Parameters:
split_dict – Dictionary containing split information with keys: - date: Split date (str) - split_factor: Split ratio as float (e.g., 2.0 for 2:1 split, 0.1 for 1:10 reverse split)
- Returns:
- Cash amount to be added to account due to fractional shares sold
(only applies to reverse splits where shares are lost)
- Return type:
- __init__(ticker: str, prices: ~pandas.core.series.Series, info: ~typing.Dict, currency: str | None = None, transactions: ~typing.List[~portfolio_toolkit.asset.portfolio_asset_transaction.PortfolioAssetTransaction] = <factory>) None
- prices: pd.Series
- info: Dict
portfolio_toolkit.asset.portfolio_asset_transaction module
- class portfolio_toolkit.asset.portfolio_asset_transaction.PortfolioAssetTransaction(date: str, transaction_type: str, quantity: float, price: float, currency: str, total: float, exchange_rate: float, subtotal_base: float, fees_base: float, total_base: float)[source]
Bases:
object
Module contents
- class portfolio_toolkit.asset.MarketAsset(ticker: str, prices: pandas.core.series.Series, info: Dict, currency: str | None = None)[source]
Bases:
object
- classmethod to_dataframe(assets: List[MarketAsset]) DataFrame [source]
Convert a list of MarketAsset objects to a pandas DataFrame.
- class portfolio_toolkit.asset.PortfolioAssetTransaction(date: str, transaction_type: str, quantity: float, price: float, currency: str, total: float, exchange_rate: float, subtotal_base: float, fees_base: float, total_base: float)[source]
Bases:
object
- __init__(date: str, transaction_type: str, quantity: float, price: float, currency: str, total: float, exchange_rate: float, subtotal_base: float, fees_base: float, total_base: float) None
- class portfolio_toolkit.asset.PortfolioAsset(ticker: str, prices: pandas.core.series.Series, info: Dict, currency: Optional[str] = None, transactions: List[portfolio_toolkit.asset.portfolio_asset_transaction.PortfolioAssetTransaction] = <factory>)[source]
Bases:
MarketAsset
- __init__(ticker: str, prices: ~pandas.core.series.Series, info: ~typing.Dict, currency: str | None = None, transactions: ~typing.List[~portfolio_toolkit.asset.portfolio_asset_transaction.PortfolioAssetTransaction] = <factory>) None
- add_split(split_dict: dict) float [source]
Adds a stock split to the portfolio asset by simulating sell all + buy equivalent. Creates a sell transaction for all held shares and a buy transaction for split-adjusted quantity.
- Parameters:
split_dict – Dictionary containing split information with keys: - date: Split date (str) - split_factor: Split ratio as float (e.g., 2.0 for 2:1 split, 0.1 for 1:10 reverse split)
- Returns:
- Cash amount to be added to account due to fractional shares sold
(only applies to reverse splits where shares are lost)
- Return type:
- add_transaction(transaction: PortfolioAssetTransaction)[source]
Adds a transaction to the portfolio asset.
- add_transaction_from_dict(transaction_dict: dict)[source]
Adds a transaction to the account from a dictionary.
- classmethod to_dataframe(assets: List[PortfolioAsset]) DataFrame [source]
Convert a list of PortfolioAsset objects to a pandas DataFrame.
- transactions: List[PortfolioAssetTransaction]
- prices: pd.Series
- info: Dict
- class portfolio_toolkit.asset.OptimizationAsset(ticker: str, prices: pandas.core.series.Series, info: Dict, currency: str | None = None, quantity: float = 0.0)[source]
Bases:
MarketAsset
- __init__(ticker: str, prices: Series, info: Dict, currency: str | None = None, quantity: float = 0.0) None
- classmethod to_dataframe(assets: List[OptimizationAsset]) DataFrame [source]
Convert a list of OptimizationAsset objects to a pandas DataFrame.
- prices: pd.Series
- info: Dict
- portfolio_toolkit.asset.create_market_asset(data_provider: DataProvider, ticker: str, currency: str | None = None) PortfolioAsset [source]
Creates a PortfolioAsset object with market data using a data provider.
- Parameters:
- Returns:
- The PortfolioAsset object with market data including:
ticker
sector
prices (historical price data)
info (ticker information from data provider)
currency
transactions (empty list)
- Return type: